
今月は仕事が忙しい月でした。
しかし忙しかった割には、スケジュール通り敵キャラ1体を作れましたし、さらに予想外のNPC1体の制作も完了することができました。
さらにさらに空いた時間をぬってフォルダ構造の整理やライトの最適化などを進めることができ、思っていた以上に生産性の高い月になりました。
では順番に見ていきましょう。
●ピギーバンク
今月は頭に少しまとまった時間がとれたので、NPCの制作を進めました。
見ての通り、ぶたの貯金箱です。
ぼくもこどもの頃、青緑色のを持っていました。彼は一体どこに行っちゃったんだろう。
作っている途中でなんだかかわいく無くなってしまったので、最後に目を修正しています。
しかしなぜ彼はぜえぜえ言っているのか?
それは本編を遊ばないとわかりません。
下の画像はコンセプトアート(的な)もの。
これをもとにぽてぽてとモデルを作っていきます。

これを書いている時は気づかなかったのですが、マテリアルを作っている途中でふと思いました。
陶器だからこんな薄い耳はすぐ割れてしまうんちゃうか?
ということで割りましたパッキーン
今回は先月の怪獣とは違ってリグも1からつくりました。
シンプルな造形なので、Auto Rig ProやRigifyなどの既存リグはさすがに無駄が多いかなと思いました。
1からといっても、デフォームボーンを直接コントロールボーンとして使うごくシンプルな作りになので、時間はあまりかかりませんでした。
ウェイトペイントには、blenderが5.0になったということで試しにビルトインのペイント機能を使ってみましたが、しばらく見ないうちにものすごく改善されていて驚きました。
まあ最後に触ったのは2.8とかなので当然といえば当然…。
前回のブログでHandy Weight Paintをかなり推していましたが、今後依存度が減りそうです。
ところで、”あまり”と入力するといつも必ず”甘利”に自動変換されてとても困っています。
そんなに甘利さんの名前使う機会ってあるんでしょうか。
ぼくはそんなにないですね。
●ライトの最適化
ライトはパフォーマンスへの影響がかなり強いので、バッチリ最適化する必要があります。
もちろん巷でうわさの新機能”MegaLights”を使えば(ほぼ)制限なくライトを置けるわけですが、残念ながらMacでは5.7からの対応となっており使用できません。
必要な機能は5.6で出揃ったので、5.7にはアップデートしない予定です。
というわけでライトの最適化作業を進めていきます。
まずView→Optimization ViewmodesにあるLight Complexity Viewをオンにしてパフォーマンスの悪い部分を発見します。
するとこんな感じでライトのパフォーマンスが色で表示されます。赤いのが良くないところですね。


今回のケースはとてもわかりやすく、ポイントライトが犯人です。
ポイントライトは全方位をまんべんなく照らすので、実際には光の当たっていない天井などもライトの範囲として認識されてしまっています。
なので素直にスポットライトに取り替えてあげると…


見た目もパフォーマンスもよくなりましたね。
このようにスポットライトに変えて問題ないものは全部取り替えていきます。
ちなみにライトのパフォーマンスは良い順に、スポットライト→レクトライト→ポイントライトとなっていますが、単純に照らす範囲順なので分かりやすいですね。
最後に見た目の比較画像も置いておきましょう。


●メモリーポップアップ改良
こっそりメモリーポップアップを改良しました。
今までは画面全体にUIが表示されるとんこつスープ的のような濃い演出でしたが、今回の改良により塩でさっと茹でたようなさっぱりした演出になりました。
うーむ。
前の方がいいかも!!
もう少し色々試そうと思います。
●フォルダ構造改変
フォルダ構造の最後の大改変を行いました。
今まではかなり雑に詰め込んでいたものを全てゲームロジックに合うように整理しました。
最も参考になったのは、言わずと知れたAllarのガイドです。
このガイドは分け方の理由づけが書いてあるのがいいですね。
それらが納得できるものばかりであるのがさらにいいですね。
一番なるほどと思ったのは、Contentフォルダ直下にプロジェクト名(例:HotchPotchHouse)のフォルダを作り、その下にCharactersやMapsなどのフォルダを入れるというルールです。
最初見た時はなぜそんな無駄なことを…と思いましたが、理由を読んで納得しました。
アセットを他のプロジェクトから移行したときに既存アセットが上書きされないため、とのこと。
なるほどー。
移行した時にDependencyアセットが一緒についてきて、その中に既存アセットと同名のものがあったら確かに面倒なことになりますよねー。
なるほどー。
なるほどー。
今後はこの構造を採用しようと思います。
と、このようにAllarのガイドをベースにHPHに合わせ分類していき、最終的に以下のような形に落ち着きました。
すべてのフォルダーを表示しているわけではありませんが、構造はわかると思います。

フォルダ構造とは直接的な関係はありませんが、Manager系のBlueprintのイベントをBPIで置き換える作業も並行して行いました。
今までは(恥ずかしながら)循環参照ばかりで、例えばDialogue ManagerとQuest Managerが互いに参照しあい直接イベントをコールするといった状態でしたが、今回の変更で互いに一切参照なく連携する形に変更しました。
これにより、例えば片方を別のBPに取り替えてもちゃんと機能するようになりますし、別プロジェクトに移行する時も余計なもの(Dependency)がくっついてこなくて済みます。
本来であれば開発初期に決めておくべきところですが、当初は何も考えずにパッタパッタキーを打つだけの存在だったため、
そんなことは頭のどの隅にも上ることはありませんでした。
しかしつい先日、
ーーBPIを使いモジュラー性を高めるのだーー
という天の声を聞きました。
ーー他の作品で使う可能性もあるかもしれないしーー
ーー続編とかもあるかもじゃん ガハハーー
そうか…そうかもしれん。
よし、BPIを導入しよう!パッタパッタ
そんな感じです。
●そのほか
HPHのフォルダ構造を変更がてら、Finderのフォルダ構造も一緒に見直しました。人生3回目です。
iCloudのKeep Downloadedオプションを見つけた日からずっと移行したかったので、だいぶすっきりしました。
これまでUEプロジェクトや3Dアセットなどはすべてローカルフォルダで管理してきましたが、とうとうすべてクラウド管理となりました。

さらに一部ソフトの設定データをデバイス間で共有できるようにしました。
シンボリックリンクという機能を使いますが、Macの場合GUIでは作ることができずターミナルを使う必要があります。
こんな便利な機能なんだから、コンピューターに興味ない人も使えるように通常のインターフェースに組み込むべきなんじゃないのか、アップル?
と誰か言っておいてください。

いずれにせよ、これで設定をいじるたびに別のMacにデータをコピペする必要がなくなりました。
ブラーボ ブラーボ。
ちなみにSubstance Painterはシンボリックリンクを認識してくれないため、あえなくデバイスごとの管理となりました。
●今後の予定
イントロで敵キャラを作ったことに触れましたが、今回は公開を見送ることにしました。
というのも、このキャラは実際のロジックなしでは全然面白くないからです。
ロジックも作れば良かったのですが、その前にやるべきことがあります。
AIロジック全体のState Treeへの乗り換えです!
というわけで、12月はState Treeへの移行を開始します!ワーイ
ロジック自体は別のプロジェクトファイルで制作済みなので、それをHPHに合わせて調整する作業になります。
色々な面倒なことが起こる予感がしますが、まあなんとかなるでしょう。
年次計画によると、12月はそれに加えてNPCを2体作ることになっています。
HPHでは珍しい人型キャラを制作予定なので、かなり楽しみです。
これはちょっと公開できなさそうですが…。
いやしちゃおうかな…どうしようかな…。
それから12月といえば、忘れてはならないのはEpic MegaGrantsの結果が出ることです!
12/1~12/5の間に発表ということなので、すぐですね。
結果は各ソーシャルメディアとブログ12月号で報告します。
お楽しみに。
…ところで下のAdd to Wishlistボタン、いまいちセンスないですよね。
スマートフォンだと表示くずれるし。
12月中に変えたいところです。がんばります。
ついでにサイト内の画像をクリックするとポップアップで拡大表示されるようにしたいなー。がんばります。