BLOG

RECENT ENTRY

ARCHIVES

夏休みの工作 ~Houdiniで全自動リバーシを作ろう~

台風や地震など、日本列島各地で多くの災害が発生していますね。
被災地の一日も早い復興を心よりお祈り申し上げます。

さて、アニマでは昨年からプロダクション全体のワークフローの改善と
パイプラインの構築を進めています。
テキストだけでは分かりづらい点が多いかと思うので、
今回は動画もお見せしながら具体的な運用方法をご紹介いたします!

目的1.【情報共有と蓄積の改善】
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
現在アニマでは、同じビルに入っている2社と共通のWikiサービスを利用しています。
これにより、共同のプロジェクトやイベントに関する情報を一元化することができ、
重要情報の周知/効率化やノウハウ/各種マニュアルの蓄積を図ることを可能にしています。


目的2.【データ管理の効率化】
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
パイプライン上でのツールによるアセットのバージョン管理システムの導入で
正確なデータの受け渡しを実現し、エクスプローラを開くことなくデータのI/Oが
できる環境を整え、デザイナーの負担を極力減らしていこうとしています。

これまで、アニマではエフェクトのメイン制作ツールに3dsMaxを利用してきましたが、
このパイプラインの構築に併せて『Houdini』の本格導入を進めています。
すでに数々のプロジェクトにおいて爆発や稲妻といったエフェクトや川の水の
シミュレーション、群集の生成などにHoudiniが利用され、確かな手応えを感じています。

具体的な事例をデモリールのような形で紹介できたら良いのですが、
諸々の大人の事情で困難なため、このブログでHoudiniの使用事例をPRするための
アイデアとサンプルエフェクト作成をエフェクトチームに募集してみたところ、
筆者(エフェクト)が提案した「VEX(※)でHoudiniに一人リバーシをやらせよう!」の案が
採用されたので、参考にプロシージャルアニメーションを制作してみました。
※ Houdiniで使用されるエクスプレッション言語

全自動リバーシを制作するにあたり、構想した基礎モデルは次のようなものです。

  1. Pointの数がマス目の数と一致するようなGridを生成し、
    各Pointのアトリビュートに”green”(=駒の置かれていない状態) / ”black” / “white”
    という値をセットすることで盤面の状態を定義する
  2. プレイヤーがそのターン駒を置ける候補マスをリストアップしてその中から一つを
    ランダムに選択し、予め各候補マスに紐づけておいたひっくり返せる相手の駒の状態を
    プレイヤーの色に変化させる
  3. 1と2の処理を盤面から空きマスがなくなるまでループする
  4. 横に倒した三角柱の側面を正方形にしてマスに見立て、何もない面、黒い駒の面、
    白い駒の面を定義し、三角柱を回転させる事でマスの状態を切り替える
  5. このモデルに従って下記のロジックをVEXで実装していきます。
  • ・ボードの中央に駒を初期配置するためのロジック
  • ・駒を置ける場所を探すロジック
  • ・置ける場所から一つを選択し、相手の駒をひっくり返すロジック
  • ・各マスの状態が変化したタイミングをフレーム数として記録するロジック
  • ・上記のロジックによって生成された試合結果データをもとに三角柱を回転し、
     試合アニメーションを再生するロジック


  • 下記の画像はこれらのロジックをHoudiniで実装したものです。
    意外と少ないノード数でリバーシの試合が生成できるのは驚き…!

こうして、諸々のロジックをHoudiniに与えてできたムービーがこちら↓

ヤッター‼ちゃんと試合してる!
ほぼリアルタイムで動作するのも楽しいです。

置ける場所の選び方を作りこむことで、もう少し賢い試合をさせることもできます。
このアニメーションを手動でつけたら大変な手間ですが、
簡単なルールを予め定義してしまえば全自動でできてしまう、
こういった面白さもプロシージャルアニメーションの”妙”ですね。

パラメータでマス目の数やボードのサイズ、試合内容を切り替えられるようにも
作ってあるので、100×100マスの試合をさせることも可能です。

下記にシーンをアップロードしますので具体的なコード内容やノード構造を
ご覧になりたい方はどうぞダウンロードしてみてください。
※ Houdiniのシーンファイルになります
(Houdiniをインストールしていない方はご覧いただくことができません)

ではまた更新します:)

PAGE
TOP