UE5 C++&BP 01 クラスを作成する
Unreal Engineですが、C++は使えますか?
転職活動や仕事をする前の打合せで必ずと言っていいほど聞かれる質問です。
C++は分かるのですが、Unreal Engineではあまり触ったことはないです。
Blueprintで何とかなってしまうくらいBlueprintが使いやすいです。
プラグインを作ったり、便利な機能を作ろうと思うとC++やPythonといったソースコードの実装も覚えておいた方が良さそう。
朝活としてBlueprintで出来ることをC++で書く方法についてまとめていきます。まずはBlueprintで実装して、C++で再現する方法について書きます。
UE5になるし心機一転!
BlueprintもC++も使えるようになっちゃいましょう!
基本的なことを気長に短い内容で更新していきます。
マガジンを作成したのでよかったらフォローしてください。
事前準備
C++のソースを書くためにVisualStudioをインストールする
C++を書くにはIDEが必要になります。WindowsであればVisualStudioかVisualStudioCodeをインストールしましょう。
プロジェクトを作成する
BleuprintとC++両方を実装していくプロジェクトを作成します。
C++のタブを有効にして、プロジェクトを作成します。
BlueprintとC++のクラスを新規追加する
Blueprintのクラスを追加する
Blueprintでクラスを作成します。
Blueprintを作成するフォルダを作成します。
新規Blueprintのクラスを作成するには何種類か方法があります。
・コンテンツブラウザのAddボタンから、[Blueprint Class]を選択する
・コンテンツブラウザの空きスペースを右クリック、[Blueprint Class]を選択する
・左上のBlueprintsメニューから[New Empty Blueprint Class…]を選択する
次に親クラスを選択します。
[Actor]を選択します。
最後に名前を設定します。
名前を[BP_SampleActor]に設定します。
名前の付け方や、フォルダの構成については[UE4-style-guide]を参考にしています。最新では[ue5-style-guide]になっていたのでこちらを参照した方が良さそうです。
UE4-style-guideの方は日本語訳されている方がいます。UE4とUE5でそこまでまだ変更が無いので十分役に立つ情報です。
C++のクラスを追加する
C++のクラスを新規作成します。
メニューから作成する方法と、コンテンツブラウザから作成する方法があります。
・[Tools]メニューから[New C++ Class…]を選択する
・コンテンツブラウザの[C++ Classes]を選択すると右クリックやAddボタンのメニューが変わる。[New C++ Class…]を選択する
親クラスを選択します。
[Actor]を選択して、[Next >]をクリックします。
Class TypeとClass名を設定して、[Create Class]をクリックします。
Class Type:Public
Name:CPPSampleActor
コンテンツブラウザのC++ Classesフォルダ側に作成したC++のクラスが追加されます。
Visual Studio側を確認します。
Solution Explorerにソースコードが追加されています。
Publicフォルダに「CPPSampleActor.h」(ヘッダーファイル)
Privateフォルダに「CPPSampleActor.cpp」(C++ファイル)
CPPSampleActor.h(ヘッダーファイル)
ヘッダーファイルは関数の宣言や変数の定義を書いていきます。
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "CPPSampleActor.generated.h"
UCLASS()
class CPP_BP_API ACPPSampleActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ACPPSampleActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
};
CPPSampleActor.cpp(C++ファイル)
C++ファイルはヘッダーファイルで宣言した関数の処理を実装します。
// Fill out your copyright notice in the Description page of Project Settings.
#include "CPPSampleActor.h"
// Sets default values
ACPPSampleActor::ACPPSampleActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void ACPPSampleActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void ACPPSampleActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
まとめ
プラグインの学習についてまとめていたおかげで、VisualStudioの設定方法について書かずにすみました。UnrealEngineを始めようとすると導入が大変なので、導入部分を書いておくとショートカット出来ます。今回の内容もまた導入部分なのでどこかでショートカット出来るはず!
クラスを作るだけでも結構なボリュームになりました。
少しずつですが基礎力を高めていけるようになりましょう。