アンリアルクエスト4にオンライン参加した(中級編)
二日間にわたって開催されたアンリアルクエスト4、その期間内でなんとか中級クエストまでは完了できたのかな?と思っている。2番だけは勘違いして扉自身に弾を当てると開く仕組みを作ってしまったけど
やる気の出るイベントを開催してくださったHistoriaさんと、攻略法をDiscordで紹介してくださった方に感謝
中級クエスト
踏んだらジャンプするジャンプパッドを作成せよ
的に弾を当てると扉が開く仕組みを作成せよ
秒数をUIで表示せよ
ゲーム開始までのカウントダウンをUIで表示せよ
ゴール演出を追加せよ
スライディングを追加せよ
1.ジャンプパッド
プレイヤーの落下velocityを取得して適当な係数を乗算したものをLaunchCharacter
へ渡した。
後日見直しがてらちょっと手を加えた
- 横に伸びたBPは見づらいので
Sequence
化 - velocityの計算に
ABS
を使用 - LaunchするのはBPインターフェースでPlayerBPに任せて、ジャンプパッドはLaunchするvelocityだけ渡す
2. 弾が当たると開く扉
Animation中に再度イベント発火したときの制御がうまくいかなかったのでDoOnece
でフローを改善させた。
3. 秒数をUIで表示せよ
UIとプレイヤーとコントローラーの関係をどうするか未だに整理しきれていない
- GameModeがプレーヤーにタイマーUIを与える
- タイマーUIとプレーヤーはインターフェースで通信
- プレーヤーは一定の間隔でインターフェースで現在時間を送る
といった具合に落ち着いた
4.ゲーム開始までのカウントダウンをUIで表示せよ
ゲーム開始の合図はGameModeの仕事にした
5.ゴール演出を追加せよ
凝ったことをする時間も技術もないので、Niagaraとサウンドで済ませた
- Niagaraのエフェクトを作成
- GoalBPにNiagaraコンポーネント追加、初期状態では無効にしておく
- Playerがゴールに到達した時にイベント発生
- PlayerのBPインターフェースにゴール処理を任せる
6.スライディング
検索したところABPからAnimationMontageを手軽に呼び出せるらしい
- Animation SequenceからMontageの作成
- ABPでMontage呼び出しと終了処理の設定(プレイヤーのEventDispacherにバインド)
- プロジェクトセッティングでInputActionEvent追加してからプレイヤーBPで一連の処理を作成
最初に思い付いたのがWalkSpeedを変化させる方法だった。後でDiscordで紹介されていた方法もためしてこんな感じになっている
感想
イベントの二日間で作業した時間よりも記録用にいろいろ整理する時間の方が長いような。
整理しているうちに気が付いた事
- よく使うSet〇〇や演算ノード、Booleanノードの配置パターンを決めた方がよさげ
- 横に伸ばすと見づらいのでSequenceで縦に伸ばす