ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

UE4でのキャラクターの基本的な設定メモ

Udemyで購入したdaibond(@daibond1)さんのチュートリアルUE4.21で進めています。

作って覚えるアンリアルエンジン【Unreal Engine 4】~ダンジョンゲーム編~

f:id:moko_03_25:20190120144821j:plain

序盤のすでに知っている部分は1.5倍速再生で流し見しつつ、1週間でPart60まで進めました。
土日がっつりx2回あれば終了できるボリュームでしょうか。

感想としては、ゲームのロジックだけでなくタイトル画面や終了画面への遷移・UIの作成とゲーム状況の反映などゲーム制作で必要な一通りが広く扱われている上、非常に分かりやすく丁寧に解説されていて、初めてゲームを作る場合に大変良い内容だと思いました。おすすめです!

しかしゲームを作る過程でキャラクターの様々な設定を行いますが、一気に沢山の情報が入ってくるためすぐに忘れてしまいそうです。。なので主な設定項目についてメモっておきたいと思います。

 

プロジェクト設定


■ゲームモードの設定

マップ&モード>Default Modesの項目でゲームモード(BP)を設定
 ゲームモードはゲームの基本的な設定を行う専用のクラスBP
 パーシスタントレベルごとにワールドセッティングで上書きすることも可能

・Default GameMode ゲームモード(BP)を指定

■操作イベントの定義

インプット>Bindingの項目で、キーボードやゲームパッドからの操作によって発生するイベントを定義することができます

ゲームモードの設定


ゲームモードというクラスBPにゲームのルールを設定する

▼クラスのデフォルト
 ・Classes ここでまずは下記の2つのBPを指定しておく
   Default Pawn Class プレイヤーとなるキャラクタークラスBPを指定
   Player Controller Class プレイヤーコントローラクラス(BP)を指定

 ・タイトル画面などではマウス操作は取得するがプレイヤーキャラは不要
  なのでDefault Pawn ClassをNoneにしてデフォルトとして設定すると良い

▼イベントグラフ
 ・プレイヤーキャラクターが死んだ時のリスポーン処理などを設定

キャラクターの基本構成


・テクスチャ ⇒ マテリアルで使用

・マテリアル ⇒ スケルタルメッシュで使用

・スケルタルメッシュ ⇒ アニメーションBPやキャラクタークラスBP等で使用
  物理アセット
  スケルトン ソケットを追加できる

・アニメーション ⇒ アニメーションBPで使用
  Notifyでアニメーションのタイミング依存のエフェクトなどを設定

・アニメーションBP ⇒ キャラクタークラスBPで使用
  イベントグラフやアニメグラフを使ってアニメーションの遷移条件を設定

・キャラクタークラスBP ⇒ ゲームモードで使用
  カメラを設定したり、移動速度などの設定を行ったりする

・プレイヤーコントローラクラス(BP)
  プレイヤーの動作やプレイヤー以外のキャラクターのAIを設定
   プレイヤーの場合   ⇒ ゲームモードで使用
   ノンプレイヤーの場合 ⇒ キャラクタークラスBPで使用

アニメーションでの設定


・インポート時に正しいスケルタルメッシュを指定しておくと良い

・Rate Scale 再生速度の倍率

アニメーションBP


・イベントグラフとアニムグラフでアニメーションの遷移条件等を設定する
・作成時にスケルタルメッシュを指定する

▼イベントグラフ
 ・アニメーションが遷移する条件を取得

▼アニムグラフ
 ・具体的なアニメーションの遷移を設定
  ・ステートマシンを新規作成
   Entry → StateA → StateB のように組む
   それぞれのState内でアニメーションを配置
   遷移ルールを設定

アニメーションBPでの定番ノード

・イベント Blueprint Update Animation
  毎フレーム呼び出されるイベント TickのアニメBP版

・Try Get Pawn Owner
  アニメーションBPを使用しているPawnを取得


キャラクタークラスBP


クラスのデフォルト
 ・Use Location Rotation Yaw キャラクターの左右回転を視点に一致させる
 ・AI Controller Class ノンプレイヤーキャラの場合はここでAIコントローラクラスを指定

CapsuleComponent
 ・コリジョンの大きさを調整
 ・コリジョンプリセット コリジョンに対しての設定のプリセットを選択
 ・イベント コリジョンに衝突した場合などのイベントノードをグラフに追加する
 ▼Mesh
  ・Skeletal Mesh スケルタルメッシュを指定
  ・トランスフォーム 向きと位置の調整
  ・Anim Class アニメーションBPを指定
 ▼SpringArm
  ・角度の調整
  ・Target Arm Length 注視点からの距離を指定
  ・Do Collision Test コリジョンチェックしないならチェックを外す
  ・Inherit Yaw 親であるキャラクターの回転を引き継ぐか
  ▼Camera

Character Movement
 ・Orient Rotation to Movement キャラクターが進行方向を向く
 ・Max Walk Speed 移動速度

▼イベントグラフ
 ・Apply DamageとAny Damageを使って衝突によりダメージを与える設定など
 ・DestroyActorで衝突によりアクターを消すなど
  Set Life SpanだとDelayを与えてDestroyActorしてくれる

プレイヤーコントローラクラス(BP)


・プロジェクト設定>インプット>Bindingで操作イベントを定義しておくと良い
 Jump、Move Forward、Move Rightなどを定義
・上記の定義したイベントを利用

コントローラクラスBPでの定番ノード

・AddMovementImput 操作イベントを繋いで動くようにする
・Get Controlled Pawn コントローラが制御するプレイヤーキャラを取得

AIコントローラクラス(BP)


・簡単な挙動なら直にBPで組めば良い
(高度なAIはナビメッシュ、ビヘイビアツリー、ブラックボードなどを使用)

AI基礎

はじめてのAI~ 愛のあるAIを作ろう

UE4で敵キャラクターAIを制御する – おっさんのゆるゆる研究開発室 – ゲームとモデリング

UE4でAIとビヘイビアツリーと-基礎-

[UE4] EQSで群れを動かす|株式会社ヒストリア

わからないまま使っている?UE4 の AI の基本的なこと

【UE4】味方AIの作り方!AIとは何かを学びながら、ブループリントで味方キャラクターを実装しよう - Qiita

 

キャラクター制御まわりで定番なBPのノード


・Get Velocity 速度を取得
Vector Length 多次元の情報であるベクトルから速度(スカラー)を取得

・Get Actor Forward Vector キャラクターの前方方向を取得 

・SetActorLocation アクターのワールド座標を指定
・GetActorLocation アクターのワールド座標を取得

・SetActorRerativeLocation アクターからのローカル座標を指定
・GetActorRerativeLocation アクターからのローカル座標を取得

・AddActorWorldOffset アクターのワールド座標を加算

・SetRerativeLocation ローカル座標を指定
・GetRerativeLocation ローカル座標を取得