見出し画像

UE5EA C++ ~Visual Studio 2019をインストールをデバッグするまで~

Visual Studio 2019でC++の学習を始めたのですが、エラーや設定が全然わからなかったのでVisual Studio CodeでC++を始めてみました。
腰を据えて調査を行い、ようやくC++が書ける設定になりました。
既にインストールした状態で記事を書き始めたので、インストールされていないPCでセットアップした時にインストール方法を追記します。
Visual Studioをインストールから始める人は公式ドキュメントを参照してください。
Unreal EngineでC++を書く人のきっかけになると嬉しいです。

Visual Studio CodeでもC++が書けますので、こちらの記事を参考にしてください。

Visual Studio 2019のインストールからUE5 EAでのデバッグまで

Visual Studio 2019のインストール

Visual Studioの最新版は2022なので、2019をインストールするには少し手間がかかります。

[今すぐ参加またはアクセス]をクリックします。

[今すぐ参加またはアクセス]をクリック

Microsoftアカウントのログインが求められるので、Microsoftアカウントがない人は作成してください。
Visual Studio Communityのダウンロードをクリックします。

Visual Studio Communityのダウンロードをクリック

検索バーから[Visual Studio Community 2019]を検索して、「Download〙をクリックします。

検索バーから[Visual Studio Community 2019]を検索して、「Download〙をクリック

ダウンロードされたexeファイルを実行します。

ダウンロードされたexeファイルを実行

Visual Studio Installerが立ち上がります。
[C++によるゲーム開発]を有効にして、開発に必要な項目を選択します。

[C++によるゲーム開発]を有効にして、開発に必要な項目を選択

英語UIで開発していきたい人は、言語パックの「日本語」を無効にし、「英語」のみを有効にします。
日本語が有効になっていると、ファイルの文字コードをShift-JISで作成してしまいます。
UnrealEngineは文字コードをUTF-8で処理するので、エラーメッセージが文字化けしてしまいます。

英語UIで開発したい人は言語パックを英語のみに設定

Visual Studioを日本語のUIで開発したい方はこちらの記事を参考にしてください。

[インストール]をクリックします。

[インストール]をクリック

Visual Studioのインストールが開始されます。

Visual Studioのインストールが開催される

インストールが完了したら、再起動します。

インストールが完了 > 再起動

Visual Studio側の言語設定はToolsのOptionsから行います。

Tools > Options…
使用する言語を選択します。

【参照URL】

デバッグに必要なエディタシンボルがインストールされているか確認する

デバッグに必要なエディタシンボルが入っていなかったら追加する

デバッグに必要なエディタシンボルがインストールされているか確認インストールされていなければインストールする

C++プロジェクトを作成し、使用するエディタをVisual Studio 2019に設定する

FirstPersonテンプレートのC++プロジェクトを作成します。

  • FirstPersonテンプレート

  • C++

  • StarterContent:オフ

C++ プロジェクトを作成する

エディターをVisual Studio 2019に設定します。

Source Code > Visual Studio 2019

Source Code > Visual Studio 2019

プロジェクトを再起動すると設定が反映されます。

Restart Nowをクリックしてプロジェクトを開きなおす

Visual Studioでのソリューションファイルを更新しておきます。

Tools > Refresh Visual Studio 2019 Project

Visual Studio 2019でプロジェクトを開きます。

Tools > Open Visual Studio 2019

Visual Studio 2019でC++のソースコードが編集できるようになります。

Visual Studio 2019でC++のソースコードが編集できるようになる

Visual Studioの推奨の設定

Solusion Configurationsの幅を広くします。

ツールバーを右クリック > Customize

Commandsタブを選択します。
Toolbarを[Standard]に変更します。
Solution Configurationsを選択し、[Modify Selection]をクリックします。

Toolbarを[Standard]に変更 >Solution Configurationsを選択 > [Modify Selection]をクリック

Widthを200に設定します。

Widthを[200]に設定

Solusion Configurationsの一覧が見やすくなります。

Solusion Configurationsの一覧が見やすくなる

Toolsのオプションを設定します。

通常、コードにエラーがあると エラー リスト(Error List) ウィンドウが自動的にポップアップします。しかし、UE の作業中に誤ったエラー情報が エラー リスト ウィンドウに表示され場合があります。UE で作業する際は、この エラー リスト ウィンドウをオフにして、出力 (Output) ウィンドウを使用して実際のコード エラーを確認することを推奨します。エラー リスト ウィンドウをオフにするには、次の手順に従ってください。

Unreal Engine 用に Visual Studio をセットアップする
Tools > Options…

Projects and Solutions > General の[Always show error list if build finishes with error (ビルドがエラーで終わった場合、常にエラー リストを表示する)]をオフに設定します

Projects and Solutions > General の[Always show error list if build finishes with error (ビルドがエラーで終わった場合、常にエラー リストを表示する)]をオフに設定

出力 (Output) ウィンドウを使用して実際のコード エラーを確認することを推奨されています。

View > Output

UE5側でコンパイルをした際に、エラーログにエラーが表示されますが、文字化けしてしまいます。

UE5側でコンパイルした時にエラーを確認出来るが文字化けしてしまう

Visual Studio 2019側で、Build > Build Solutionを行うと、Outputウィンドウにエラー内容が文字化けせずに表示されます。エラーの行をダブルクリックするとエラーの箇所に移動します。

Build > Build Solution > エラーがあれば[Output]

外部依存関係フォルダの無効化をします。
ソリューションエクスプローラで不要なフォルダを非表示にする。

外部依存関係フォルダの無効化

VisualStudio側の設定(有料Extensionを使用しない場合)

大量のエラーはintellisenseがヘッダを見に行っているけど見つからないためのエラーです。

大量のヘッダーファイルが開かないエラー

プロジェクトファイルの設定を直すことでエラーを消すことが出来ます。
今回のエラーはIntellisenseがヘッダーを開けないので、IncludeSearchPathを設定することでエラーを消すことが出来ます。

プロジェクトファイルのプロパティを開きます。

プロジェクトファイルを右クリック > Properties

Include Search Pathを追加することで直ります。
UE4のInclude Search Pathの一覧がGithubで提供されていました。
UE5 EAでは「UE4Editor」というフォルダ名が「UnrealEditor」に変更されているので、置換したファイルをGithubに公開しました。
https://gist.github.com/posita33/c639a0d558d4332478df506b5ec773d2#file-includepaths_ue5ea-txt

※UE4で編集する場合(元ネタ)
https://gist.github.com/Jakob-PB/a9ea415f4d9d0189926429cbd0242cef#file-includepaths-txt

Rawボタンをクリックして、全体を選択してからコピーします。

IncludeSearchPathの設定をコピーします。

NMakeのIntellisence > Include Search Pathにペーストします。

NMake > Include Search Pathにペースト

大量にあったエラーが消えます。

次にオプションの設定を行います。

Tools > Options…

Text Editor C/C++のIntelliSenceの設定を変更します。

Text Editor > C/C++ > IntelliSenceの設定

Setting Unreal Engine 4.22 With Visual Studio 2019 And Fixing C++ Error


有料Extension「Visual Assist」の導入

触ってみた感じVS Codeより欲しい変換が手に入りますし、コーディングがしやすいです。
流石有料のExtensionでした。

購入はこちらからできます。

企業だと$279、個人だと$129で購入できます。
30日間無料で使用できるので、無料版で試してみます。

Visual Assistをインストールします。

Extensions > Manage Extensions
Onlineで UE4と検索 > Visual AssistをDownload

Visual Studioを閉じます。
[Modify]をクリックするとインストールされます。

Modifyをクリック

Visual Assistの設定を変更します。

Intellisenceと同様に使える設定です。

Tooltipsを表示する設定

Visual Assistを使用する場合はIntelliSenceをオフにします。

Tools > Options…
Disable IntelliSenceをTrue(IntelliSenceをオフ)

【参照URL】

【公式情報】

YouTubeチャンネル

【参考URL】


C++のクラスを追加する

C++の新規Actorクラスを作成します。
「メニューから作成する方法」「コンテンツブラウザから右クリック」で作成する方法があります。

メニューからC++Classを作成するには、[Tools]>[New C++ Class…]から作成することが出来ます。
UE4では[File]メニューから作成できていたので、[Tools]に移動したことを知らないと戸惑います。

Tools > New C++ Class…

コンテンツブラウザから作成する方法はC++ Classes配下のフォルダ内で右クリック > [New C++ Class…]で作成することが出来ます。

コンテンツブラウザを右クリック > New C++ Class…

C++ Classesのフォルダが表示されていない場合は[Show C++ Classes]を有効にします。

Settins > Show C++ Classes

[Actor]を選択します。

Actor > NEXT

Debugまで確認したいので、名前を[DebugActor]に設定します。
ClassType:Private
Name:DebugActor
> [CREATE CLASS]をクリック

名前をDebugActor

DebugActor.h

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "DebugActor.generated.h"

UCLASS()
class ADebugActor : public AActor
{
	GENERATED_BODY()
	
public:	
	UFUNCTION(BlueprintPure, Category="UE C++ book")
	float DebugAdd(const float A, const float B) const;
};

DebugActor.cpp

#include "DebugActor.h"

// Called when the game starts or when spawned
auto ADebugActor::DebugAdd(const float A, const float B) const -> float
{
	float C = A + B;
	return C;
}

UnrealEngineのエディタ右下の小さいアイコンがコンパイルボタンです。
クリックをして[Compile Complete!]が表示されればOKです。

エディタ右下の小さいアイコンをクリックするとコンパイルが実行される

C++クラスを配置してDebug用の処理を書く

レベルブループリントにZキーを押したら、DebugActor.cppの[DebugAdd]関数が呼ばれるようにします。

[Debug Actor]をビューポートに追加します

DebugActor1の参照を追加するので、DebugActor1を選択した状態でレベルブループリントを開きます。

DebugActor1の参照を追加します。

右クリック > Create a Reference to DebugActor1

Zキーを押した時に、Debug Add関数を呼び出して、結果をPrint Stringに出力します。

Zキーを押した時に、Debug Addの結果をPrintStringで出力する処理

New Editor Window(PIE)でプレイします。

New Editor Window(PIE)でPlay

Zキーを押してPrintStringが出力されていればデバッグする準備が整いました。

Zキーを押してPrintStringが出力されることを確認

Debugする

今回はDebugActor.cpp「DebugAdd」関数の足し算の処理をしている箇所にブレイクポイントを追加します。

デバッグしたい個所にブレイクポイントを追加する(ダブルクリック)

Solusion Configurationsを[DebugGame Editor]に設定する。

Solusion Configurations:DebugGame Editor

プロジェクトファイルを右クリック > Debug > Start New Instanceを実行するとUnreal Editorが表示されます。

プロジェクトファイルを右クリック > Debug > Start New Instance

New Editor Window(PIE)でプレイします。

New Editor Window(PIE)でPlay

Zキーを押すとDebugAddが呼ばれるように処理を書いたので、ブレイクポイントの場所で処理が止まります。

Zキーを押すとDebugAddが呼ばれるように処理を書いたので、ブレイクポイントの場所で処理が止まる

Visual Studioの停止ボタンをクリックすることでデバッグを終了します。停止するとエディタが閉じます。

Visual Studioの停止ボタンでデバッグを終了する

【参照URL】
デバッグに詳しく書かれているので、デバッグについてもいずれまとめます。

【試してみたいVisual Studioの拡張機能】


まとめ

Visual Studio 2019は有料(1万2千~5千円)のExtension「Visual Assist」をTrial版で試してみましたがVisual Studio Codeよりコーディングしやすかったです。
Visual Studioの拡張機能の質が高いですが、その分費用が掛かりますね。
Visual Studio Codeは無料で使えるのでBlenderみたいに拡張機能が色々と公開されているのですが、設定することが多いので知識が必要でした。
どちらも一長一短がありました。
Unreal EngineでC++を書く人のきっかけになると嬉しいです。

【追記情報】

文字化けに対する修正(2019/12/18)


いいなと思ったら応援しよう!