広告あり

Unreal Engine コツコツ自習_PawnクラスをC++でカスタマイズして作成する(プレイヤー作成)【2Dゲーム】

UEコツコツ自習シリーズ
スポンサーリンク

簡単な2Dゲームを作ろう

2Dゲーム制作の練習シリーズです。

アンリアルエンジンで2Dゲーム制作方法をまとめていきます。

説明を省略したり、細かな数値設定などの説明をしない場合もありますので、ご参考程度で確認ください。

※作業環境:UEバージョン5.3.2 Windows11 VSCode

PawnクラスをC++でカスタマイズして作成

プレイヤーを作成していきます。

C++でクラスを作成するときに開かれるコードエディタを設定する

C++でクラスを作成するときに開かれるコードエディタを設定します。

「Edit」の「Editor Prefernces…」を開いて、「General」の「Source Code」を選択します。

今回は「Source Code Editor」をVisual Studio Codeにします。

VSCodeには、以下のプラグインを入れておきます。

それ以外にもC++のプラグインとかも入れないといけませんが説明は省略します。

C++クラスを作成する

クラスを新規作成していきます。

「Tools」の「New C++ Class…」を選択します。

Pawnクラスを選択して「Next」をクリックします。

Nameに任意の名前を入力し、「Create Class」をクリックします。

今回は「PlayerCharacter」にします。

Pathは初期設定のままで良いです。(上の写真はパスを見られたくないので空欄にしてます)

処理画面が表示されて、VSCodeエディタが起動されます。

処理画面は「Finished」になればOKです。

エラーがあれば赤文字で警告があります。

「(プロジェクト名)」フォルダの「Source」フォルダの「(プロジェクト名)」フォルダ内に、「PlayerCharacter.h」と「PlayerCharacter.cpp」ファイルが作成されます。

.hがヘッダーファイルで、.cppがC++ファイルです。

詳しい説明は省略しますが、基本的にこの2種類のファイルを編集してゲーム内に処理を追加します。

コードを書いていく前にUEエディタに戻って、「Tools」の「Refresh ~ Project」を実行します。(「~」部分は使うソースコードエディタの名前)

これをすることでインクルードが正常に機能して、コード内の注意メッセージが消えます。

下の写真の青い波線が消えるはずです。

VSCodeエディタに戻ります。

もしVSCodeエディタを閉じてしまった場合は、エディタ呼び出し方法を、以下の記事で紹介しているので確認ください。

作業していると感じると思いますが、読み込みが遅く予測コード変換表示がとても遅いです。
ストレスに感じるかもしれませんが、VSCodeを使う場合は我慢ですね。
有料エディタや有料プラグインを使うと、高速でストレスフリーで作業出来ると思います。
資金に余裕があるなら、作業効率向上のために導入を検討したいです。

コードを編集していきます。

PlayerCharacter.h」から編集していきます。

PlayerCharacter.h

不要なコメントやコードを消して整えます。

「public:」と「protected:」を消します。

整理前

整理後

英語でコメントが書いていますが、コードが見にくいなら消しても良いです。

今回は残しておくことにします。

翻訳してみると下の写真の()内になります。

インクルードを追加します。

#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Pawn.h"
// 追加↓
#include "Components/CapsuleComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
#include "PaperSpriteComponent.h"
// ここまで↑
#include "PlayerCharacter.generated.h"

public内にコードを追加します。

	GENERATED_BODY()

public: // 追加↓
	// カプセルコリジョン配置
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	UCapsuleComponent* CapsuleComp;

	// スプリングアーム配置
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	USpringArmComponent* SpringArm;

	// カメラ配置
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	UCameraComponent* Camera;

	// キャラスプライト配置
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	UPaperSpriteComponent* MonsterSprite;
// ここまで↑

    // Sets default values for this pawn's properties(このポーンのプロパティのデフォルト値を設定する。)
	APlayerCharacter();

次に「PlayerCharacter.cpp」を編集していきます。

PlayerCharacter.cpp

こちらもコメントが不要なら消しても大丈夫です。

今回は残しておきます。

翻訳してみると下の写真の()内になります。

では編集していきます。

APlayerCharacter::APlayerCharacter(){}内にコードを追加します。

// Sets default values(デフォルト値の設定)
APlayerCharacter::APlayerCharacter()
{
 	// Set this pawn to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	// このポーンが毎フレームTick()を呼び出すように設定する。 必要なければ、これをオフにしてパフォーマンスを向上させることもできる。
	PrimaryActorTick.bCanEverTick = true;

// 追加↓
	CapsuleComp = CreateDefaultSubobject<UCapsuleComponent>(TEXT("CapsuleComp"));
	SetRootComponent(CapsuleComp);

	SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
	SpringArm->SetupAttachment(RootComponent);

	Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
	Camera->SetupAttachment(SpringArm, USpringArmComponent::SocketName);

	MonsterSprite = CreateDefaultSubobject<UPaperSpriteComponent>(TEXT("MonsterSprite"));
	MonsterSprite->SetupAttachment(RootComponent);
//ここまで↑
}

編集は完了したので、上書き保存します。

保存できたらUEエディタを開いてコンパイルします。

コンパイルする前、「Tools」の「Refresh ~ Project」を実行します。

画面右下の「All Saved」の左側にある「ブロックが崩れた」みたいなアイコンをクリックします。

成功すれば、以下のファイルが生成されます。

もしコンパイルに失敗した場合は、どこかでコードを打ち間違いしているかもしれません。

コードは合っている場合は、他に原因があるかもしれないので、以下の記事で紹介している方法を試してみてください。

C++クラス作成完了

今回はここまでです。

次回は「ブループリントを作成してプレイヤーを配置する」です。

前後記事

他の記事を探す

他の記事も気になる方は、以下の記事の目次を確認ください。

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