ハッチポッチハウスブログ:2025年7月

●アセット完成

アセットの制作が(ほぼ)完了しました!

合計でいくつ作ったのか数えてみたら、およそ900個でした。
前回のデモの時点で300個くらいはできていたので、600個くらい追加で制作した形になります。
ただ、以下で紹介している通り新規制作に加え既存のアセットも半分以上調整が入ったので、実質的にはもっとたくさん制作した形になります。

そんなこんなで、本当ははるか昔(2025年1月)に完成する予定でしたが、現在まで持ち越してしまいました。

なぜ調整が入ったのかというと、NaniteとLumenへの最適化の必要が出てきたからです。
制作開始当初は、これらの新機能に関する知識が乏しく、従来の手法でアセットを作っていました。
しかしこの1年の間に知識がアップデートされ、これまでに作ったアセットの欠点がはっきり見えるようになってしまいました。
直さなくてもあるいはなんとかなったかもしれませんが、気持ちわるくて夜も眠れず、すべてのアセットを点検/修正をすることにしました。

具体的な作業としては、Naniteに最適化するためにメッシュの重なり(Overdraw)を減らすためになるべく一塊のメッシュにしたり、Lumenの苦手な凹型の形状を避けるべくメッシュを分割するのがメインでした。
Naniteの最適化はこんな感じ↓

タイルごとに分かれていた床をひと繋がりのメッシュに変更。
床が暗くなってOverdrawが減ったことがわかります。

この程度の重なりであれば一般的にはそれほど問題にはならないと思いますが、HPHはとにかく物が多いゲームなので、1アセットあたりの負荷を減らさないとちりが積もって山となりフレームレートを押し下げてしまう可能性があるので、割と重要な作業です。

それから全メッシュに対してカスタムコリジョンも一緒に作りました。
つかまりなど精密なトレースが必要なオブジェクトがほとんどなので、自動生成ではなくすべて自作しています。
アセットを非破壊的な方法で作っておかげで、そこまで大変な作業ではありませんでした。
大体のアセットは、モディファイアーやジオメトリーノード、マテリアルなどを削除すればコリジョンの原型ができるようになっています。あとはゲーム内でのつかまりの可否や立ったまま通れるかどうかなどを加味し調整するだけです。

これがビジュアル用のアセット。
こっちが物理演算用に別途作った、単純化されたアセット。

そうして完成したたくさんのメッシュとコリジョンはUSD形式で書き出され、Unreal Engine 5へと輸入されていきます。
Blenderを使う場合、通常fbxで書き出すことが多いですが、今回はBlender内でアセットの配置をおおむね終えたかったので、複数のオブジェクトを位置はそのままにUE5にインポートできるUSD形式を選択しました。
これは割と新しい形式で、ワークフローが確立されているわけでもUE5がバッチリ対応しているわけでもなく、色々なトラブルがありました。

なにはともあれ材料は一通り揃ったので、あとはクエストやストーリーに合うようにぽちぽちとアセットを配置していくだけです。
というと簡単そうですが、考えることが山ほどあります。
その辺りは次回ご紹介します(たぶん)。

●VAT

Vertex Animation Textureの略です。
テクスチャに頂点のトランスフォームを保存し、アニメーションとして使用します。
実際に頂点が移動するわけではなく、マテリアルでの表現=GPUによる処理なので比較的負荷が少なく、リアルなエフェクトを作れます。

これを作るためにHoudiniを使い始めましたが、今月の作業時間の半分くらいはHoudiniの勉強に充てることとなってしまいました。
しかしそのおかげで水以外にも色々なものを作れるようになったし(炎とか雪とか)、趣味のGeometry Nodes (Blender)に活かせそうな点がたくさん見つかり、満足しています。

今のところでき上がっているエフェクトは2種類ほどですが、今後ほぼすべての液状エフェクトをVATで置き換えます。
それと最適化がまだなので、Niagara Data Channelsを使い個々のエフェクトをインスタンス化=軽量化する予定です。

●State Tree

5.6で大幅なアップデートを受け、致命的なバグがほぼなくなりました。
細かいバグはちらほら見受けられますが、おおむね実戦使用に耐えうる安定性を獲得したようです(細い目)。
ということでBTからSTへの完全移行作業が進行中です。

…のはずでしたが、5.6がMacのレンダリングシステム(Metal)に最適化しておらず、パフォーマンスがかなり落ちる(-15fps)ことが判明したので、ひとまずアップデートは見送ることにしました。
こまったこまった。

ちなみにこれを書いている間に5.6.1がリリースしましたが、全く直っていませんでした。
こまったこまった。

●メモリー

今月もメモリーをコツコツ作っていきました。
少しだけご紹介すると、だいたいこんな感じのものを作っています。

折りづる
パーフェクト松ぼっくり

今後もコツコツ作っていきます。
ブログでは多分もう紹介することはありませんが、裏ではコツコツメモリー作ってるんだな、と思っておいていただけると幸いです。

●今後の予定

9月のEpic Megagrantsに向けてかなり時間が少なくなってきたので、
レベルデザインとボス戦に集中する予定です。
それからHoudiniを勉強するのに時間をかけたせいでなかなか手をつけられなかったクエストを進めます。
あと、諸々の調整、バグ修正があります。実はこれが一番時間がかかりそうです。

いやしかし5.6に移行できないのは痛いですね。
BTでボスを作ってもいずれお蔵入りになることがほぼ確定しているし、うーん。
次のパッチでパフォーマンスが改善されることに賭けてSTで作ってしまうか、うーんうん。

どうなったかは8月号でご報告します。
ではまた来月。