「アンリアルクエスト5 ~剣を使って敵を倒そう!~」5日目~完成を振り返る
はじめに
エピック ゲームズ ジャパンが主催するUnreal Engineの公式大型イベント
「UNREAL FEST 2023 TOKYO」
でのユーザー参加型イベント
に挑戦しました。
6/3土曜日に作品紹介の配信がありました~
自分の作品は紹介されませんでしたが、何より濃密な一週間が過ごせてとても有意義な時間だったな~と、思います。
こちらの記事の続きです。
5日目から、完成までをざっと書いていきたいと思います。
5日目のお題は
初級:SE・BGMをつけよう
:エフェクトを入れよう
中級:UIを実装しよう
上級:こだわりのヒットストップを作ろう
でした。
そして4日目のお題の
初級:回復アイテムを入れよう
中級:爆弾を作ろう
が残っています。
#アンリアルクエスト
— 敷本ホノ (@4kimo10hono) May 26, 2023
5日目!と言っても今日は爆弾の実装で手間取りまくった……
あとは回復アイテム追加。
結局動画は撮ってませんがこのくらいでした。
残り土日の2日間、皆さん頑張りましょう!!
残タスク
エフェクト+BGM,SE
UI表示
あと諸々少し!
それにしてもコリジョン周りが難しいなあ…
5日目は4日目の宿題で手一杯だったようですね。
5日目
4日目の宿題・初級:回復アイテムを入れよう

フィールドに配置されている感じ。
公式でも回復瓶のようなものが用意されていましたがアセットエフェクトを使ってみた……ものの、Freeで配ってたやつで結構持ってる人が多くて色んな人が使ってましたね。
こちらのアセットになります。

普通にコリジョンとライトとNiagaraを用意。

コリジョンにPlayerTagを持ったアクター(ま、プレイヤーキャラに設定してるだけです)がOverlapしたらプレイヤーBPを呼んで(ここちゃんとしないとPlayerTagにしてる意味ないのだが)カスタムイベントを呼んでアクターは消す。

プレイヤーの方に入れてる回復処理は
最大HPと現在のHPが一緒じゃなかったらHPを25回復、一緒なら(つまり現在HPが既に最大値)回復エフェクトと音だけ流す。
HPが最大HP以上になったら、最大HPの数値をセット、HPバーのアニメーション処理を通って、こちらも回復エフェクトと音まで行きます。
回復エフェクトが割れる演出の音をDelayで無理やり流してるのは全くスマートではないと思う。
しれっと音も入れ始めてます。

4日目の宿題・中級:爆弾を作ろう

手に持つ用の特に変わったものは入ってない爆弾BPを用意。これを最初からプレイヤーに非表示で持たせちゃいました。

プレイヤーのBPで押したら剣を非表示、ボムを表示、ボム投げのアニメーション流して投擲する爆弾BPを呼ぶ。呼んだらすぐ手に持ってたボムを消して剣を再び表示……
これ、BooleanのBomb変数がBranchに入ってないから意味ないですね。投げてる間は再び投げられないようにしようとしてたんだろうけど、条件に絡んでないから意味がない……

投擲用爆弾BP、凄いクソコード。どうすればいいか悩みまくった結果なので自分が何を思ってこう組んだのかがわからない。ProjectileMovementが入ってるので前に放物線を描いて飛ぶ。
あと、手放した瞬間自分のキャラとぶつかって爆発するような感じになってたので序盤はこういう条件?
ただ、最終的に地面や壁に当たっての爆発でプレイヤーはダメージ受けないものの、敵にヒットした爆発ではプレイヤーもダメージ食らうという謎仕様。後半もっと別のことやらないとだめだと思う。
これを作ったときは時間無くて目を瞑った。
誰かいい方法教えて下さい。
上級:こだわりのヒットストップを作ろう

プレイヤーの剣BPのダメージ処理に追加。
ラスボスを倒した際には大きくスロー処理を入れたかったので、最後の敵を倒したときじゃない時、という無理やりなBranchの条件を入れ、あとはDelayで少しだけ敵を剣が通り過ぎた時に(桜井政博氏のYoutubeのヒットストップでなんかそんなこと言ってた気がする)SetGlobalTimeDilationでほぼ止まる速度に、少し時間を立たせて(Dilationが0.01になってるからDelay0.001で0.1秒位?違う?)普通の時間進行に戻す。でまたダメージ処理が入るように戻す。
初日ぐらいで詰んだヒットストップだが、なんかこのぐらいならバグらなかったのでこれで通した。
ロスタイム
殆どの作業は土曜日で終わりました。
初級:SE・BGMをつけよう:エフェクトを入れよう
ただただじみちに付けていく作業。
BGM:甘茶の音楽工房 様
https://amachamusic.chagasi.com/
SE:効果音ラボ 様
https://soundeffect-lab.info
にお借りしました。

BGMはただただレベルにAmbientSoundを置くだけ。

SEはひたすらAnimationMontageにAddNotifyしていくだけ。
あ、エフェクトもキャラに絡むのは同様です。
剣の剣閃諸々はこちらをベースに改造。
あ、ヒットエフェクトの実装を書いておこう。

受けるダメージをキャラとかではなく技ごとに変えていたので、誰から~とかではなくそのダメージ量を受けたらこれを出す~というストロングスタイル。技の種類で変えたいんだけどどうすればいいかわからん殺しなので諦めた。ゴリ押し。
中級:UIを実装しよう

プレイヤーに入れていたHPバーをUIで表示するように変更。
二段で減っていくやつにしてみた。

で、UIのイベントグラフにカスタムイベント。PercentはプレイヤーBPの最大HPを現在のHPで割ったものが入る。で%をセットしてそのパーセンテージに青のゲージを減らし、0.5秒後赤いバーのBoolean変数をオン。(ド深夜だから綴を激間違いしてるのは気にしない。)

Tickで毎フレチェック。さっきの変数がオンになったら赤いゲージのパーセンテージを青いゲージのものまでFInterpToで時間かけて減らしていく。
で、ほぼおなじになったら変数オフ。
とまあしたり顔で書きましたが下記の動画参考に。またUE備忘録本舗さん。
これで全部クエスト達成した気がします。
だいぶ夜中というか明け方で死んでた。
で、日曜日は起きたら撮って編集。で、提出。
動画は作品紹介の配信では流れなかったので、YoutubeのURLを置いて供養しておきます。
最後に
一週間、Blueprintの勉強と思って参加したアンリアルクエストですが、やってみると怒涛だが、とても濃い一週間を送れました。達成感があってよかったな……(もっと早くやってみろよってのはNG。)
Discordでも色々な方の情報や知見が披露されていたので、そこでも眺めてるだけで楽しかったり、学びになったり……
今回で20回目を迎えるUE5ぷちコンと言うイベントもあるらしく、なんだかこっちにも参加したくなるような、しないような……
とにかく、またアンリアルクエストがあれば、参加したいと思います。
あと、作ったけどなんか自分のが低レベルで出さなかった、みたいなのも見かけましたが、出すだけタダなんだから出しとけ!!な!!Tシャツもらえるぞ!!(orエコバッグ。)
ではまた。