
●レベルデザイン
ついに本格的なレベルデザインが始まりました!
レベルデザインとは、背景アーティストが作った3Dデータを実際に配置して世界を構築していく作業です。
ゲームを作る前は、ぽんぽん3Dモデルを置いてけばいいんじゃないのフーン などと思っていましたが、いざ自分でやるとなるといろいろ考えることがありました(あらゆる物事が大体そんな感じですが)。
ハッチポッチハウスでは、ワクワクする世界にすることが一番大事なので、それを軸に考えていきます。
この角を曲がったら何があるんだろう、とか、こんなところに隠し通路が、とかとか。とにかくワクワクを重視します。
その上で、カメラがガタガタしないように気をつけるとか、通常ジャンプだけで行ける場所とハイジャンプじゃないと行けない場所をはっきり分けるなど、プレイヤーがストレスなくプレイできるように気を配りまくります。
配置するためのツールを作る必要もあります。
本棚を作るのに本のStatic Mesh(SM)を一つ一つ配置していったら日が暮れてしまいますし、パフォーマンス的にも良くありません。
何個も同じものを並べる場合は、必ずInstanced Static Mesh(ISM)を使ってコンピューターに楽をさせてあげます。
たとえば「はらぺこあおむし」を150冊並べる場合、SMを使うと「はらぺこあおむし+はらぺこあおむし+はらぺこあおむし+…」といった感じで処理されますが、ISMの場合「はらぺこあおむしx150」といった感じになり、断然コンピューターに優しいはらぺこあおむしになります(?)
そんなわけでいろいろなツールを作ったので、一部抜粋し動画にしました。
動画にするほどじゃなかったかも…
それで実際どれくらい配置が進んだかというと、8月下旬現在、まったく進んでいません!
いや仕事が忙しくて(言い訳)
9月はがんばります。
●エリアシステム
広い空間を移動するゲームでは、通常エリアごとに分けてロードとアンロードを切り替えることでパフォーマンスを向上します。
現在のプレイヤーの位置から見えない場所は不要なので、アンロードしてコンピューターの負荷を軽くしてあげます。
ハッチポッチハウスでも部屋ごとにエリアを分割しています。
UE5ではLevel Streamingという機能を使うのですが、問題は一度アンロードすると再度ロードした時に元の状態に戻ってしまうことです。
つまり一回アンロード→ロードすると、開けた宝箱が元どおりになったり、倒した敵が復活したりしてしまいます。
それを防ぐために、今まで押入れにしまってあったセーブシステムを引っ張り出し、ちゃんと機能するように調整しました。
ゲームを作る前は、セーブできるのは当たり前じゃんかニャムニャム などと考えていたのですが、いざ自分で作るとなるとニャムニャムしている場合ではなくなってきます。
セーブシステムは説明しても面白くないので、割愛します。ごめんねセーブシステム。
ところで、ぼくは専門学校でUE5講座を担当していますが、動画制作がメインなのでロード/アンロード機能やセーブシステムを作る必要がなく、すごーーーーーーく気が楽です。
まあゲーム作りはこのめんどくささが最高なんですが。
それはさておき、これらの機能を組み合わせエリアシステムがほぼ完成しました。現状外から見える明確な違いは、エリア間を移動すると右上のコレクティブルが切り替わること。どうことかわかるように動画にしました。
…
動画にするほどじゃなかったかも…
●ボス戦
先月決めかねていたState Treeへの乗り換えですが、UE5.6へのアップデートが少しリスキーなので、ひとまず保留となりました。
それに伴い、ボス戦の実装も先送りすることにしました。
いずれSTに乗り換えることはほぼ確実なので、BTで作ってしまうと結局無駄な労力になってしまいますので…
STのロジック自体は、別のプロジェクトで完了していて、いい感じで動いています。ロジックもかなり無駄なくできたと思います。
あとはUEが5.6.3くらいになり、安定するのを待つだけです。
ちなみに5.6のMac上でのパフォーマンスがイマイチだとぴよぴよソーシャルメディアで呟いていましたが、学校から借りているM4 Max Macbookでは5.5とそれほど変わらない速度で動くので、もしかしたらぼくのM2 Max Studioではそろそろ力不足なのかもしれません。
まだ分割払い残ってるんだけどなー…
●そのほか
水エフェクトがかなり理想に近づいてきました。
もう1,2回の調整でバッチリなエフェクトになると思います。
これまでの進化の歴史としては、2D画像→2.5D→形状固定3D→ダイナミック3D(VAT)という感じ。
ポケモンで言うとリザーゾンになりたてのリザードンというところでしょうか。
それから会話システムやアビリティシステムなどなど細かな不具合を直したり、コードを整理整頓しました。
散らかったコードをきれいにするのは一番好きな作業の一つです。
こんな感じ↓でごちゃごちゃヌードルをすてきヌードルにします。
動画を作っている途中で動画にするほどじゃないかも…と思い、画像にしました。


●今後の予定
あと3週間ほどでEpic Megagrantsのしめきりです。
とにかくプレイできるBuildをしなければいけないので、9月の前半はほぼ、こまごました調整にあてる予定です。
Megagrants提出後は、メインメニュー(はじめから、つづきから、設定)を作ったり、NPCや敵を増やしたりする予定です。
ではまた来月!