こんな感じのことができます.
#UE4 app in #JetsonNano
— R_MRT (@mu_777_) 2019年4月27日
できたわやったぜ👆 pic.twitter.com/DopUX7q8GR
全てはここの情報に従っています.
サマリとしては,UE4のソースをちょっっっっとだけ編集して,ビルドすればできました.
ただ,今思えばUE4のビルドまでしなくても,Toolchainのダウンロード と アプリでのTargetの設定 だけで大丈夫そうな気もします.が,まぁいいか.どなたか試していただきたく.
以下の作業は,Windows10,ThinkPad x1 Carbon 2018(Intel Core i7-8550U)の環境で,UE4のバージョンは4.21で行いました.
迷いつつ/中断しつつでやったのでなんとも言えませんが,スムーズにいっても1日がかりだと思います.UE4のビルド,初回はめっちゃ長いので...
なにか暇つぶしがあるといいかもしれません.(自分は結構アニメ見ながらビルド待ったりしてました)
準備
UE4ソースのクローン
ここはちょっとフォーカス外なので詳細は省略します.以下などを参考にソースをクローンしてください.
注意点としては,
- UE4の日本語ドキュメントは古いことが多い(個人的な主観)ので,英語の方が確実です
- (が,ここに関しては日本語の方でも大丈夫そう)
- 特定のバージョンにしたい場合は,該当バージョンの tag へ checkout しておきましょう
- パスが奥深ーーーく掘られていって,パスが長過ぎるとWindowsに怒られることがあるので,できるだけ浅く置くようにしましょう
- 自分は,
C:\Users\xxxxxxx\programs\unreal\0_editor\UnrealEngine
だとダメで,C:\Users\xxxxxxx\programs\unreal\ue4editor
でOKでした
- 自分は,
このドキュメント通りに進めて,UE4.sln ができ,Development Editor|Win64 でビルドができている前提で以下を進めます.
Toolchainのダウンロード
以下のページから,Toolchainをダウンロードできます.該当するバージョンのものを選択し,ダウンロードしてください.
ダウンロード後,システム環境変数に LINUX_MULTIARCH_ROOT
が追加されていると思います.もしダウンロードしてきたvXX_clang-X.X.X-centos7
のパスが変わるのであれば,システム環境変数の方も変えておきましょう.
アーキテクチャの確認
一旦,Jetson Nano のアーキテクチャを確認しておきます.
$ uname -a Linux myjetsonnano 4.9.140-tegra #1 SMP PREEMPT Wed Mar 13 00:32:22 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux
や
$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper Target: aarch64-linux-gnu (後略)
で確認できます.
Jetson Nano のアーキテクチャは, aarch64-linux-gnu
ですね
UE4のビルド
デフォルトアーキテクチャの変更
Engine\Source\Programs\UnrealBuildTool\Platform\Linux\UEBuildLinux.cs
の124行目あたりからを,以下のようにコメントアウト部分を変更します.
class LinuxPlatform : UEBuildPlatform { /// <summary> /// Linux architecture (compiler target triplet) /// </summary> // FIXME: for now switching between architectures is hard-coded //public const string DefaultArchitecture = "x86_64-unknown-linux-gnu"; //public const string DefaultArchitecture = "arm-unknown-linux-gnueabihf"; public const string DefaultArchitecture = "aarch64-unknown-linux-gnueabi";
Engine
の下にも Programs
フォルダがあるので注意です.Engine
→ Source
→ Programs
です.
UE4をビルド
Visual Studio の「ビルド」→「パッチビルド」から,以下の5つの構成にチェックを入れてまとめてビルドしてしまいます.
プロジェクト | 構成 | プラットフォーム |
---|---|---|
UE4 | Development | x64 |
UE4 | Development Editor | x64 |
UE4 | Linux_Development | x64 |
UE4 | Linux_Shipping | x64 |
UE4 | Shipping | x64 |
(実はこんなにいろいろやらなくてもいい,というか必要な構成だけでOKかと思います)
アプリのビルド
アプリでのTargetの設定
アプリのフォルダの Config\DefaultEngine.ini
に以下の2行を追加します.
[/Script/LinuxTargetPlatform.LinuxTargetSettings] TargetArchitecture=AArch64UnknownLinuxGnueabi
アプリをビルド
Windows上ですが,普通にLinux向けにパッケージングを行います.
指定するフォルダに LinuxNoEditor
フォルダができればOKです.
アプリの実行
LinuxNoEditor
をなにかしらで Jetson Nano へもっていき,直下の <AppName>.sh
を実行すれば,Jetson Nano でUE4アプリが楽しめます!!!!!!!