Drone Model & Game Template

ここではUE マーケットプレイスにて販売している「Drone Model & Game Template」の全機能を説明します。ドローンモデルは、Blueprintのみで構成されており、シーンに追加することで簡単に使用可能です。また、コンフィギュレーターとレースゲームに使用できるテンプレートが含まれます。

ドローンモデル

ドローンモデルの操作について

(ドローンの操作一覧)

Key入力Key
モーター 始動 / 停止F
Up / DownE / Q
Left / RightA / D
Forward / backwardW / S
TurnMouse
3人称視点カメラ切替 1
1人称視点カメラ切替 2
Truckカメラ切替 3
サイドカメラ表示位置切替4
カメラ Up / DownC / V

モーター 始動 / 停止

モーターを始動するには、ドローンが停止中に ‘F’ キーを押します。ドローンはモーター始動後にプロペラの回転が始まり、すべての操作が可能になります。
モーターを停止するには、ドローンが地面に着地しているときに ‘F’ キーを押します。

Up / Down

上移動は ‘E’ キー、 下移動は ‘Q’ キーが割り当たっています。
モーター始動後に上下の移動が可能になります。

Left / Right 、 Forward / backward

左移動は ‘A’ キー、 右移動は ‘D’ キーが割り当たっています。
前方移動は ‘W’ キー、 後方移動は ‘S’ キーが割り当たっています。
飛行状態でないと、前後左右の移動はできません。
飛行状態の判断は、Blueprint内の「JudgeGround関数」で確認しています。
前後左右の移動時は、ボディーが傾きます。
ボディーの傾きはBlueprint内の「BodyRotater関数」で実装しています。

Turn

マウスを左右に動かすことでターンが可能です。

3人称視点カメラ切替

‘1’キーでBlueprintで後方に設置された 3人称視点用カメラの視点に切り替えます。
「CM_CameraControllComponent」の「Change Owner Camera関数」で視点の切り替えを行います。

1人称視点カメラ切替

‘2’キーで1人称視点用カメラに切り替えます。
1人称視点用のカメラは、あらかじめ「CM_CameraControllComponent」の「Begin Play」で生成しています。

パラメータ 「Front Camera」 を “False” に設定することで無効にできます。
パラメータ「Front Camera Transfrom」で、生成位置を微調整できます。デフォルトではドローンの全面に設定されています。
「CM_CameraControllComponent」の「Change Front Camera関数」で視点の切り替えを行います。

Truckカメラ切替

‘3’キーでTruckカメラに切り替えます。
地面に固定されたカメラです。視点は常にドローンを追従します。操縦者の視点を想定しています。
Truckカメラは、あらかじめ「CM_CameraControllComponent」の「Begin Play」で生成しています。

パラメータ 「Track Camera」を “False” に設定することで無効にできます。
パラメータ「Track Camera Transform」で、生成位置を調整します。
「CM_CameraControllComponent」の「Change Track Camera関数」で視点の切り替えを行います。

サイドカメラ表示位置切替

‘4’キーでサイドカメラの表示位置を切り替えます。
‘4’キーを押すごとに、右下、右上、左上、左下、非表示の順に切り替わります。

右下
右上
左上
左下
非表示

モーター始動後にサイドカメラが表示されます。
「CM_CameraControllComponent」の「Change Side Camera関数」で表示の切り替えを行います。
サイドカメラは、ウィジェットを使用しています。
/Content/MMIX_DroneV4/DroneV4/UI/WD_DroneCamera

カメラ Up / Down

サイドカメラの視点を移動します。上移動は ‘C’ キー、 下移動は ‘V’ キーが割り当たっています。
パラメータ 「CameraMoveMin」で移動量の最小値を設定します。
パラメータ 「CameraMoveMax」で移動量の最大値を設定します。
パラメータ 「CameraMoveSpeed」で移動のスピードを設定します。
「CM_CameraControllComponent」の「Move Camera Capture関数」で視点の移動を行います。

ドローンモデルのブループリント

ブループリントは以下のフォルダにあります。
/Content/MMIX_DroneV4/DroneV4/Blueprints/BP_DroneV4

ブループリントの構成

CollBodyドローンのコリジョン
Bodyボディーのスタティックメッシュ
BodyArm_XXボディーアームのスタティックメッシュ (*1)
PropellerArm_XXプロペラアームのスタティックメッシュ (*1)
Propeller_XX プロペラのスタティックメッシュ (*1)
Trail_XXTrailエフェクト(Niagara Particle System) (*1)
BodyCameraカメラのスタティックメッシュ
SceneCaptureComponent2Dサイドカメラ用のシーンキャプチャコンポーネント
SpringArmSpring Arm Component
Camera三人称視点用のカメラ
FloatingPawnMovement移動用のコンポーネント。UE標準コンポーネント
PropellerRotationComponentプロペラの回転を制御するコンポーネント
CameraControllComponentカメラを制御するコンポーネント
MaterialComponentマテリアルを制御するコンポーネント

*1 FL:前方左 FR:前方右 RL:後方左 RR:後方右

ブループリントのパラメータ

ドローン本体

[ Body Rotater ]
Default Relarive Rotationドローンのローテーション初期値。ボディーの傾きを計算する際に使用する。
Rotate Max Angle前後左右へ移動時に傾く最大角度
Rotate Speed前後左右へ移動時に傾く最大速度
[ Drone Param ]
Distance to Groundドローンから地面までの距離。飛んでいるか判定する際に使用する。
Effect DisplayドローンのTrailエフェクトの表示・非表示

カメラコントロールコンポーネント

[ Track Camera ]
Track Camera Transformトラックカメラの位置
TrackCameraトラックカメラ有効・無効切替
[ Scene Capture Component ]
CameraMoveMinサイドカメラの上下移動最小値
CameraMoveMaxサイドカメラの上下移動最大値
CameraMoveSpeedサイドカメラの上下移動スピード
[ Front Camera ]
FrontCameraフロントカメラ有効・無効切替
FrontCameraTransformフロントカメラの位置

プロペラローテーションコンポーネント

[ Propeller Component ]
Propeller Auto Startプロペラの回転を自動スタートするか?
“True” にするとモーターを始動に関係なくプロペラが常に回転する
propeller Max Speedプロペラの回転スピード
AccelerationMaxTimeプロペラが最大回転数になるまでのスピード
DecelerationMaxTimeプロペラが停止するまでのスピード
PropellerSoundプロペラ回転の効果音

マテリアルコンポーネント

[ Material Component ]
Material Instanceマテリアルインスタンスを設定する
Type No“1:TypeA 2:TypeB 3:TypeC”を表す
Color No”1-4″ を表す

「Material Instance」はMap型の配列で定義されています。KeyはName型、ValueはMaterial Instance型です。

使用する Material Instance を特定するために、「Type No」「Color No」よりKey文字列を作成します。 「Type No」 + “_” + 「Color No」 で編集され、「Type No」はNoにより文字列に変換され、 「Color No」は ゼロパディングの2桁に編集されます。
例えば、「Type No」が “1” で、「Color No」 が 2 の場合、”TypeA_02″ となります。

地面との飛行中判定について

飛行状態の判断は、Blueprint内の関数「JudgeGround」で確認しています。
「JudgeGround」 では、LineTraceByChannelで地面との距離を判定します。DroneParam の Distance to Ground パラメータが距離の基準となります。

コンフィギュレータ テンプレート

機能説明

コンフィギュレータのテンプレートです。ドローンメッシュのマテリアルを変更する機能が実装されています。TypeボタンもしくはColorボタンを選択すると、ドローンのマテリアルが変更されます。
コンフィギュレータを開いた際に流れる演出は、シーケンサー「LS_Configurator」を使用しています。

Blueprint説明

コンフィジュレータのUIは以下のウィジェットで定義しています。
/Content/MMIX_DroneV4/Template_Configurator/UI/WD_Configurator

WD_Configurator

タイプおよびカラーのボタンを押下すると、それぞれのOnClickedイベントが呼ばれ、ドローンのBlueprint「BP_DroneV4」「CM_MaterialComponent」の「changeMaterial関数」が呼ばれます。
このTempleteでは、変更した 「Type No」「Color No」は保存しませんが、実際の実装では自身の
プロジェクトに値を保持する必要があります。例えば、GameInstanceなどのグローバルな場所に保持し、ゲーム中のドローンは、そのGameInstanceの値を使ってマテリアルを変更する必要があります。

レースコース テンプレート

機能説明

ドローンレースのテンプレートです。ドローンが飛行するコース、アイテムを取得する機能が実装されています。

コース

コースはレベルデザイン用のブロックで作成されています。

アイテム取得と得点

アイテムはブループリントで実装されています。
/Content/MMIX_DroneV4/Template_RaceCource/Blueprints/BP_Power

アイテムにドローンがオーバーラップすると、BeginOverlapイベントによりアイテム取得処理が実行されます。

アイテムごとに得点を設定することが可能です。Blueprintのパラメータで設定できます。

Score設定

スコアの値が得点に加算されます。得点のウィジェットは以下になります。
/Content/MMIX_DroneV4/Template_RaceCource/UI/WD_GameScreen

スコアを加算する処理は、レベルプリントで実装されていますが実際のゲームではGameModeなど独自に実装することになります。

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