UE4の勉強記録

UE4の勉強の記録です。個人用です。

8章17節 新しいコンソールコマンドを作成する 

<前文>

f:id:kazuhironagai77:20180225113310p:plain

で勉強しています。

今回は、「8章17節 新しいコンソールコマンドを作成する」を勉強します。

***このブログは、このブログの読者が、教科書(Unreal Engine 4 Scripting with C++)を読んでいる前提で書かれています。この教科書を読まないで、このブログを読んでも理解不可能であると考えられます。ご了承ください。***

今回、体調を崩してしまい、途中までしか出来ませんでした。残りは、来週行います。

<本文>

<目的>

今回は、新しいコンソールコマンドを作成します。

<方法>

今回からは、方法でも、教科書のHow to do it…からの引用とその訳は、枠で区別して表示します。

Step 0.

今回は、プロジェクトの別名保存はしません。前回のプロジェクトを、そのまま使用します。

Step 1.

f:id:kazuhironagai77:20180424124600p:plain

以下に示すように、私のEdiorModuleクラスであるFUE4CookookEditorModuleクラスのヘッダーファイルに、IConsoleCommand* DisplayTestCommand; とIConsoleCommand* DisplayUserSpecifiedWindow; を加えました。

f:id:kazuhironagai77:20180424124703p:plain

Step 2.

f:id:kazuhironagai77:20180424124740p:plain

f:id:kazuhironagai77:20180424124808p:plain

以下に示しように、私のEdiorModuleクラスであるFUE4CookookEditorModuleクラスのソースファイル内の関数、StartupModuleに、上記のコードを足しました。(実際は、Packet Publish社の提供するサンプルコードにあるUE4CookbookEditor.cppファイルのStartupModule関数内に同様のコードがあるので、カット&ペーストしました。)

f:id:kazuhironagai77:20180424124844p:plain

DIsplayWindow()がエラー表示になっていますが、とりあえず無視しておきます。

Step 3.

f:id:kazuhironagai77:20180424125005p:plain

f:id:kazuhironagai77:20180424125019p:plain

以下に示すように、コードを、教科書に忠実な形で、加えました。Packet Publish社の提供するサンプルコードでは、if節がなかったです。DisplayTestCommnadオブジェクト変数と、DisplayUserSpecifiedWindowオブジェクト変数が、ShutdownModule関数に来た途端、なくなってしまう可能性はないと思うので、if節でチェックする教科書のやり方は、慎重すぎると思いますが、とりあえず、教科書のやり方に従います。

f:id:kazuhironagai77:20180424125121p:plain

Step 4.

f:id:kazuhironagai77:20180424125237p:plain

f:id:kazuhironagai77:20180424125250p:plain

f:id:kazuhironagai77:20180424125300p:plain

以下のように、加えました。

まず、EditorModule.hファイルに、DisplayWindow関数の宣言をして、

f:id:kazuhironagai77:20180424125332p:plain

DisplayWindow関数の実装をEditorModule.cppファイルに書きました。

f:id:kazuhironagai77:20180424125356p:plain

教科書も、Packet Publish社の提供するサンプルコードでも、DisplayWindow関数の実装をEdiorModuleクラスのヘッダーファイルで行っています。特別な理由は、ないはずです。基本通りに、関数の宣言はヘッダーファイル、実装はソースファイルで行きます。

後、step2で表示されていたエラーも消えました。

<結果>

Step 5.

f:id:kazuhironagai77:20180424125501p:plain

Visual Studio側から、buildを実行しました。

f:id:kazuhironagai77:20180424125533p:plain

成功しました。

Visual Studio側からエディターを実行します。

f:id:kazuhironagai77:20180424125559p:plain

UE4エディターは普通に実行しました。

Step 6.

f:id:kazuhironagai77:20180424125631p:plain

しました。

f:id:kazuhironagai77:20180424125654p:plain

Step 7.

f:id:kazuhironagai77:20180424125725p:plain

DisplayTestCommandWindowをタイプしました。タイプの途中で既に、DisplayTestCommandWindowが単語の候補に挙げられています。

f:id:kazuhironagai77:20180424125749p:plain

Step 8.

f:id:kazuhironagai77:20180424125816p:plain

Test Command Windowが表示されました。

f:id:kazuhironagai77:20180424125838p:plain

<まとめ>

今回は、ここまでしか出来ませんでした。来週、考察を行います。