UE C++ Battery Collector04 v5.5

ThirdPersonBatteryCollector
【復習】
〇前回は、ごく基本的なピックアップを作成した。
・メッシュの設定。
・(ピックアップの)有効化/無効化の設定。
【今回の実施内容】
・物理シミュレーションで、電池(バッテリー)が空から落下させる。
・電池は電力レベル(パワー)を持っていて、キャラクターに拾われると消去されるようにする。
・「Pickup」クラスを継承した「BatteryPickup」クラス(電池)を作成する。
・「BatteryPickup」クラスを継承した「Battery_BP」クラスを作成する。
※下図の水色枠部分が該当します。
〇Pickupを継承したC++クラスを作成する。
・「Pickup」を右クリック>「Pickupから派生するC++クラスを作成します」を選択
・ファイル名:「BatteryPickup」
・「クラスを作成」ボタンをクリック。
・新規に、「BatteryPickupクラス」が追加されればOK。
・BatteryPickup.hとcppの1行目では、「copyright notice(著作権表示)」を記入するように促している。
・6行目では、継承元のヘッダーをインクルードしている。
・テンプレートの量は、親クラスほど多くない。
※参考までに継承元のヘッダー、Pickup.hを見てみる。
※BeginPlay() やTick()のoverrideが簡単に作れることが分かる。
〇コンストラクタ作成
BatteryPickup.h
public:
ABatteryPickup();
※完成形
BatteryPickup.cpp
・コンストラクタの定義
ABatteryPickup::ABatteryPickup()
{
}
※完成形
〇この電池が重力で空から落ちてくるように、Physicsをオンにする
※「Pickup.h」にあるGetMesh()関数を使う。
GetMesh()->SetSimulatePhysics(true);
※完成形
〇ビルド
・エラーが無ければ、UEエディタへ移動
〇BatteryPickupクラスに基づくBPを作成する
・下図を参考に。
・ファイル名:Battery_BP
・パス:Blueprints
・Battery_BPのエディタを開く。(もしくは自動的に開かれる)
・PickupMeshを選択>スタティックメッシュに「SM_Cylinder」を設定
・コンパイルと保存を行う。
・下図のように、2つのBPをレベルの空中に配置
〇テストプレイ
・Battery_BPが落下すればOK。
〇確認事項
・ベースとなるPickupクラスには、物理シミュレーションは設定されていない。
・そのPickupクラスを継承した「Pickup_BP」は、宙に浮いたまま。(SM_Cubeの方)

・Pickupクラスを継承したBatteryPickupクラスを作って、そこで物理シミュレーションを有効にした。
・そのBatteryPickupクラスを継承した「Battery_BP」は、落下した。(SM_Cylinderの方)
・今回は、ここまでです。
・次回は、電池の自動生成(スポーンボリューム)を行っていきます。
・以上、お疲れ様でした。
タイトルとURLをコピーしました