アンリアルクエスト2「遺構探索」実装日記 前編

この記事は約6分で読めます。

クエストの実装のほうの振り返り記事.実装順に回顧録としてカキカキ.クエストとして出された順と記載順はやや前後します.ブログ記事を書こうと思っていたので,作業工程はOBSで録画しておいてありましたが,このログが11月5日の深夜,つまり最終日,ほぼ一夜漬けです.今回のクエストにはUE5 EAを使用しており,UE4.26のサンプルファイルをコンバートしてクエストに臨みました.

Day2-初級.ライティングを全種

サンプルレベルにディレクショナルはすでに配置されていたので,残るはポイントライト,スカイライト,スポットライトを配置すればクリアとなります.矩形ライトは実は条件に入っていなかったようだけど,あまり確認していなかったので配置していました.

ポイントライト
スポットライト
矩形ライトとスカイライト

もとからあった1種と追加で4種を配置してひとまずこのクエストは達成.この後配置は変わるかもしれないのけれど,初級課題はこのように簡単にできてしまうので初心者にもとっつきやすくて良いと思います.いちおうこの段階でライティングビルドもすましておきました.

Day3-初級.松明を作る

松明の課題.えだ用にシリンダーを配置してスタティックメッシュ化.これをBP化して炎のエフェクトをくっつければ松明はできそう.

本当はNiagaraにも挑戦してみたかったのだけど,お手軽 Startar Contents にはNiagaraは用意されておらず.Niagaraの実装時期を考えればないのは当然なのだけどあきらめ,いつものCascadeのP_Fireを使っていい感じの位置に配置.ちょっと火力が強すぎて動揺.どこかで調整が必要なのかもと考えていたような.

えだのマテリアルに木のものに設定.今回はOakを選んでみました.楢や樫の木らしいけど薪や松明の木にも使われるのだろうか?ここ考えずノータイムで選んでいたけどこういうのもきちんと確認するべきなのかもとちょっと思いました.(調べたらオーク材は松明になるらしいので良かった).

今見ると木目の模様の向きもちと微妙なような(横じゃなくてタテになっている).元のシリンダーのUVと既存マテリアルがうまく合っていないことが原因なのだろう.こだわろうと思えばこだわれるし,その逆も然りなのが面白いところかも.

Day4-初級.松明に音をつける

続いて今作ったたいまつに音を実装しました.

Discordやまとめ配信では音の減衰についていろいろ話されていましたが,私はほとんど気にできていませんでした.そのままでも減衰しているような気がしたので・・・.Attenuation Settingに適切なアセットを選択していれば,減衰のパラメータも操作できるようです.Play at Locationでアクターの位置を参照して開始時に音が鳴り始めるようになっています.一応音量も変数化しておき,何かに使えるように.

Day4-中級.歩くと足音が鳴る

これはEpicGamesJapanのおかずさんの記事を参考にしました.

アニメーションアセットの足がつくタイミングで通知を作って・・・

先ほどと同様にPlay at Locationで音声を鳴らします.のちに足場によって音を変えるクエストもあったのですが,この足音の素材に少し悩んだ気がします.

ここでエフェクトが出ないと一回次のクエスト消化に移行したようですが,今見直すとLocationに値が入ってないですね.こういうミスで一日つぶしたりよくあるので気を付けたいところ.でもPlayにも入ってない・・・.疑惑のクリア.

Day5-初級.温かみか冷たさを感じる色味

これはポストプロセスエッフェクトを使えばOK.今回は何となく冷たさを感じる青を選択.ここ青を選んだことが,遺構マップに路線が決まっていく要因にもなったような気がします.

フィーリングで彩度とコントラストを青っぽく設定.

ここでテストしてみて,手前のボリューム位置ではなく奥のくぼみの部分にキャラクターが入った時にエフェクトが適用されていたので,カメラの位置でボリューム適用がなされるとこの時理解.この後に一回レベル全体を囲むようにボリュームを大きく設定しました.

この段階までで「1-1.アセットを配置する」もクリアできてしまうで,1日目から5日目までの初級課題クリアで,参加賞の条件は達成することができました.ここまでなら割と簡単なので,参加賞目当てにUEを触るというのでも手が出しやすいイベントです.

しかしさすがに3回目のイベント参加,いつまでもそれでは力にならないのでさらに,中級,上級課題の実装も進めていきます.

Day2-中級.時間変化

レベルに時間変化を導入,つまり時間によって日の向きを変える処理を導入します.

Directionalを回せばよさそうというのはわかったので,調べてこちらの記事を参考にしました.

初めからSkySphereがあったのでそれを使えばよく,レベルで選択した状態で,レベルブループリントを開けば参照ができるというのを使ってクリア.

1だと遅すぎたのでこのあと試行錯誤して10くらいにしました .

UE5になってから算術がワイルドカードピンになったので種類を選ばず呼び出せるのはメリットですが,このノードでDeltaSecondsのほうから入力すると結局ピンを変換してからつなげないとならなかったり,作ろうとしていた式が無効な式だったりと,まだ適応できてない部分もあります.

Day3-上級.地面の種類によって音が変わる.

先の足音の記事を読み直しここから実装を変更していきます.

is Valid の実行マクロはオブジェクトの有効性を確かめるノードですが,今回のクエストで使い方を学習しました.Unityだとif(hoge){}で処理する部分ですね.図はライントレースで地面のデータを取るというところですが,ここでエラーを吐かせるのを前回のクエスト(弾を飛ばすやつ)でもやらかしていたのですがまたやってしまいました.ここでヒットを起こしていないときに次のノードへ処理が回ると参照エラーになってしまうのですよね.

きちんと値が入っているかの判定をしてから処理を進める必要がありました.物理マテリアルを使おうと思っていた形跡がありますが,うまくできなかったので今回は地面のActorタグに情報を仕込む手法を取りました.

Day3-中級.歩くと煙

先のところでLocationがセットされていなかった問題は気づけたらしいものの,今度は煙が消えない問題に悩まされたようです.

煙が消えない

使った元のSmokeのパーティクルが単発ものではなかったことでずっと残ってしまうようでした.

ここは単発もののExplosionと設定を見比べて原因を探索.EmitterLoopを0でなく1にすれば単発になることを発見できました.あとはLifeTimeなどをちょこちょこっといじって足跡っぽく見えるように調整して,この課題もクリア.

きちんと古い足跡は消えている.

この辺りまでで3時間ちょっと経過.次に続きます.

アンリアルクエスト2「遺構探索」実装日記 後編
前回の記事の実装分は動画にして3時間くらいでした.ここから後半戦.実装できなかった項目の試行錯誤を含めると後半戦のほうも時間はそこそこかかりました.眠気と時間との闘い.

コメント

タイトルとURLをコピーしました