こんにちはトイロジックのプログラマーYです。業務では主にツール関連の整備を行っています。
今回は自社ツールにHoudiniの処理を組み込む一連の流れを実際に作業した例を参考に説明します。
例ではC++
とC#を使用したレベルエディタ(マップの配置ツール)にHoudini
での崖メッシュ生成機能を実装したものをあげています。赤くペイントした所に崖を生成するものです。
ゲームでの表示は以下のようになります。
Houdiniでの検証作業
まずはHoudiniでやりたい処理が実現できるのかを検討します。今回は自社ツールに組み込む前提なので下記内容も考慮します。
- 自社ツール側からどのような入力を渡すのか
- 出力はどうのような形式で返すのか
今回の崖メッシュでの入力は下記となります。
- 崖メッシュ生成範囲を指定した塗り情報のアトリビュートを持った地形メッシュ
- どのような崖にするかを指定する崖テクスチャ
- 凹凸の大きさなどを設定する数値パラメータ
下図は塗り情報を表示した入力メッシュです。このメッシュはレベルエディタで生成されています。
出力は崖メッシュのみなので特に考慮すべきことはありませんが、これが配置情報になるとどのような形式でパラメータを受け渡すかを考える必要があります。
入出力が決まればHoudiniでノードネットワークを作成しHDA(Houdini Digital Asset)の形式で保存します。
デバッグ
組み込みと並行しての作業になることが多いですが組み込み後はデバッグ作業を行います。
最初の組み込んだ際の主なチェックとしては下記が挙げられます。
- 意図通りの入力が正しく渡せていくか
- ノードの接続が必要な場合は正しく接続出来ているか
- Houdiniで計算した出力が正しくツール側に渡っているか
このチェックの際に有効なのはHoudni
のプロジェクトファイルを保存して直接開いて確認することです。
Houdni
のプロジェクトファイルを保存するのはC++
とPython
どちらを選択しても行うことが出来ます。
このチェックが完了した後はツール側から設定できるパラメータ等を弄って実行しHoudini
で組んだノードネットワークで不具合がないかを確認します。
公開・フィードバック対応
実装・デバッグまで完了したらツールを公開して実際に作業してもらいます。
基本的には使い方をドキュメントにまとめてそのページを見てもらいますが、その機能を使う人が分かっていてかつ少数の場合には直接画面共有等で説明してその場で確認してもらうこともあります。
これで問題がなければ作業終了となりますが多くの場合は数日~数週間後に不具合報告だったりもっとこうして欲しいという要望だったりとフィードバックが来るのでその対応をすることになります。
不具合の場合はその不具合が発生するデータを送ってもらい先のデバッグ手順でどこに問題があるのかを確認します。崖メッシュの例では一部のメッシュが破綻するというような不具合がありHoudini
のネットワークを再調整するという事が度々発生しました。
最後に
本記事ではHoudini
の処理を自社ツールに組み込むフローを紹介しました。処理の内容によってかかる時間や細かい部分に違いはありますが大まかな流れは似たような形になると思います。
この記事がどなたかの参考になれば幸いです。
ここまで読んでいただきありがとうございました!