目標
このセクションでは、ファースト パーソン シューター プロジェクトを設定する方法を説明します。
目的
このチュートリアルのこのセクションを完了すると、次のことができるようになります。
新規プロジェクトを設定する
エディタのスタートアップ マップを設定する
プロジェクトを Visual Studio で開く
1.3 - ログ メッセージングを追加する
最初の C++ クラスをコンパイルする
デフォルト ゲーム モードを設定する
ステップ
1.1 - プロジェクトを設定する
1.2 - プロジェクトを Visual Studio で開く
1.3 - ログ メッセージングを追加する
1.4 - - プロジェクトをコンパイルする
1.5 - - デフォルトのゲームモードを設定する
1.6 - セクション 1 のまとめ
1.1 - プロジェクトを設定する
このステップでは、Unreal Engine を使用して、ファースト パーソン シューター (FPS) ゲームの出発点を作成します。
Unreal Engine を Epic ランチャーから開き、新規プロジェクトを作成します。
ゲーム プロジェクト カテゴリを選択します。
ブランク テンプレートを選択します。
C++ プロジェクト タイプを選択します (ブループリント ではなく).
スターターコンテンツ を無効にします。
プロジェクトに「FPSProject」と名前を付けます。
コンテンツ ブラウザ から [Engine] > [Content] > [Maps] > [Templates] の順に選択して [Template_Default] レベルをダブルクリックして開きます。
レベル エディタのツールバー で、[Play (プレイ)] ボタンをクリックし、Play in Editor (PIE) モードにします。
Shift + Escape キーを押す、または レベル エディタ で **[Stop (停止)] をクリックして、PIE モードを終了します。
レベルをいろいろ触ったと思うので、コンテンツ ブラウザ (通常は画面の下側) に移動して「Maps」フォルダを「Content」フォルダの下に作ります (「Content」フォルダを選択して、コンテンツ ブラウザ のファイル ウィンドウを右クリックして [New Folder] を選択)。
メイン メニュー パネルで [File] を開き、[Save Current Level as...] を選択します。
[Save Level As] ウィンドウで「Maps」フォルダを選択し、新しいマップに「FPSMap」と名前をつけて 保存 します。
メイン メニュー パネルで [Edit] を開き、[Project Settings] を選択します。
[Project Settings] タブの左側にある [Project (プロジェクト)] セクションで、[Maps & Modes] をクリックします。[Editor Startup Map (エディタのスタートアップマップ)] ドロップダウン メニューを展開して、[FPSMap] を選択します。
最後に [Project Settings (プロジェクト設定)] メニューを閉じて、プロジェクトを保存してから次のステップに進みます。
1.2 - Visual Studio でプロジェクトを開く
前のステップで 基本コード プロジェクトを設定したとき、Unreal Engine により ゲーム モード が作成されています。ゲーム モードではゲームのルールと勝利の条件を定義します。ゲーム モードではゲームのルールと勝利の条件を定義します。このゲーム モードではさらに、一部の基本ゲームプレイ フレームワーク タイプ (Pawn、PlayerController、HUD など) で使用されるデフォルト クラスも設定します。このセクションでは、エディタを使用して、プロジェクトを Visual Studio のソリューションとして開き、プロジェクトのゲーム モード クラスを表示できるようにします。
メイン メニューの [Tools] をクリックして、[Open Visual Studio (Visual Studio を開く)] を選択して、C++ コードを Visual Studio で開きます。
Visual Studio でプロジェクトが起動されると、
.cpp
および.h
ファイルが Visual Studio の [Solution Explorer (ソリューション エクスプローラー)] で確認できます。Visual Studio のこのサンプル イメージが使用しているものと少し異なる場合でも、心配ありません。ダーク モードを使用しているからです。次のとおり設定できます。[Tools (ツール)] > [Options (オプション)] > [Environment (環境)] > [General (全般)] > [Color Theme (配色テーマ)]
[Source (ソース)] を展開し、[FPSProject] を選択して、新しいゲームのメイン ファイルを表示します。
FPSProjectGameModeBase.cpp
を開きます。次のようになります。// Copyright Epic Games, Inc. All Rights Reserved. #include "FPSProjectGameModeBase.h"
FPSProjectGameModeBase.h
を開きます。次のようになります。// Copyright Epic Games, Inc.All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "FPSProjectGameModeBase.generated.h" /** * */ UCLASS() class FPSPROJECT_API AFPSProjectGameModeBase : public AGameModeBase { GENERATED_BODY() };
C++ プロジェクトを Visual Studio で開いたので、コードをプロジェクトに追加する準備ができました。
1.3 - ログ メッセージングを追加する
プロジェクトへのコードの追加を開始するにあたって、まずログ メッセージを FPSGameMode に追加することをお勧めします。ログ メッセージは、開発中にコードを検証し、デバッグするのに非常に便利です。このステップでは、ログ メッセージを使用して、実際に FPSGameMode が使用され、Unreal Engine で提供される、デフォルト ゲーム モードではないことを確認します。
FPSProjectGameMode ヘッダ ファイル
[Solution Explorer] で、[FPSProject] > [Source] > [FPSProject] の順に選択します。
FPSProjectGameModeBase.h
をダブルクリックして、FPSGameMode クラスのヘッダ ファイルを開きます。クラス宣言は以下のようになります。
UCLASS() class FPSPROJECT_API AFPSProjectGameModeBase : public AGameModeBase { GENERATED_BODY() };
AFPSProjectGameMode
コンストラクタ宣言で次の関数宣言を追加します。virtual void StartPlay() override;
この関数宣言により StartPlay をオーバーライドでき、ゲームプレイを開始したとき、ログ メッセージを画面に出力できるようになります。
FPSProjectGameMode.h
は次のようになります。// Copyright Epic Games, Inc.All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "FPSProjectGameModeBase.generated.h" /** * */ UCLASS() class FPSPROJECT_API AFPSProjectGameModeBase : public AGameModeBase { GENERATED_BODY() virtual void StartPlay() override; };
Visual Studio に
FPSProjectGameMode.h
ヘッダ ファイルを保存します。
FPSProjectGameMode CPP ファイル
[Solution Explorer] で、[FPSProject] > [Source] > [FPSProject] の順に選択します。
FPSProjectGameModeBase.cpp
をダブルクリックして、FPSGameModeBase クラスの実装ファイルを開きます。ここで次のコード行をファイルに追加します。
void AFPSProjectGameModeBase::StartPlay() { Super::StartPlay(); check(GEngine != nullptr); // 5 秒間デバッグメッセージを表示します。 // 引数-1の "Key "値によって、メッセージの更新やリフレッシュができなくなります。 GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameMode!")); }
StartPlay()
はゲームプレイを開始したとき、新規デバッグ メッセージ ("Hello World, this is FPSGameModeBase!") を画面に黄色の文字で 5 秒間出力します。FPSProjectGameModeBase.cpp
は次のようになります。// Copyright Epic Games, Inc. All Rights Reserved. #include "FPSProjectGameMode.h" void AFPSProjectGameModeBase::StartPlay() { Super::StartPlay(); check(GEngine != nullptr); // 5 秒間デバッグメッセージを表示します。 // 引数-1の "Key "値によって、メッセージの更新やリフレッシュができなくなります。 GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameModeBase!")); }
Visual Studio に
FPSProjectGameModeBase.cpp
実行ファイルを保存します。
1.4 - プロジェクトをコンパイルする
ここでプロジェクトをコンパイルすると、変更されたコードをインゲームで見ることができます。
エディタへ戻り、[Compile (コンパイル)]** ボタンをクリックし、コードをコンパイルします。
レベル エディタのツールバー で、[Play (プレイ)] ボタンをクリックし、Play in Editor (PIE) モードにします。
PIE モードに入ったとき、画面にログ メッセージが表示されない理由が気になると思います。ログ メッセージが表示されない理由は、開発のこの段階では、エディタがまだデフォルトのゲーム モードを使用しているからです。
Shift + Escape キーを押す、または レベル エディタ で **[Stop (停止)] をクリックして、PIE モードを終了します。
C++ Game Mode クラスをブループリントに拡張する
このタイミングで C++ FPS Character クラスをブループリントに拡張するのがお勧めです。C++ クラスのブループリントへの拡張についての詳細は、「C++ とブループリント」 を参照してください。
まず、「Content」フォルダ内に「Blueprints」フォルダを作成します。
FPSProjectGameModeBase クラス (「C++ Classes (C++ クラス)」 > 「FPSProject」 ) を右クリックして、[C++ Class Actions (C++ クラス アクション)] メニューを開きます。
Create Blueprint class based on FPSProjectGameModeBase をクリックして [Add Blueprint Class] ダイアログ メニューを開きます。
新しい Blueprint クラスに「BP_FPSProjectGameModeBase」と名前を付けて、「Blueprints」フォルダを選択してから、[Create Blueprint Class] ボタンをクリックします。
ここまでで、新規作成した BP_FPSProjectGameModeBase Blueprint クラスが「Blueprints」フォルダの中にあるはずです。
BP_FPSProjectGameModeBase ブループリントを保存してから ブループリント エディタ を閉じるようにします。
1.5 - デフォルトのゲームモードを設定する
新たに修正したゲームモードをブループリントに拡張したので、このステップでは、プロジェクトでデフォルトの Game Mode として BP_FPSProjectGameModeBase を使用するように設定する必要があります。
メイン メニュー パネルで [Edit] を開き、[Project Settings] を選択します。
[Project Settings] タブの左側にある [Project (プロジェクト)] セクションで、[Maps & Modes] をクリックします。[Default GameMode] ドロップダウン メニューを展開して、BP_FPSGameModeBase を選択します。
[Project Settings] メニューを閉じます。
レベル エディタのツールバー で、[Play (プレイ)] ボタンをクリックします。ビューポートの左上に 5 秒間、「Hello World, this is FPSGameMode!」が表示され、その下に赤色のテキストで、「We are using FPSCharacter.」が表示されます。
Shift + Escape キーを押す、または レベル エディタ で **[Stop (停止)] をクリックして、PIE モードを終了します。
1.6 セクション 1 のまとめ
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "FPSProjectGameModeBase.generated.h"
/**
*
*/
UCLASS()
class FPSPROJECT_API AFPSProjectGameModeBase : public AGameModeBase
{
GENERATED_BODY()
virtual void StartPlay() override;
};
// Copyright Epic Games, Inc. All Rights Reserved.
#include "FPSProjectGameMode.h"
void AFPSProjectGameMode::StartPlay()
{
Super::StartPlay();
checkGEngine != nullptr);
// 5 秒間デバッグメッセージを表示します。
// 引数-1の "Key "値によって、メッセージの更新やリフレッシュができなくなります。
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameModeBase!"));
}
おつかれさまでした!以下の内容を学習しました。
✓ 新規プロジェクトを設定する
✓ プロジェクトを Visual Studio で開く
✓ ログ メッセージングを追加する
✓ 最初の C++ クラスをコンパイルする
✓ デフォルト ゲーム モードを設定する
次のセクションで独自のキャラクターを実装する方法を学習する準備ができました。