アンリアルクエスト5に参加しました
こんにちは、オボロです。
アンリアルクエスト5に参加したのでnoteにまとめました。
追記
(2023/05/31 01:00) UEのバージョン、使用したアセット、2,3,4日目の内容を追記しました。
アンリアルクエスト5とは
詳細はリンク先をご覧ください。
簡単に言うと、毎日出る課題をこなしてゲームを作ろう!って感じです。
今回のテーマは「剣を使って敵を倒す」ゲームでした。
本題:完成した作品
早速ですが完成した作品の動画です。
UEのバージョンは5.1.1、使用したアセットは「Isometric World : Sky Temple」と「Blink and Dash VFX」です。
1周間という期間の中で精一杯やれたと思います。
振り返り
各日の課題をツイートやメモで振り返ります。
その日の考えをそのまま載せています。
1日目
アンリアルクエスト5の1日目
— オボロ (@oboro_program) May 22, 2023
初級と中級はできた!
振り上げたときにもダメージが入ってしまうけど、剣で倒せてるからOK!(期間中に直せたら直す)#アンリアルクエスト pic.twitter.com/6oXmmRD78D
#アンリアルクエスト 5
— ヒストリア広報部 (@historia_Inc) May 22, 2023
1日目のクエストテーマは『敵』
初級:敵を倒せるようにしよう
中級:敵の死亡演出をつけよう
上級:ビヘイビアツリーを使って敵を賢くしよう
▽イベント詳細・参加▽https://t.co/Osd6tSMJ4K#uefest pic.twitter.com/077N7FhQhS
初級→UQ1でやったこと、ほぼそのまま。Begin Overlapだと歩いて刀が触れるだけでもダメージが発生するので、サンプルに最初からあったIsAttack のBlooleanで判定した。
振り上げた時にもダメージが発生するので、振り下ろした時だけにできないか調べる。
Hitだと上手くいかなかったので理由を調べる。
中級→UQ1と同じ。
2日目
アンリアルクエスト5の2日目
— オボロ (@oboro_program) May 23, 2023
初級達成!
「レベル上の敵の数」をカウントして、「0以下」になったら勝ち、という考え方で実装しました#アンリアルクエスト pic.twitter.com/Mu15g5z30N
#アンリアルクエスト 5
— ヒストリア広報部 (@historia_Inc) May 23, 2023
2日目のクエストテーマは『敵Ⅱ』
初級:敵を全滅させたら勝ち
中級:敵が自動的に出てくる仕組みを作ろう
敵にHPをつけよう
上級:敵の攻撃を弾く仕組みを作ろう
▽イベント詳細・参加▽https://t.co/Osd6tSMJ4K#uefest pic.twitter.com/omxWdIdWDm
初級:敵を全滅させたら勝ち
敵の数が3体と仮定して
考察A→「レベル上の敵の数」をカウントして、「0以下」になったら勝ち
考察B→「倒した敵の数」をカウントして、「3以上」になったら勝ち
考えた上で「Unreal Engine 敵を全滅させるとクリア」でググったら↓
https://fpsunknown.com/archives/22050
出ました、答え
敵が倒れて、消滅までしないとクリア判定にならないのはネックかも…
ボスならHPが0になった瞬間にクリア演出入れたいね~
雑魚戦なら十分か…
リンク先を参考にして、判定の呼び出しはUQ1でやったSet Timer by Eventで実装しています。
私は「全滅させたら」の部分は考察Aの方法がやりやすいと思ったのですが、Discordでは考察Bの方法で実装されている方もいました。
AはWave制で無限湧きとか、Bなら無双系の撃破数ミッションとかで使い分け出来ると思うので、Bも今後試したいですね。
3日目の進捗紹介コーナーでピックアップされてました。嬉しい~!
3日目
アンリアルクエスト5の3日目
— オボロ (@oboro_program) May 24, 2023
初級の前転&HPが削られたら負けをクリア!
地味ながら前転中はジャンプできないようにしてます
前転=回避だと思うので無敵時間も実装したいな~#アンリアルクエスト pic.twitter.com/YOHorZZTVM
#アンリアルクエスト 5
— ヒストリア広報部 (@historia_Inc) May 24, 2023
3日目のクエストテーマは『プレイヤー』
初級:前転する仕組みを作ろう
プレイヤーのHPを削られたら負け
中級:連続攻撃をしよう
上級:必殺技を入れよう
▽イベント詳細・参加▽https://t.co/Osd6tSMJ4K#uefest pic.twitter.com/MdR5Iv8Gj5
前転
〔前転〕ボタンが入力された時、
攻撃していない&前転していない&空中にいない&方向キーが入力されていれば、
ローリングのモーションを行う&一定時間で一定距離を方向キーの入力方向に移動する(できれば重力の影響を受けるようにしたい)
前転=回避だと思ったので、プレイヤーがダメージを受けない方法も考えた
A:当たり判定(コリジョン)を無くす
B:当たり判定はあるが、攻撃を受けてもHPが減算されないようにする
→1.ダメージを0倍にする
→2.IsRollingというBloolean関数を用意して、プレイヤーがダメージを受ける処理の前にブランチで判定する
調査
discord「ルートモーション」「前転にはアニム通知ステート(ANS)を利用して無敵フレームを追加」
https://youtu.be/uefWYX3g5yE
https://historia.co.jp/archives/20586/
動画でアニメーションモンタージュの基礎
前転=回避だと思うので無敵時間を実装したい
武器の当たり判定含めて参考になりそうな動画があったので明日以降やりたい
移動中だけ前転したい(止まっていたらしゃがむ等)が上手くいかなかった
前転中はジャンプできないようにする=IsRollingのBlooleanで判定してたけど、canmoveでできる? Jumpは含まれていない?
→攻撃中はJump入力はどうなっている?
HP
→敵に設定した時の逆。あるいはUQ1と同じ。ただし振り上げの多段ヒットはなくしたい
配布されたサンプルに、攻撃中移動しないための「Can Move」というイベントがありました。(ジャンプもできなくなる)
前転中にジャンプしないためにこのイベントを使おうとすると、前転自体が移動であるため使用不可能でした…
4日目
アンリアルクエスト5の4日目の分
— オボロ (@oboro_program) May 26, 2023
初級をクリア!
回復量は最大HPを超えないようにしています#アンリアルクエスト pic.twitter.com/pABCUNoy0L
#アンリアルクエスト 5
— ヒストリア広報部 (@historia_Inc) May 24, 2023
3日目のクエストテーマは『プレイヤー』
初級:前転する仕組みを作ろう
プレイヤーのHPを削られたら負け
中級:連続攻撃をしよう
上級:必殺技を入れよう
▽イベント詳細・参加▽https://t.co/Osd6tSMJ4K#uefest pic.twitter.com/MdR5Iv8Gj5
回復アイテム
UQ1のコインと同じ
collisionに接触→destroy&HP増加
ただし何も考えずに増加させたら限界を超えて回復してしまいそう
A:変数HPにMaxHPを設定(できる?)
B:ブランチで条件分けして、一定HP以上では回復しない
→デフォルトのHPが1000で、現体力が800で、300回復するアイテムに触れたら?
いちいち場合分けが面倒では
https://zenn.dev/posita33/books/ue5_starter_cpp_and_bp_002/viewer/chap_01-04_bp-item_heart
↑
リンク先のようにFunctionを使ったけど、CustomEventでできたと思う。
Function→(CustomEventをまとめたもの?詳細は調べる)
Cast→(Cast先のBPしか持たない変数の処理のため。)詳細:https://zenn.dev/daichi_gamedev/books/unreal-engine-tutorial/viewer/blueprint-cast-to
discord「マイナスのダメージという処理」
回復のイベントはプレイヤー? アイテム?
→プレイヤーの方。アイテムの持つHealValueで様々なパターンに対応できるようになる?
(回復のイベントで)CastToのobjetは何を繋げば良いのか?
また現在HPをPrintStringで確認可能に
敵の多段ダメージが深刻なことが判明…
https://youtu.be/2_-XSijHfFQ
↑の5:00あたりからのやり方で実装したい
ファンクションからカスタムイベントで作り直してます。
またCast ToではなくGet Actor Of Classを使用しました。
5日目
アンリアルクエスト5の5日目の分
— オボロ (@oboro_program) May 27, 2023
初級クリア!
エフェクトの知識が全く無くても形になりました
これで5日間の初級の課題は完遂した!#アンリアルクエストhttps://t.co/8F8gJB9YAU
#アンリアルクエスト 5
— ヒストリア広報部 (@historia_Inc) May 25, 2023
4日目のクエストテーマは『ステージ・ギミック』
初級:ステージを作って飾ろう
回復アイテムを入れよう
中級:爆弾を作ろう
上級:敵のバリエーションを作ろう
▽イベント詳細・参加▽https://t.co/Osd6tSMJ4K#uefest pic.twitter.com/7vWThnAdwL
エフェクト
・事前の考察→ほぼ無し! UQ1では似たこともやってないので…
https://youtu.be/3PcsI16UNDc
この動画で1から作った。
とりあえず敵へのヒットエフェクトはOK。
それから回復アイテムに、無料配布のアセットからナイアガラエフェクトを付けたけど、もっと狭い範囲のエフェクトにしたい。
やり方調べたけど、うーん…
ナイアガラのシステムだと一々設定の必要がありそうだし、
BP上だと、調べたサイトと同じノードが無い…(4と5の違いか)
ひとまず保留。
あとTrail(剣の軌跡)のエフェクトがサンプルにあったので、それも使えそう。上の動画の人が軌跡についても解説してた。
候補→剣の軌跡・プレイヤーが受けるダメージ・前転
SE•BGM
キューを作って、BGMのループやSEの音量がランダムになるように出来た
前転中に攻撃すると、その後ジャンプと前転が出来ない不具合を修正しました
まとめ
noteを書いている現在から振り返ると
・UQ1をやっていたことでスムーズに進められたり自分で考察できた部分が多かった
・最後まで当たり判定がおかしかったので直したい(出来そうな方法を紹介してる動画は見つけた)
・敵が攻撃中に倒すと、倒れたあとも武器の攻撃判定が残るのは、崩れ落ちる演出のあたりで武器のコリジョンをEnableにすれば直りそう?
・「九里江めいく」さんのYouTubeが参考になった
・『わからない!!!』を放り投げて進む勇気が必要
おわり
今回は以上となります。
次は中級をやりたいと思います。
ではノシ