【Unity】USDファイルをインポートする方法【STYLY】

# はじめに
USDファイルをUnityにインポートする方法を説明します。
また、GLBファイルに変換しSTYLYへアップロードする手順を説明します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/950399a0-8828-b686-1a32-d8de27310c68.png)

## 環境
* Unity 2019.4.29f1
* USD Unity SDK 3.0.0-exp.2
https://docs.unity3d.com/Packages/com.unity.formats.usd@3.0/manual/index.html

## サンプルデータ
AppleのサイトからUSDZファイルをダウンロードできます。
今回はこちらのデータをサンプルに使います。
https://developer.apple.com/jp/augmented-reality/quick-look/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/f922244d-bd08-0666-962c-af92fd5bb411.png)

# USD Unity SDKのインポート
* PackageManagerでインポートします。
    * AdvancedでShow preview packagesを選択してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/3435941b-4a23-5198-0ee7-608e16fad424.png)
    * USDパッケージを検索してインポートします。
    * バージョンは3.0.0-exp.2を使用しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/01b646de-15ff-c2b5-cfe3-8e756ab542cd.png)

# USDファイルのインポート
* usdzファイルは直接インポートできないようです。
解凍するとusdcファイルとtextureの入ったフォルダが得られますので、こちらをインポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/91bce251-c8fd-e9bf-05bb-ac8d51c06143.png)

* Unityのメニュー[USD]>[Import as Prefab] を選択し、Prefabとしてインポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/d42e1a0f-a8f1-02d0-2895-4a04d6b148bf.png)
* 先ほど解凍したusdcファイルを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/6c32b0f9-536c-06a5-7c40-43887b6b8821.png)
* Assets直下にインポートされます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/0b758aaa-3637-1f4f-22f4-c3e2b8c7f3f6.png)

# テクスチャを設定する
* インポートした直後はTexuterが貼られていません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/f770b3fd-a324-ef69-c426-a8c9a5c6efbb.png)
* Prefabを選択し、Usd Assetコンポーネントの[Materials]を[Import Preview Surface]として右上のリロードボタン？を押してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/0efcba2b-0ce8-0c31-5385-239b1f2eb8eb.png)
* ダイアログが表示されるのでOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/9e7687b4-14b4-e2e0-33b6-c94e38945c47.png)
* きれいにテクスチャが貼られました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/3bed8d72-7223-65d6-8cac-ef360a40bcc8.png)

# STYLYにアップロードする
* STYLY plugin for Unityを使う方法と、対応３Dフォーマットファイルをアップロードする方法の2通りがあります。
* ここではGLBファイルにエクスポートしてSTYLYにアップロードする方法を説明します。
## UniVRMをインポートする
https://github.com/vrm-c/UniVRM/releases/tag/v0.100.1

* 現在最新のv0.100.1をインポートします。
* unitypackageまたはPackageManagerでインポートしてください。
* HierarchyでモデルのGameObjectを選択し、メニュー [UniGLTF] > [Export to GLB]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/68bd7974-d3f7-e253-8020-f45feff0b51d.png)
* [Export]ボタンを押して任意の場所にglbファイルを保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/7eda2b67-50bd-bab3-e709-cef5dce86bc5.png)

# STYLYへアップロードする
https://styly.cc/ja/manual/asset-type-introduction/#My_Models_Upload

こちらの記事が詳しいです。
ここでは簡単に手順を説明します。

* STYLY Studioを開き、シーンを作成します。
https://gallery.styly.cc/studio
* Asset Selector 3D Model > My Models & UploadタブでExportしたGLBファイルを選択→Uploadしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/c94950ca-4e55-3115-501a-111f84de9b8a.png)

* 変換が終わるとSTYLY Studioに配置できます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43734/28dcd55a-9317-9d45-cc38-f53407ae50e2.png)

# おわり
## 3Dモデルの表示が暗いときは
明るいSkyboxを追加したり、Directiona Lightを複数足して調整してください。