Golaem入門(1)|キャラクター配置からキャッシュ書き出しまで

群衆シミュレーションツール「Golaem」を使って、Mayaでキャラクターを配置・アニメーションさせ、キャッシュとして書き出すまでの一連の流れを検証しました。今回は自分でキャラクターをセットアップせず、キャラクターパックに含まれている既存のアセットを使用しています。

本記事はGolaemの基本的な使い方を紹介するチュートリアル連載の第一回です。youtubeには動画版をアップしていますので、詳細な画面を見たい方はこちらをご覧ください。

Golaemとは

Golaemは、Maya上で大量のキャラクターを効率的に配置・シミュレーションできる群衆シミュレーションツールです。標準的な手法では、キャラクター数が増えるとシーンの読み込みやレンダリングでパフォーマンスの限界にぶつかりやすくなりますが、Golaemを使うことでこうした大規模な群衆シーンでも高いパフォーマンスを発揮できます。

インターフェースはノードベースで構成されており、条件分岐やランダム化を組み合わせることで、一律の配置ではなく多様性のある自然な群衆表現を効率的に作成できる点が特徴です。今回の記事でも扱ったRandom Operatorによるモーションのブレンドは、その代表的な使い方のひとつです。

ワークフローとしては、キャラクターをMaya上で準備し、Golaemデータとして書き出したうえで別のシーンに読み込んで群衆を構築していく形式になります。Maya環境での運用が前提となるため、普段からMayaをパイプラインの中心に据えている制作現場との親和性が高いツールです。実際、『うたの☆プリンスさまっ♪』などのアニメ作品でも使用実績があります。

一方で注意すべき制約もあります。Golaemは比較的高価なツールで、主にMedia & Entertainmentコレクション環境で使われることが多く、対応レンダラーにも制限があります。「Pencil+」のようなトゥーン系レンダラーには対応しておらず、Arnold・Redshift・RenderManといったレンダラーを使用する必要があります。トゥーンシェーダーのような質感を求める制作では、コンポジット側での工夫が必要になるのが現状です。

こうした特性を踏まえたうえで、以降ではインストールからキャッシュ書き出しまでの実際の操作手順を見ていきます。

インストール

Autodeskのアカウントページからインストーラーをダウンロードします。今回検証に使用したのはMaya 2026と、それに対応するMaya 2026用Golaemのインストーラーです。両方をダウンロードし、それぞれインストールします。

続けて、キャラクターパックのインストーラーもダウンロードし、データの保存場所を指定してインストールします。

プラグインの読み込みとキャラクターパックの展開

Mayaを起動したらGolaemプラグインをロードし、キャラクターパックに含まれるデータを読み込んでいきます。手順としては、

  1. Golaemキャラクターを読み込む
  2. シェーダーを読み込む

の順です。これでシーン上にキャラクターとマテリアルが揃った状態になります。

シミュレーション設定

データを読み込んだら、使用するスタートフレームに実際のシーンのフレームを合わせます。

Crowd Unitは基本的にcm推奨ですが、シーン側のWorking Units Linearに合わせて変更が必要になる場合があります。単位周りは見落としやすいポイントなので注意が必要です。

キャラクターのスケールもここで調整可能です。Min/Maxの範囲を指定すると、その間でランダムにスケールがかかる仕組みになっています。今回読み込んだキャラクターは小人サイズだったため、実寸に近づけるためスケールを約100倍に設定しました。

接地用プレーンの作成

キャラクターを地面に接地させるためのプレーンを作成します。テレーンを作成してプレーンを割り当て、Maya Geometryに変更したうえで対象のプレーンを選択してマッピングします。

キャラクターの配置

配置ツールでキャラクターを置いていきます。ここで注意したいのが、キャラクターはスタートフレームの時点では表示されないという点です。Createをクリックして初めて表示され、実際に画面上で確認できるのはスタートフレームの2フレーム目からになります。初見だと「配置したのに何も映らない」と戸惑いやすい挙動です。

アニメーションの割り当て

作成されたコンテナシェイプを選択し、Behaviorをドラッグ&ドロップしてダブルクリックすることでアニメーションを追加します。今回はまず怒っているモーションを読み込みました。

配置後に設定を変更した場合は、再生前に必ずReplaceをクリックする必要があります。これを忘れると読み込んだだけでは全員が同じ動きのまま反映されません。

アニメーション全体の再生割合からスタート位置の幅を指定できるパラメータもあり、これを使うことでキャラクターごとの動きにズレを出すことができます。配置数を増やしつつ調整すると、群衆らしい自然なばらつきが出てきます。


複数アニメーションのブレンド

拍手のモーションも追加で読み込み、2種類のアニメーションを共存させてみます。方法は主に2つあります。

方法1:Behaviorに直接複数のアニメーションを読み込む

コンテナに割り当てたBehavior(モーションビヘイビアー)に、怒っているモーションに加えて拍手のモーションも追加で読み込むと、その時点で2種類のアニメーションが割り当てられた状態になります。最もシンプルな方法ですが、この状態だとどちらのモーションがどの割合で再生されるかを個別にコントロールすることはできません。

方法2:Random Operatorを使う

Random Operatorをドラッグ&ドロップし、Behaviorをもう一つ追加します。シーンに追加済みのアニメーションは一覧に表示されるので、そこから拍手のモーションを選択します。中ボタンドラッグでノード間のパスを接続、Alt+中ボタンドラッグで切断できます。

Random Operatorでは複数のBehaviorの割り当て比率をコントロールできます。たとえば最初のBehaviorから拍手のアニメーションを外し、拍手の比率を0にすると拍手しているキャラクターがいなくなります。ここを0.2に上げると、少しだけ拍手するキャラクターが混ざるようになりました。比率を数値で直感的に操作できるのは扱いやすい点です。

キャッシュの書き出し

最後にキャッシュを書き出します。名前を変更し、キャッシュ範囲を指定します。

スタートフレームはそのままでも問題ありませんが、冒頭のフレームはアニメーションが移行中の状態なので、今回は21フレーム目からのスタートに変更しました。保存場所を指定してキャッシュを書き出すと、1〜20フレームは表示されなくなります(元のフレーム全体を書き出していないという警告が出ますが、動作上は問題ありません)。

キャッシュ書き出し後は自動的にキャッシュ再生モードに切り替わります。このモードはボタンひとつでシミュレーションモードとの切り替えが可能です。

補足:Playback speedの設定

最後に一点補足です。Playback speedは必ず「Play every frame」に設定しておいてください。ここが違うとキャッシュの再生タイミングがずれて見えることがあります。

まとめ

今回はキャラクターの自作を省略し、既存のキャラクターパックを使うことで、インストールからキャッシュ書き出しまでを最短ルートで確認しました。Random Operatorによる複数モーションのブレンドや、スケール・単位周りの設定など、群衆シミュレーションならではの勘所が随所にあります。

次回以降は、自作キャラクターのセットアップやレンダラーとの連携など、Golaemの活用の幅を広げるテーマを取り上げていく予定です。


GolaemならZ-FLAG

Z-FLAGでは、Golaemを活用した豊富な実績があります。アニメのライブシーンにおいては1000カットを超える規模のシーンをすべて一社で手掛けた経験があります。

Golaemはライブ・コンサート映像に限らず、CMやアニメ作品においても積極的に採用しており、これまで多くの制作会社様からご信頼をいただいてまいりました。

大規模な群衆シーンの制作でお困りの際は、ぜひZ-FLAGにお問い合わせください。

Contact Form Demo