引き続き、アンリアルクエスト4上級編の模範解答を読んでいる。
ウォールラン中に壁を手に付く処理が難しい。手を付く座標の取得までは分かったのだが、そこからが難しい。
アニメーションBPで処理し、RigでTwo Bone IKを行っているというところまでは分かったが、そもそもアニメーションについてはほとんど触っていないため、今回はちょっとお手上げ。改めてアニメーション部分の勉強をしてから見直す。
次にボムを投げる処理。
ボムを投げた場合に予測される放物線を計算するのが大変そうだなと思っていたら、Predict Projectile Path By TraceChannelという軌跡のパスを取得するノードが用意されていた。こんなものまで用意されているとは。
ボムを投げる処理は、アニメーション内にあるNotifyで行っていた。モンタージュ化される前の元の方で。どこからSpawnBombが呼び出されているか分からなくて苦労した。
アンリアルクエスト4上級編の模範解答を読む
アンリアルクエスト4上級編の模範解答を読み始めた。
上級編ということで難易度が上がっている。
自分が見たことのないブループリントノードが出てきているので一つ一つ調べながら読み進めている。
今回は Sequence。処理を順番に行うというもの。
ヒストリアのブログに最初に知っておきたいBlueprintノード集として解説されていた。
historia.co.jp
この動作を確認するためにPrint Stringを使っていて、デバッグ表示が新しいものほど上ということに気がついた。以前も勘違いしてたと気付いたのにまた忘れてしまっていた。
アンリアルクエスト4中級編模範解答その2
引き続きアンリアルクエスト4中級編の模範解答を読んでいる。
ということで気づいたことをメモ。
・デリゲートはメンバ関数の呼び出しらしい。Set Timer by Eventで一定時間ごとにデリゲートを実行、つまりメンバ関数を呼び出すことができる。これで1秒ごとのカウントダウンを実装していた。
・UIのアニメーション
ウィジェットデザイナーの下の方にアニメーションボタンがあり、そこでアニメーションを作成できる。アンリアルクエスト4ではスケールと透明度をアニメーションさせている。
このデザイナーとグラフやイベントグラフとビューポート、アニメーションなどUIを切り返るボタンが上だったり下だったりウィンドウのタブになっていたりと配置がいろいろな場所になるので気づきにくいことが多い。まあ、慣れなんだろうけど。
・ゴール演出
パーティクルを出し、プレイヤーの向きとゴール用のカメラに変更
Set View Target with Blend でカメラを変更している。New View TargetにはActorを指定する。
そのActor内にカメラがあるとそのカメラになるようだ。複数あったらどうなるか試してみたら、最後に追加したものになった。
・スライディング
スライディングのアニメーションをモンタージュ化している。モンタージュ化とはブループリントからアニメーションを細かく制御できるようにする仕組みらしい。
移動はLaunch Characterで進行方向にセットしている。また Use Separate Braking Friction をセットして摩擦で減速するようにしているらしい。セットしなかったらほとんど移動しなくなった。
これで一通り、中級編の内容を見終わった。
理解がちょっとふわっとして曖昧な部分もあるけれども、なんとなく実装方法は分かったと思う。
とはいえ、実際に自分が実装するとなると、このサンプルを何度も見直すことになるのだろうけど。
でもこれを見れば参考になると分かったのは一歩前進。
アンリアルクエスト4中級編の模範解答を読む
アンリアルクエスト4の中級編の模範解答を読んでいる。
また途中で、気づいたところまでをメモ。
・ジャンプパッド
自分では実装するときにはキャラクターに上方向の力を加えるかなと思っていたら、キャラクターには Launch Character というそのものずばりの機能があることを知った。他にもこういった便利な機能がありそう。
ジャンプパッドのグリッドのマテリアルはテクスチャかと思ったら、マテリアルグラフで実装されているものだった。このマテリアルはアンリアルクエスト4とは違うフォルダにあったが、これは標準で用意されているものなのかな。ちょっとどこにあるかは分からなかった。
・的に当てると扉が開く
扉にActorを参照する配列があり、そこに対象となる的を追加する。
BeginPlayで、的が壊れたときのイベントを追加。そのイベント内で全部壊れたか判定。全部壊れたら扉が開くアニメーションを再生。
・秒数をUI表示
UIはウィジェットブループリントを利用。PlayerControllerで作成されている。
・開始時のカウントダウン
カウントダウンはデリゲートで表現とコメントにあったが、デリゲートがまだ分かっていない。
文字の表示はウィジェットアニメーションというのを使っていたが、このアニメーションもよく分かっていない。
うさぎジャンプゲー
Unityでワンボタンアクションゲームを作った。とにかく動くものを作るのが目的なので、クオリティは気にしない。様々なところで躓いたのでかなり時間がかかったが、いろいろと知見を得ることが出来た。実際に手を動かして作ってみるのは重要。 pic.twitter.com/meCev6DgOM
— toburau (@toburau) 2023年1月7日
今週のテーマだった強制横スクロールのワンボタンアクションゲームを作った。
うさぎ年なので、走っているうさぎが罠をジャンプして避けるというもの。
これだけシンプルなゲームで、アセットもフリー素材を使ったものにもかかわらず、作り上げるのに1週間かかった。
作りながらいろいろなところで躓き、そのたびに検索して調べたりしていたので、時間がかかったが、いろいろな知見を得ることが出来た。
本を読んでわかったつもりになっていても、実際に手を動かして作ってみるのは重要。いろいろな気づきを得ることが出来る。
今年から1週間単位で何かを作っていくというのを始めたが、このペースだとかなり厳しそう。
冬休みの間だったので、毎日時間を取ることが出来たが、これが平日だったら無理だったろう。
次はもっとシンプルなものにして、毎日の作業を時間を計りながら行い、時間切れになったらそこで終わりとしよう。