※この記事で使用しているUnrealのVersionは04.23.0 Preview7です。

※記事が長くなってしまったので、2ページに分けて投稿します。@ページ2

前編はこちら

※この記事のサンプルプロジェクトは以下URLにアップされています。
サンプルプロジェクト

独自で定義するスクリプトシステムを作る レベル【★★★☆】

前編では、C++コードを用いて独自のアセットやスクリプトの関数の元となるクラスの実装をしました。

後編では、それらを使って、スクリプトアセットを作っていきたいと思います。

前編の「ScriptFactory.cpp」でハードコードしたエディター上のパスに、「ScriptTaskBase」を継承したブループリントクラスを作成していきます。
ひとまず、BP側でもBaseクラスを作りました。

このクラスをさらに継承して、 「ScriptFactory.cpp」でハードコードした命名規則「ST_~~~」というクラスを作ります。

まずは試しに「PrintString」の機能を実行できる「ST_DebugPrint」クラスを作成しました。

作成したクラスを開き、「マイブループリント」タブの「関数」部分にある「オーバーライド」から、「Exec_Func」を選択します。

関数をダブルクリックしたら、以下のように実装してみます。

また、クラスのデフォルトで「MinArgCnt」と「MaxArgCnt」を「-1」にしてください。

終わりましたら、コンパイルをして一旦エディターからはなれ、「.stf」ファイルをエクスプローラー上で作成します。

適当な場所にテキストファイルを作成し、拡張子を「.stf」としてみましょう。

拡張子は、「表示」タブから、「表示/非表示」カテゴリにある「ファイル名拡張子」にチェックを入れることで、確認・編集することができます。

「stf」ファイルを作ったら、それをメモ帳などのアプリで開き、以下のように記述しましょう。

出来ましたら、あとはコンテンツブラウザ上にこのファイルをドラッグ&ドロップすると、アセットとしてファイルが登録され、アセットを開き「InstantExecuteScript」ボタンを押すと、記載した文字がViewport上に表示されます。

↓こんな感じ

ここまで出来たら、あとは好きな関数をScriptTaskBaseから継承したBPで作成していけば、オリジナルのスクリプト関数を作成していくことができます。

例:

以上

前編はこちら

※この記事のサンプルプロジェクトは以下URLにアップされています。
サンプルプロジェクト