ARCore Using Unreal Engine SDK Preview2にチャレンジしたけど失敗した！

#初めに
Project Tangoが終了するという悲しいお知らせとともに、ARCore SDK Preview2がリリースされていました。

実はSDK Preview1の時にもコンパイルインストールしたものの、なぜかアプリが起動せずに断念した経緯もあってPreviewシリーズは冷ややかに見ようと思っていたのですが、やっぱりやってみたくなって手を出しました。

#情報元

https://developers.google.com/ar/develop/

![SnapCrab_NoName_2017-12-17_11-47-1_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/fa77e49b-8bc4-3232-0780-5c0788aadce1.png)

はい。2017/12/15リリースのようですね。

#ARCore SDK Preview2 using Unreal Engine 4

世間ではUnity使いのほうが多いようですが、私、UE4ラブなので、UE4を使います。

情報少ない分苦労しますが…

https://developers.google.com/ar/develop/unreal/getting-started

![SnapCrab_NoName_2017-12-17_11-50-17_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/a6de6a77-6b1d-4861-781b-592524f3de55.png)

ARCoreはまだPreviewでVersion1に至っていないため破壊的な変更があるかもしれませんよーというご連絡ですね。

OK.

#ソースコードダウンロード ＆ コンパイル

GitHubのページ
https://github.com/google-ar-unreal/UnrealEngine
に手順が書いてありました。

1. ソースコードダウンロード
2. Visual Studio 2017をインストール （各自でお願いします）
3. **Setup.bat** を実行する
4. **GenerateProjectFiles.bat**を実行する
5. **UE4.sln**を実行してVisual Studioを起動しコンパイル

間違えて、
https://docs.unrealengine.com/latest/INT/Programming/Development/BuildingUnrealEngine/
を参照すると、

「1. Inside the root directory, run GenerateProjectFiles.bat to set-up your project files.」
から始まってて

![SnapCrab_NoName_2017-12-17_10-0-16_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/ab07f870-459c-a501-93b1-2959c914561a.png)

とエラーが出て右往左往するので注意です。


##「1. ソースコードダウンロード」

いわれるままにコマンドを実行します（簡単）。

```ruby:Download 
git clone -b 4.18-arcore-sdk-preview2 https://github.com/google-ar-unreal/UnrealEngine.git
```

##「2. Visual Studio 2017をインストール」

頑張って。
基本Microsoft Edge(Chromeだと正しく表示されないので！)で以下にアクセスしてインストールしましょう。

https://www.visualstudio.com/ja/thank-you-downloading-visual-studio/?sku=Community&rel=15

「ワークロード」で「C++によるゲーム開発」

![SnapCrab_NoName_2017-12-17_12-33-35_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/27320a49-5dff-1485-dc2e-97d3f1c6aa59.png)

「個別のコンポーネント」で「Unreal Engineのインストーラ」を選びましょう。

![SnapCrab_NoName_2017-12-17_12-33-20_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/cb5d38f1-acc4-9c20-d83a-92dabeef9be1.png)



##「3. **Setup.bat** を実行する」

Epicから提供されている古い設定で、GoogleARcoreライブラリの設定を上書きしてしまわないように、
「**Would you like to overwrite your changes (y/n)?**」と
聞かれたら、**n**と答えろとあります。

ミスったことないですけど、たぶんこれ、すげー重要です。

「**Would you like to overwrite your changes (y/n)?**」と出たら、脊髄で**n**を押すこと！

はい、あとは関連するライブラリなどを勝手にダウンロードしてくれるので待ちます。

![SnapCrab_NoName_2017-12-17_12-5-17_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/10387190-8b1d-dd6e-97d4-9aa18752d28e.png)


## 「4. **GenerateProjectFiles.bat**を実行する」

![SnapCrab_NoName_2017-12-17_12-18-47_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/20a5d8a0-1fee-6497-ae04-2918f9912402.png)

でしばらくすると、UE4のルートディレクトリに「**UE4.sln**」が吐き出されます。

![SnapCrab_NoName_2017-12-17_12-20-8_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/07abc9a0-ffbe-0642-1e22-f2c46b3129d9.png)

###注意

私の場合、実行時に以下のエラーが出ました。

![SnapCrab_NoName_2017-12-17_15-15-12_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/3f096531-432f-6269-a01b-4e7e74d81279.png)

ググったところ、「NuGetパッケージマネージャ」が必要という情報がありましたので、追加でインストールしました。

![SnapCrab_NoName_2017-12-17_15-13-59_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/a7d4456c-5884-5ba9-b183-0890b45b7584.png)


##「5. **UE4.sln**を実行してVisual Studioを起動しコンパイル」

ソリューション設定を「Development Editor」として、

![SnapCrab_NoName_2017-12-17_15-20-14_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/5f7e8b16-5c53-0d91-1c94-6d05d782c971.png)

UE4をビルドします。

エラーが出たので色々対策を打ちましたが、最終的に解決せず！！

![SnapCrab_NoName_2017-12-17_23-43-35_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/a4c38def-ef5d-62df-2c9f-5cfec0e4677a.png)

誰か教えてください。



#その他対策
## 問題 その１．コンパイル中になんか「nldef.h」ヘッダないとか言われる。

![SnapCrab_NoName_2017-12-17_15-25-45_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/2b94ae3d-0762-c25b-ab62-14054c265bd2.png)

##対策 その1-1
とりあえず、以下から、Windows 10 SDKとかいうの入れてみた。 
※「最新の Visual Studio 2017 RTM には、この Windows 10 SDK のコピーが既に収録されています。Visual Studio インストーラーでユニバーサル Windows プラットフォーム開発作業ストリームを有効にすると、Windows SDK がインストールされます。 」って書いてあるので、ひょっとしたら、Visual Studioのインストール時に対処できたかも。

https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk

情報ソース
https://answers.unrealengine.com/questions/675040/nldefh-error-at-compile-time.html

##結果 その1-1
かわらず。

##対策 その1-2
Windows Driver Kit (WDK)なるものを入れてみた。
実は、ほかに「#include <in6addr.h>」でエラーが出ていたため、両方なおるといいなという期待を込めて。
さらにパスを追加した。

https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

![SnapCrab_NoName_2017-12-17_21-19-37_No-00.png](https://qiita-image-store.s3.amazonaws.com/0/121950/6b861f58-b87e-9b4c-0993-6a3dcc5512ef.png)

##対策 その3
1. 探す。
2. 見つける
 C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared
3. IncludePathに追加するがそれでもないといわれる。