このセクションを終了したときに、このような画面になります。
目標
このセクションでは、ファースト パーソン シューター プロジェクトを設定する方法を説明します。
目的
このチュートリアルのこのセクションを完了すると、次のことができるようになります。
- 新規プロジェクトを設定する
- エディタのスタートアップ マップを設定する
- プロジェクトを 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」と名前を付けます。
-
プロジェクトに名前を付けたら、先に進み、[Create] ボタンをクリックします。プロジェクトが作成されると、自動的に Unreal Editor が開きます。
クリックしてフルサイズで表示
異なるプロジェクト名を付けた場合は、このチュートリアルのコード サンプルの一部を変更する必要があります。
-
コンテンツ ブラウザ から [Engine] > [Content] > [Maps] > [Templates] の順に選択して [Template_Default] レベルをダブルクリックして開きます。
-
レベル エディタのツールバー で、[Play (プレイ)] ボタンをクリックし、Play in Editor (PIE) モードにします。
WASD の各キーでレベルの中を動き回り、カメラの向きをマウスでコントロールします。
-
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] を選択します。
この設定を行うと、エディタでは 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を開きます。次のようになります。FPSProjectGameModeBase.cpp
// Copyright Epic Games, Inc. All Rights Reserved. #include "FPSProjectGameModeBase.h" -
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 クラスのヘッダ ファイルを開きます。
-
クラス宣言は以下のようになります。
FPSProjectGameModeBase.h
UCLASS() class FPSPROJECT_API AFPSProjectGameModeBase : public AGameModeBase { GENERATED_BODY() }; -
AFPSProjectGameModeコンストラクタ宣言で次の関数宣言を追加します。FPSProjectGameModeBase.h
virtual void StartPlay() override;
この関数宣言により StartPlay をオーバーライドでき、ゲームプレイを開始したとき、ログ メッセージを画面に出力できるようになります。
-
FPSProjectGameMode.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() virtual void StartPlay() override; }; -
Visual Studio に
FPSProjectGameMode.hヘッダ ファイルを保存します。
FPSProjectGameMode CPP ファイル
-
[Solution Explorer] で、[FPSProject] > [Source] > [FPSProject] の順に選択します。
-
FPSProjectGameModeBase.cppをダブルクリックして、FPSGameModeBase クラスの実装ファイルを開きます。
-
ここで次のコード行をファイルに追加します。
FPSProjectGameModeBase.cpp
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は次のようになります。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 (コンパイル)]** ボタンをクリックし、コードをコンパイルします。
プロジェクトを C++ プロジェクトとして開発しているので、C++ コードを Unreal Editor から直接コンパイルできます。 クリックしてフルサイズで表示
-
レベル エディタのツールバー で、[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 のまとめ
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()
virtual void StartPlay() override;
};
FPSProjectGameModeBase.cpp
// 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++ クラスをコンパイルする
✓ デフォルト ゲーム モードを設定する
次のセクションで独自のキャラクターを実装する方法を学習する準備ができました。