こちらは Unreal Engine (UE) Advent Calendar 2022 のカレンダー 4 、12 月 1 日分の参加記事となります。 埋まりが悪いとその 4 ごと消えてしまいそうな気がするので積極的に小ネタを出して行きたいと思います。
はじめに
UnrealEngine は C:\Program Files\Epic Games
フォルダの下にインストールされるため、
一部のバージョンだけ別ドライブにインストールする、という器用な事ができません。
そのため複数のバージョンを入れるとすぐに C ドライブの容量が一杯になります。
また、通常のエディタの使用やパッケージング時の Cook 処理速度についても、エンジンがインストールされているドライブの速度が
ダイレクトに効いてくるため、作業中のプロジェクトとエンジンは速い SSD に入れておく事が作業効率の上でも重要になってきます。
最近の PC であれば C ドライブは SSD である事が主流になってきていますが、その容量はまだ 500GB 程度と心もとないため、 後から速い SSD を増設してこちらにエンジンをインストールしたい、という質問は結構な頻度で飛び交っているのを観測しています。
これは、Windows 標準の機能であるシンボリックリンクを使うことで解決可能ですので、本稿にて解説します。 この機能自体は UE とは全く無関係なので、他の Windows ソフトウェアでも有効です。
シンボリックリンクとは
シンボリックリンクとは、他のフォルダやファイルを参照する特殊なファイルの事で、Linux 等の UNIX の世界ではお馴染みの概念です。
Windows においては Vista 以降に標準搭載されています。
ドライブの境界を超えて参照することができるので、C:\Program Files\Epic Games\UE_5.1
を E:\Program Files\Epic Games\UE_5.1
を参照するようにシンボリックリンクを張ることで、
E:\Program Files\Epic Games\UE_5.1
にエンジン一式のファイル群があってもC:\Program Files\Epic Games\UE_5.1
にあるものと同等な環境にすることができます。
シンボリックリンクの作成にはコマンドプロンプトから mklink コマンドを使用します。
c:\Program Files\Epic Games>mklink
シンボリック リンクを作成します。
MKLINK [[/D] | [/H] | [/J]] リンク ターゲット
/D ディレクトリのシンボリック リンクを作成します。既定では、
ファイルのシンボリック リンクが作成されます。
/H シンボリック リンクではなく、ハード リンクを作成します。
/J ディレクトリ ジャンクションを作成します。
リンク 新しいシンボリック リンク名を指定します。
ターゲット 新しいリンクが参照するパス (相対または絶対)
を指定します。
c:\Program Files\Epic Games>
普通にエンジンをインストールする
まず最初は普通に UnrealEngine をインストールします。この時は C ドライブの容量を消費しますので注意して下さい。
インストールフォルダを開く
そしておもむろに C:\Program Files\Epic Games
を開いてみましょう。
筆者の環境では UE_5.0 はすでに E ドライブ(増設した速い SSD)に移しているのですが、5.1 は移動していなかったのでこれを移動したいと思います。 コマンドプロンプトで同じフォルダを開くと、UE_5.1 は通常のフォルダになっていることがわかります。
エンジンフォルダ移動の準備(UE エディタと EpicGame ランチャーの終了)
フォルダ移動をする前に、いったん起動中の UE エディタがあると色々不具合が起きるので終了しておきます。 EpicGames ランチャーも起動していたら、いったん終了しておきましょう。
エンジンフォルダ移動
Windows エクスプローラーで C:\Program Files\Epic Games
を開き、UE_5.1
フォルダを SSD 内のフォルダ (筆者の環境では E:\Program Files\Epic Games
) に移動します。
ドライブ間の移動のため結構時間がかかりますので気長にお待ち下さい。
シンボリックリンクの作成
移動が終ったら、コマンドプロンプトで C:\Program Files\Epic Games
を開き、下記のように入力します。
c:\Program Files\Epic Games>mklink /D UE_5.1 "E:\Program Files\Epic Games\UE_5.1"
UE_5.1 <<===>> E:\Program Files\Epic Games\UE_5.1 のシンボリック リンクが作成されました
c:\Program Files\Epic Games>
以上の操作で準備は完了です。dir コマンドで確認し、UE_5.1
フォルダがシンボリックリンクになっている事が確認できます。
エクスプローラで確認しても、フォルダのアイコンがシンボリックリンクになっている事が確認できます。
ランチャーの表示がおかしい時
EpicGames ランチャーから先程フォルダ移動・シンボリックリンク作成した UE 5.1 を起動しようとすると、修復と表示されている事があります。
これは EpicGames ランチャーを終了せずにフォルダ移動するとこのような表示になりますが、慌てずにランチャーを終了・再起動しましょう。
いったん読み込み中になりますが、しばらく待つと以下のように起動可能な状態になりました。
まとめ
筆者はよく使うバージョンのエンジンをインストール後に速い SSD に移して作業しています。 また、検証用に過去のバージョンのエンジンも入れていますが、そちらは遅くても構わないので大容量の HDD に置いておき、 よく使用するエンジンのバージョンを切り変えるタイミングで SSD に移したり HDD に戻したりしています。 この運用で 3 年ほど使用していますが、今のことろドライブ移動に起因する不具合は起きていません。 ついでにエンジンソースの find&grep もよく行うのでエンジンソースも SSD に置いていますが、検索速度がダイレクトに作業効率に効いてくるので重宝しています。
最初から速くて大容量の SSD しか使わなければ全く気にする必要のない事で、あと数年でそのような世の中になりそうな気もしていますが、 後から調整の聞くこのやり方もまだしばらくは有効だと思いますので、試してみて下さい。