LoginSignup
4
5

More than 5 years have passed since last update.

CMakeでUWP用のプロジェクトを生成してDracoのUnity Native Pluginをビルドする

Last updated at Posted at 2018-06-18

はじめに

前回の記事では、3Dデータ圧縮ライブラリDracoのUnityネイティブプラグインをHoloLensで実行してみました。DracoのDLLをビルドするのに苦戦したので、今後のために手順をメモしておきます。CMakeを使ってビルドするライブラリをHoloLens(UWP)で利用する場合にも参考になるはずです。

開発・検証環境

Dracoとは

Dracoは、Google が開発している、3Dメッシュと点群データの圧縮/解凍のためのオープンソース・ライブラリです。3Dモデルデータの保存や転送を改善することを目的に開発されています。
https://google.github.io/draco/

DracoのUnity Native Pluginをビルドする

手順

  1. CMakeのインストール
  2. CMakeでVisual Studioのプロジェクトを生成
  3. Visual StudioでDLLのビルドを実行

1. CMakeのインストール(Windows)

https://cmake.org/download/にアクセスしてインストーラーをダウンロードする。ダウンロードしたインストーラーを実行する。

CMake00.png

インストーラーでCMakeをPathに追加するように選択する。

CMake03.png

インストール終了後、コマンドプロンプトでCMakeのバージョンを確認する。

cmake --version

CMake08.png

2. CMakeでUWP用のVisual Studioプロジェクトを生成

Dracoのプロジェクトのルートディレクトリ直下にbuildディレクトリを作成する。

DracoBuildDir.png

buildディレクトリに移動して、コマンドプロンプトで以下のコマンドを実行する。

cmake .. -G"Visual Studio 15 2017" -D"CMAKE_SYSTEM_NAME=WindowsStore" -D"CMAKE_SYSTEM_VERSION=10.0" -D"CMAKE_SYSTEM_PROCESSOR=x86" -D"BUILD_UNITY_PLUGIN=ON" -D"CMAKE_CXX_FLAGS=/DWIN32 /D_WINDOWS /W2 /DUNICODE /D_UNICODE /GR /EHsc /wd4146"

DracoCMake.png

Visual Studio 2017のソリューションとプロジェクトが生成される。
DracoCMakeBuildResult.png

3. Visual StudioでDLLのビルドを実行

buildディレクトリに生成された「draco.sln」をVisual Studio 2017で開く。

CMakeVS.png

「ビルド->バッチビルド」から「dracodec_unity」のReleaseにチェックを入れて、ビルドを実行する。

DracoVSBuild.png

ビルドが上手くいくと「build/Release」の直下にDLLファイルが生成されている。

DracoVSBuildResult01.png

DracoVSBuildResult02.png

CMakeコマンドのオプションについて

DracoのUnity Native Pluginをビルドするために実行したCMakeコマンド。

cmake .. -G"Visual Studio 15 2017" -D"CMAKE_SYSTEM_NAME=WindowsStore" -D"CMAKE_SYSTEM_VERSION=10.0" -D"CMAKE_SYSTEM_PROCESSOR=x86" -D"BUILD_UNITY_PLUGIN=ON" -D"CMAKE_CXX_FLAGS=/DWIN32 /D_WINDOWS /W2 /DUNICODE /D_UNICODE /GR /EHsc /wd4146"

UWP向けにVisual Studio 2017のプロジェクトを生成するオプション。

-G"Visual Studio 15 2017" -D"CMAKE_SYSTEM_NAME=WindowsStore" -D"CMAKE_SYSTEM_VERSION=10.0"

HoloLens用にDLLをビルドするためにx86を指定するオプション。

-D"CMAKE_SYSTEM_PROCESSOR=x86"

DracoのUnity Native Plugin(DLL)をビルドできるようにするオプション。

-D"BUILD_UNITY_PLUGIN=ON"

ビルド時に発生するコンパイラの警告「C4146」を無視するように設定するオプション。

-D"CMAKE_CXX_FLAGS=/DWIN32 /D_WINDOWS /W2 /DUNICODE /D_UNICODE /GR /EHsc /wd4146"

「/wd4146」以外のフラグは、オプションを指定しない場合でも設定されている値。オプションを指定しない場合にCMAKE_CXX_FLAGSに設定される値は、buildディレクトリに生成されるCMakeCache.txtを見ると確認できる。

オプションでコンパイラの警告「C4146」を無視するように設定しないと、ビルドした時に以下のようにエラーが発生する。

Warning4146.png

DLLの動作確認

前回の記事で紹介したサンプルプロジェクト「DracoSampleForHoloLens」に含まれているDLLを自分でビルドしたものに置き換えて動作すれば問題ありません。

HoloLens(UWP)用の「dracodec_unity.dll」を「Plugins\WSA\x86」に配置する時の設定は以下の通りです。

UnityNativePluginSetting.png

実行結果

DracoSampleForHoloLensResult.jpg

まとめ

3Dデータ圧縮ライブラリDracoのUnity Native PluginをHoloLensで実行するためにDLLをビルドする手順を紹介しました。CMakeを使ってビルドするライブラリをHoloLens(UWP)で利用する場合の参考になればと思います。

参考情報

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5