UE C++ Battery Collector01 v5.5

ThirdPersonBatteryCollector
〇はじめに
・このチュートリアル「やってみた」系ブログは、Epic Games公式のビデオチュートリアル「C++ Battery Collector」をバージョン5.5系(2025/04/17時点の最新版5.5.4)で試したものです。

・完全移植を目指したものではありませんので、ステージの簡易化やエフェクトの簡易変更などが行われています。出来るだけコードにフォーカスを当てられるようにしています。

・コードに関しても、バージョンアップに伴い、非推奨になっているコードの変更もあります。

・Blueprintに比べて「UE C++」の情報が少ないとされる中で、とても貴重な教材でありますが、制作バージョンが「4.9」であるため、最新バージョンでの制作を断念した方々もいるかもしれませんので、その助けになればと思い制作してみました。

・勘違いした説明などがあるかもしれませんが、その辺りはご了承ください。

・「Unreal Engine」と「Visual Studio」のインストールや、「UE C++」の環境設定が済んでいることを前提として進めていきます。
〇公式のYoutubeビデオURL
https://www.youtube.com/watch?v=mSRov77hNR4
〇ゲーム内容
・プレイヤーキャラクターは、Powerを持っているが、時間経過と共にPowerが減っていく。
・Powerが減ることで、移動速度が低下し、キャラクターの色も薄れていく。
・一定時間毎に空から降ってくる「バッテリー」を取得すれば、Powerが回復する。
・Powerが無くなると「ゲームオーバー」になり、沢山バッテリーを取得しPowerが一定量以上になれば「ゲームクリア」となる。
※下図は、完成イメージです。
〇作成する主なC++クラスの紹介
・Pickupクラス・・・ピックアップの基本クラス。Actorクラスを継承。

・Battery Pickupクラス・・・キャラクターにパワーを与えるクラス。Pickupクラスを継承。

・BatteryCollectorCharacterクラス・・・このキャラクターは、バッテリー収集範囲となる「Collision Sphere」コンポーネントを所持していて、一定範囲内にあるバッテリーをすべて集めることができる。Characterクラスを継承。

・BatteryCollectorGameMode・・・キャラクターのパワーを時間経過と共に減らす。ゲームクリアとゲームオーバーの動作も定義。GameModeBaseを継承

・Spawn Volume・・・ピックアップ物(バッテリーなど)の生成体。Actorクラスを継承。

・HUD(UMG)・・・パワーバーと、テキストメッセージのUI。
〇Pickupのクラス図
・下図はこれから作成する各クラスの継承関係を表したものです。
〇インストール済みのバージョン「5.5.4」「起動」します。
・この後、「プロジェクトブラウザ」が起動されます。
◎BatteryCollectorプロジェクトの作成
1. 新規プロジェクト:ゲーム
2. テンプレート選択:サードパーソン
3. プロジェクトデフォルト:C++、スターターコンテンツ無し
4. プロジェクトの場所とプロジェクト名を設定
※プロジェクト名は「BatteryCollector」としています。パスに日本語を含めないように気を付けてください。
〇起動直後
・「UE Editor」と「Visual Studio」が起動されることを確認します。
※下図では、左側が「Visual Studio」で、右側が「UE Editor」です。
・念のため、直ちに「Ctrl + Shift + B」でビルドを行い、「エラーが無いことを確認」しましょう。
※コードを自動生成しているのでエラーは絶対に出ないはずですが、この時点でエラーが出てしまった場合は、日本語パスなどの疑いが考えられ、その場合は再度プロジェクトを作り直してください。
【トラブルシューティング・その1】
〇Visual Studioで、スタートアッププロジェクトを確認する
・もし、Visual Studioが下図のよう「UE5」になっている場合は、
・ソリューションエクスプローラー>「Games」フォルダの下に「自分で付けた名前」のプロジェクトがあるので、「自分で付けた名前」のプロジェクトを右クリック>「スタートアッププロジェクトに設定」を選択。
※下図では、「FPSCpp」なっていますが、「BatteryCollector」という名前でプロジェクト名を付けた方が、「BatteryCollector」となります)
・下図のように変更されればOKです。
【トラブルシューティング・その2】
〇「MSB3073エラー」が発生した場合
・UEエディタ右下の「コンパイル」ボタンの右側「:」をクリック>ライブコーディングをオフにすると解消されるようです。
〇UEエディタでテストプレイ>ステージ上をキャラクターが走り回れればOK。 
・BluePrint(以下BP)でサードパーソンのプロジェクトを作成した場合と同じ挙動をします。つまり、BPで組まれていたロジックがC++で組まれていることになります。
〇C++クラスを表示する
・コンテンツブラウザで「C++クラス」のフォルダが表示されていない場合は、「⚙設定」ボタンを押して、「C++クラスを表示」にチェックを入れます。
【確認】
・サードパーソンのテンプレートとして、「BatteryCollectorCharacter」C++クラスと「BatteryCollectorGameMode」C++クラスが予め生成されていることを確認します。
・下図で、「BatteryCollectorCharacter」をダブルクリックすると、VisualStudioに移動します。
・「BatteryCollectorCharacter.h / .cpp」と「BatteryCollectorGameMode.h /.cpp」が生成されていることが確認出来ます。
・今回は、ここまでです。
・以上、お疲れ様でした。
タイトルとURLをコピーしました