UE4+Rust(ビルドシステム拡張)

UE4検証バージョン  4.24.3

 

前置き

 

先ほどまでのUE4上でRustライブラリを動かすにあたり、

・Rustライブラリの作成 

・DLLの設定

・Rustライブラリ関数の宣言

と手順が多くて不便です。

※前回

crabpunch.hatenablog.com

 

 

特にRustライブラリ関数の宣言は

作業でRustの関数が増えてるたびに

C++から呼び出しが必要なものを毎回宣言するのは非常に手間です。

 

そこでUE4のビルドシステムにてRustをビルドできる拡張と

Rust関数の宣言を自動で作成してくれる拡張を

してくださっている方がいるので、

そちらの取り込みと説明をしていきたいと思います。

 

参考資料

https://github.com/ejmahler/UnrealEngine/blob/rust-modules/RustPost/RustInUnreal.md

 

Engineの拡張

拡張のrust-modulesはgithubのほうに公開されており。

https://github.com/ejmahler/UnrealEngine/tree/rust-modules/Engine

4.24.1をベースに拡張されています。

変更差分は非常に少なく

この変更を自分の環境のEngineに取り込みます。

f:id:CrabPunch:20200726173335p:plain

UE4のビルドシステムでは基本build.csでC++ファイルのビルドの設定を行います

ここにC++タイプだけでなくRustのタイプを追加していくことになります。

 

これによってUE4プロジェクト上で管理でき

直接Rustライブラリを編集、ビルドができるようになります。

f:id:CrabPunch:20200726173930p:plain

 

 

補助用クレートをインストール

f:id:CrabPunch:20200726174739p:plain

補助用のクレートをインストールします。

インストール後はpathが通っていることを確認しておいてください。

こちらのプログラムUE4上でのRustライブラリの関数の定義されているもの

自動でC++から使用できるように宣言してくれるようになります。

 

UnrealC++のgenerated.hのようなものです。

f:id:CrabPunch:20200726175329p:plain

 

動作結果

f:id:CrabPunch:20200726180204p:plain

f:id:CrabPunch:20200726180216p:plain

f:id:CrabPunch:20200726175841p:plain

 

以上となります。

一度環境を構築してしまえば、

こちらのほうがはるかに楽に作業ができます。