夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLensでペイント3Dの3Dモデルをアプリランチャに使用する

本日はネタ枠です。

HoloLens でペイント3Dのモデルを表示します。

〇ペイント3Dとは?

ペイント3Dは2017年のWindows大型アップデートよりプリインストールされているアプリです。

Classicなペイントの機能を拡張して、3Dに対応したアプリケーションになります。

導入された2017年以降筆者は愛用していますが、筆者の感覚としてあまりユーザーは少ないような印象を受けます。

Autodesk Maya やBlenderなどの3Dモデリングツールと違い専門的な3Dモデルを作ることもできなければ、2Dのイラストを描くにはペイントを使用すればよいのでその魅力が伝わりにくいアプリですが、その特徴の一つとしてオンラインの3Dモデルをインポート、エクスポートすることができます。

今回はオンラインで提供される非常に優れた3DモデルをHoloLensで表示していきます。

〇ペイント3Dでの3Dモデルのインポート

①ペイント3Dを立ち上げ上部のメニューから[3D ライブラリ]を選択します。

f:id:Holomoto-Sumire:20201204202937j:plain

②サイドからメニューが展開し、3Dライブラリが開きます。

f:id:Holomoto-Sumire:20201204203103j:plain

このライブラリには多くの3Dモデルが用意されており、ユーザーは自由なモデルを選択することで自身のペイント3Dのプロジェクトにインポートすることができます。

今回はクラリネットのオブジェクトをインポートしました。

f:id:Holomoto-Sumire:20201204204254j:plain

ペイント3Dではインポートしたオブジェクトに色を付けることなどできますが、今回はこのままエクスポートします。

③[メニュー]から[名前を付けて保存]を選択します。

f:id:Holomoto-Sumire:20201204204509j:plain

④保存形式で[3Dモデル]を選択し、任意の場所にプロジェクトを保存します。

f:id:Holomoto-Sumire:20201204204749j:plain

保存が完了すると3Dモデルのみがエクスポートされていることを確認できます。

デフォルトでglb形式で書き出されます。

〇アプリランチャに適応

redhologerbera.hatenablog.com

①書き出したglbのモデルをUnityからビルドしたアプリの[(アプリを書き出したファイル)/(書き出したアプリのプロジェクト名)/Assets]下に配置します。

f:id:Holomoto-Sumire:20201204205047j:plain

(アプリを書き出したファイル)/(書き出したアプリのプロジェクト名)にある[Package.appxmanifest]を開きます。

f:id:Holomoto-Sumire:20201204205442j:plain

マニフェストの先頭に uap5 スキーマを追加し、無視可能な名前空間としてインクルードします。

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
 
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"

         IgnorableNamespaces="uap uap2 uap5 mp"
         xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

④Applicationsに<uap5:MixedRealityModel Path="Assets\(オブジェクト名).glb" />という文を加えます。

<Applications>
    <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint=Animation.App">
      <uap:VisualElements DisplayName="AnimationPlayGround" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="Template_3D" BackgroundColor="transparent">


        <uap:DefaultTile ShortName="AnimationPlayGround" Wide310x150Logo="Assets\Wide310x150Logo.png"> <uap5:MixedRealityModel Path="Assets\MyObject.glb" />


        </uap:DefaultTile>
        <uap:SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="#FFFFFF" />
        <uap:InitialRotationPreference>
          <uap:Rotation Preference="landscape" />
          <uap:Rotation Preference="landscapeFlipped" />
          <uap:Rotation Preference="portrait" />
          <uap:Rotation Preference="portraitFlipped" />
        </uap:InitialRotationPreference>
      </uap:VisualElements>
    </Application>
  </Applications>

この状態でソリューションファイルをHoloLens 2にデプロイします。

デプロイが完了するとアプリランチャでペイント3Dからエクスポートしたモデルが表示されます。

f:id:Holomoto-Sumire:20201204210243j:plain

以上でペイント3Dの3Dモデルをアプリランチャとして設定することができました。

オンラインで配布されている3Dモデルはライセンスがある場合があるので使用の際はライセンス等を確認してください。