【UE5】アンリアルクエスト3【備忘録】

アンリアルクエスト3に参加しました。
作成中に気づいたことや、困ったことなどを備忘録としてまとめました。
Blueprintも稚拙で恥ずかしいですが公開しています。
少しでも参考になったら嬉しいです。

👇最終日の生放送内で紹介していただけました。

「アンリアルクエスト3 ~グレイマンとつくる5つのショー~」特別生放送!

作ったものに反応をもらえるのが、とても嬉しいです。

👇提出した動画。

アンリアルクエスト3提出動画

1日目 玉

初級:玉を当てて壊す

はじめて使用。
気づいたこと
・ただ作るだけなら特に難しくない。
・破壊されるかどうかは当たった物体の質量(Mass)などに依存。
・キャラクターが押しても動かない。

👇この動画を参考にさせていただきました。

【UE5】Chaos Destruction で簡単に破壊表現!【ゲーム制作】【VOICEVOX 春日部つむぎ】

空中に固定
Chaosを使っているものを浮かせる方法が分からなかったので、下にFloor(Box Collision)を作成してその上に乗せた。Collisionの設定をDestructibleだけBlockで、他をIgnoreにした。

破壊

破壊できるかどうかは、ぶつける物体(ボールなど)の質量に依存している。
UQ3のテンプレートで用意されていたボール(BP_Throw)では、Collisionの質量を大きくする必要がある。SphereはNoCollisionになっているので、こっちの質量を大きくしても意味がない。

Blueprint

BP_Cube posted by anonymous | blueprintUE | PasteBin For Unreal Engine
No description provided

中級:動く的に玉を当てる

敵のブループリント。クラスはPaperCharacter。

実装

・ランダムにジャンプする。
・ボールが当たったら敵が死ぬ。
・敵に触れたらキャラクターが死ぬ。

Blueprint

https://blueprintue.com/render/lpjsfs–/

上級:玉を投げる軌跡を表示

玉が飛んでいく軌跡を表示する。飛んだ玉の軌跡ではないところに注意。
下のノードを使うだけで簡単に作れる。知らないと大変だと思う。
イベント開催中に開かれているDiscordの情報共有によって存在を知る。

2日目 プレイヤーアクション

初級:二段ジャンプで輪をくぐる

キャラクターのコンポーネント(Self)を選択。
Detailsパネルにある、Jump Max Countの項目を2に変更するだけ。

Blenderで作成した。
Shift +Aのメッシュ作成>トーラスで一発だったと作ったあとに気づいた。

👇わざわざ作ったやつ。

輪を作る。Shift +Nで面の向きそろえる。

サブディビジョンサーフェス。Ctrl +Aで適用。頂点増え過ぎた。

オブジェクトモードで右クリックから、スムーズシェード。Ctrl +Aで全トランスフォーム。

UE5でコリジョン作成。

中級:空中ブランコ

実装内容

・回転の角度と時間をインスタンス編集可能にしてある。

上部(青いところ)でループにできることを今回知った。

Blueprint

BP_Swing posted by anonymous | blueprintUE | PasteBin For Unreal Engine
No description provided

上級:壁蹴り

実装内容
・壁の逆方向を向く。
・壁の逆方向上向きに速度を与える。
・同じ向きの壁に対して、連続で壁蹴りできない。
Blueprint
壁蹴りについては、Wall Jumpのコメント部分に記述している。

BP_PaperCharacter posted by anonymous | blueprintUE | PasteBin For Unreal Engine
No description provided

3日目 ギミック

初級:当たると死ぬ炎

ナイアガラでなんとなく作った。

中級:動く床

砲台の下に動く床を配置した。
処理はBP_Cannonに書いた。

上級:玉を出す砲台

メッシュはブレンダーで作成。

実装内容
・玉が入ると玉を発射。
・キャラクターが入るとキャラクターを発射。
・スイッチにより移動。
気づいたこと
・キャラクターの設定をSet Movement ModeでFallingやFlyingにしないと、Set VelocityのZ軸方向は無視される。ここでは発射前にFallingにした。
・発射時ぶつかると飛んでいかないので、発射の瞬間は大砲のコリジョンをNoCollisionにした。
・Set Velocityによりキャラクターの飛ぶ軌跡は、Predict Projectileノードで予測できるものとは違う。飛ばす場所については実際に飛ばして試行錯誤する必要がある。飛ぶ軌跡の違いには、キャラクターのGravity Scaleが影響していそう。
Blueprint

BP_Cannon posted by anonymous | blueprintUE | PasteBin For Unreal Engine
No description provided

ギミックに対してセーブ機能を作っていなかったので、移動後の状態から始まる処理を無理やり作った。

キャラクターが着地したときに発動するイベントノード。便利。
大砲でキャラクターを飛ばすときスプライトを回転させているのだが、それを止める処理などを書いた。

4日目 ステージ

初級:ステージ変更

Open Levelを使った。

中級:3ステージ以上

Open Levelを2回使った。

上級:チェックポイント

処理は、BP_PaperCharacter、MyGameInstance、WB_Title、BP_SavePointに書いている。


EventGraph

Save Player Data

構造体を使うべき。
今回はXにStageNumber、YとZに場所の情報を記録した。X方向にキャラクターを動かさなかったので。

Load player Data

タイトルのウィジェットBP。
スタートボタンと、コンティニューボタンを押したときの処理を記述している。

WB_Title posted by anonymous | blueprintUE | PasteBin For Unreal Engine
No description provided

5日目 ブラッシュアップ

初級:1ステージに複数BGM

クリア時に音をかえた。

中級:ライティング、ポストプロセスの調整

炎の近くに配置。とってつけた感がすごい。勉強したい。

上級:輪に炎をつける

ナイアガラのShape LocationのRingで作成した。

その他

C++

勉強中なので、無理やり使いどころをつくってみた。とりあえず使うことはできた。

・スイッチで他のアクターを動かすために作った。
カスタムイベントを作ればいいだけだけど、ちょっと楽できるかなぁと。

MyActor.h

UFUNCTION(BlueprintCallable, Category= "MyActor Functions")
	void MyImp(bool Play);

	UFUNCTION(BlueprintImplementableEvent, Category= "MyActor Functions")
	void MyPlay();

	UFUNCTION(BlueprintImplementableEvent, Category = "MyActor Functions")
	void MyReverse();

MyActor.cpp

void AMyActor::MyImp(bool Play)
{
	if (Play)
	{
		MyPlay();
	}
	else
	{
		MyReverse();
	}
}

ナイアガラ

👇実際には使っていない。学習のためContentExamplesの写経をしたときの記録。

1.Propertiesを選択。

2.Sim TargetをGPUCompute Simに変更。

3.Fixed Boundsにチェックを入れる。

動画編集

次回は少し編集して短くしたものを提出する。ミスを削ったり部分的に倍速にしたり。

Twitterしてます

ブログの更新をお知らせ

コメント

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