見出し画像

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

VisualStudio2022に対応した記事をZenn側で書いています。
コチラをさんこうにしてください。(2024/03/23)

Visual Studio 2019よりVisual Studio Codeの自動補完の方が優秀で無料だったので、Visual Studio Codeのデバッグが出来るまでの環境をまとめてみました。
Visual Studio 2019は有償(1万2千~5千円)のExtensionをおすすめされているので、別の機会に無料版で試してみます。


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

Visual Studio Codeのインストール

Visual Studio Codeをダウンロードしてインストール
※Visual Studio 2019が入っている状態からのスタートになります
何もインストールされていない環境で試すことがあった際にこれより前の情報を追記します。

Download for Windowsを選択するとダウンロードが始まる

インストーラーは場所の選択以外はすべて次へでインストール完了します。
最初の画面ではエディタの色などを設定できますが、後からでも変えられるので[Mark Done]で終了させます。

後から設定は変えられるので、[Mark Done]

Extensionのインストール

VS Codeに拡張機能をインストールします

【C/C++】をインストール

インテリセンスとは、米マイクロソフト(Microsoft)社のソフトウェア開発環境Visual Studio」の入力支援機能。キー入力を監視し、何を入力しようとしているのか推測して自動補完(オートコンプリート)したり、後続要素の候補を表示して選択するだけで入力できるようにしてくれる。

インテリセンス 【IntelliSense】
C/C++用のIntellisense

【C/C++ Extension Pack】をインストール

後で、Workspaceの設定する時に必要になってきます。

C/C++拡張機能は、VSCodeでC言語やC++によるアプリケーション開発を可能にする、コード補完やデバッグ機能を備えたアドオンである

Visual Studio CodeのC/C++拡張機能がバージョン1.0に到達
C/C++ Extension Pack

C#のExtensionも必要になるのでインストールします。

C#

UE4 関連のExtension

便利そうなのを入れてみただけなので、まだ便利かどうかはわかりません。

VSCode/UE Intellisense Fixes Extension
色々と便利そうなので入れてみました。

https://gist.github.com/boocs/f63a4878156295b6e854cac68672f305

Install from VSIX…
ダウンロードした.vsixを選択してインストール

UE4で検索すると色々出てきたのインストールしてみました

Unreal Engine 4 Helper
Unreal Engine 4 Snippets

Unreal Engine 4 Snippetsは例文を入れてくれるので便利です。

自動補完から単語を選択

例文を追加してくれる


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

[オプション]をクリック

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

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


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

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

  • FirstPersonテンプレート

  • C++

  • StarterContent:オフ

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

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

Edit > Editor Preference

Source Code > Visual Studio Code

Source Code > Sorce Code Editor:Visual Studio Code

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

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

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

Visual Studio CodeでC++のソースが書けるようになる

ワークスペースの編集

ワークスペースを一度、プロジェクトフォルダ直下に保存します。

プロジェクト名 UE5_VSCode.code-workspace保存(ファイル > 保存)

プロジェクトフォルダ直下に保存します。

プロジェクトフォルダ直下に保存

ヘッダーファイルをincludeしているファイルを開きます。
波線になっている箇所にマウスオーバーし、["includePath"設定の編集]を選択します。

"includePath"設定の編集

c_cpp_properies.jsonが出来上がります。
Microsoft C/C++ 拡張機能の右側でJsonファイルの内容を設定することが出来ます。

c_cpp_properies.jsonが作成される

エラーが出ている原因はIncludePathが設定されていないため、ヘッダーが無いという扱いになっています。

IncludePathの設定が出来ていないため

c_cpp_properies.jsonの"includePath"の部分を置き換えます。
C:\\Program Files\\Epic Games\\UE_5.0EA の部分は
インストールした場所に置き換えてください。

            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/Source/**",
                "${workspaceFolder}/Intermediate/Build/Win64/UnrealEditor/Inc/UE5_VSCode",
                "C:\\Program Files\\Epic Games\\UE_5.0EA\\Engine\\Source\\Runtime\\Core\\Public",
                "C:\\Program Files\\Epic Games\\UE_5.0EA\\Engine\\**"
            ],

definesを以下のURLで置き換えます
https://cdn.fs.teachablecdn.com/5GuRLyP1QtGXtVRTS6Cp

definesをURLの内容で置き換える

下3行の[MyProject]の部分は、作成したプロジェクト名で置き換えます。

MyProjectを作成したプロジェクト名で上書き

CoreMinimal.hで"unistd.h"のファイルが開けません”というエラーが出ますが、Linuxで必要とされるファイルが開けないだけなので、Windowsではコンパイルエラーにはなりません。

Windowsなら"unistd.h"のエラーは無視してOK?

【参考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]を有効にします。

Settings > 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]をビューポートに追加します

Place Actorの検索バー「Debug」で検索 > Debug Actor

DebugActor1の参照を追加するので、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する

Debug出来るように[launch.json]を作成して、Unrealを実行したりプロセスをアタッチ出来るように修正します。

実行 > 構成の追加

C++(Windows)を選択すると、[launch.json]が作成されます

C++(Windows)を選択

[launch.json]が作成されるので、UnrealをLaunch・Attachできるように置き換える

↓のコードに置き換える

.uprojectやEngineのインストール場所は違っていたら置き換えてください。
UE4の時は[UE4Editor.exe]でしたが、
UE5から[UnrealEditor.exe]になるようです。

{
    "version": "0.2.0",
    "configurations": 
    [ 
        { "name": "Attach"
        , "type": "cppvsdbg"
        , "request": "attach"
        , "processId": "${command:pickProcess}"
        }
      , { "name":"Launch"
        , "type": "cppvsdbg"
        , "request": "launch"
        , "program": "C:/Program Files/Epic Games/UE_5.0EA/Engine/Binaries/Win64/UnrealEditor.exe"
        , "args": [  "(プロジェクトファイルのフルパス).uproject", "-game" ]
        , "cwd": "${workspaceRoot}"
        }
    ]
}

launch.jsonが作成出来たら、デバッグしたい個所にブレイクポイントを追加します。
今回はDebugActor.cpp「DebugAdd」関数の足し算の処理をしている箇所にブレイクポイントを追加します。

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

それではデバッグを開始していきます。
[Attach]と[Launch]の2種類があるので、まずは[Attack]でデバッグをします。
実行とデバッグの右側のリストから[Attach]を選択します。

Debaguのオプションを[Attach]

プロセスのアタッチの検索欄に[UnrealEditor]と検索し、[UnrealEditor.exe]を選択します。

プロセスのアタッチの検索欄に[UnrealEditor]と検索>[UnrealEditor.exe]を選択

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

New Editor Window(PIE)でプレイ

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

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

ゲームに戻りたい時は[実行 > 続行]し、デバッグを終了したい時は[実行 > デバッグの停止]を選択します。
[Launch]試すので、デバッグの停止を行います。

メニューの実行からデバッグの操作を行う(ショートカットを覚えると早い)

次にDebugを[Launch]に変更して実行します。

Launchに変更してデバッグを実行

全画面でゲームが実行されます。
Attackと同様にZキーを押すとブレイクポイントで処理が止まります。

Launchはゲームが実行されて、デバッグが出来る

【参考URL】

まとめ

C++関連のセットアップ情報がC++は書けるけど、使い勝手が良くなるところまで書かれていませんでした。
色々と情報が散らばっていたので、正しいか分からないのでこちらも随時修正していきます。情報を書いておいてくれた方や動画を作っていてくれた人に本当に感謝しかないです。
かなり使いやすくなるところまでC++を書けるようになったので楽しくなってきました。
Blueprintで処理を書くのも楽しいですが、ソースコードで処理を書くのも楽しいです。

この記事が気に入ったらサポートをしてみませんか?