2017年11月25日土曜日

ubuntu17.10にUnreal Engineをインストールする方法


背景

Unreal Engine(以下UE)とは、ゲーム開発プログラムです。
UEのバイナリファイルの配布はMacとWindowsしか対応していませんが、ubuntuでもソースコードからビルドすれば、利用することができます。

ビルドできるまでにひと手間あったので、メモを残します。

なお、ここで説明することは本家ドキュメント(en, 日本語)とほぼ同じで、違うのは最新のブランチを利用している点です。

全体像

この順に解説します。
  1. 動作環境
  2. 会員登録
  3. ダウンロード
  4. 環境設定とビルド
  5. 起動
  6. ソースコードを更新してビルドし直す場合
  7. まとめ
  8. 参考

動作環境

この環境で動作確認しました。
PC: ThinkPad S1 Yoga
CPU: Intel Corei7-4600
メモリ: 8GB
OS: ubuntu17.10
ビルドしたUE: 4.18.2

ダウンロードから起動後の初期ビルド終了まで、6時間くらいかかりました。

会員登録

UEのソースコードはgithubのプライペートリポジトリとして管理されています。
そのため、ソースコードにアクセスするためには、UEに会員登録し、自分のgithubのアカウント情報を登録する必要があります。(githubのアカウントがない場合、そちらも登録して作成してください。)

UEの接続済みアカウントのページに下記のフォームがあるので、そこにgithubのidを入力することでgithubアカウントとの紐付けができます。


参考:  UNREAL ENGINE: GITHUB とは?

ダウンロード

Ubuntu17.10でのビルドに成功したのは、記事作成(2017.11.22)時点で最新である、バージョン4.18のソースコードです。
(4.17やmainブランチではビルドが失敗しました。)
バージョンごとにブランチで管理されているようなので、ブランチを確認して最新のものを利用するのが良いと思います。


バージョン4.18のソースコードは、下記のコマンドで取得できます。
git clone -b 4.18 https://github.com/EpicGames/UnrealEngine.git

ネットワーク環境にもよりますが、自分が試したときは30分くらいかかりました。

環境設定とビルド

ソースコードに含まれるスクリプトを実行すると、必要なパッケージを取得してくれます。
cd [UEのソースコードディレクトリ]
./Setup.sh
./GenerateProjectFiles.sh

Unreal Engineのビルドは最新のclangに追いつけていないことがあり、下記のようなエラーが出る場合があります。
ERROR: This version of the Unreal Engine can only be compiled with clang 5.0, 4.0, 3.9, 3.8, 3.7, 3.6 and 3.5. clang 6.0.0 may not build it - please use a different version.

そのようなときは、下記のようなコマンドで利用するclangのバージョンを切り替えます。
今回はclang5.0を利用します。
sudo apt install clang-3.8
sudo rm -r /usr/bin/clang /usr/bin/clang++
sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang
sudo ln -s /usr/bin/clang++-3.8 /usr/bin/clang++

スクリプトの実行とclangの設定ができたら、下記のコマンドでビルドできます。
make

自分の環境ではスクリプトの実行に30分くらい、makeに3時間くらいかかりました。

起動

ビルドできたら、UEのソースコードのディレクトリで下記のコマンドを実行するか、ubuntuのアプリケーションメニューからUEを起動できます。
./Engine/Binaries/Linux/UE4Editor

メニューから開きたい場合は、windowsキーかメニューバーの下のボタンをクリックしてアプリ検索画面を開き、「unreal」などと検索すると、UEのロゴが出てくるので、それをクリックすれば起動できます。
メニューへのUE追加はSetup.sh実行時に行われるようです。


起動時にバージョンが表示されます。
自分がビルドしたときは4.18.2でした。


初回起動時はシェーダーのビルドが実行されます。
自分の環境では2時間くらいかかりました。


ソースコードを更新してビルドし直す場合

UEのコードを更新してビルドし直すには、下記のコマンドでソースコードの更新、ビルド済みファイルの削除、ビルドの準備、ビルドし直します。
この記事では4.18を使っているので、下記のコマンドではそれををpullしています。
別のブランチを使っている場合は利用中のブランチ名に置き換えてください。
cd [UEのソースディレクトリ]
git pull
make UE4Editor ARGS=-clean
rm -r Engine/Intermediate
./Setup.sh
./GenerateProjectFiles.sh
make

上記コマンドのIntermidiateディレクトリの削除はlinuxのカーネルを更新していなければ不要だと思いますが、下記のようなビルドエラーに時間を取られたのでメモとして残しています。
fatal error: file '/usr/include/linux/version.h' has been modified since the precompiled header

まとめ

ubuntuでUEを起動できました。
windowsやmac PCを買わなくて済むのでありがたいことです。

参考

Building On Linux
Linux クイックスタート ガイド
Make error on ubuntu 17.10
Linux UE4 Build Precompiled Header Fatal Error

変更履歴

2019.03.30
clangのバージョンが合わない場合のエラーメッセージを追加しました。

0 件のコメント :