This commit is contained in:
ousttrue
2021-10-29 03:48:32 +00:00
parent db02d362fa
commit 5b00dd1802
16 changed files with 226 additions and 2 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -102,6 +102,34 @@
<li><p>その他のカメラ</p></li>
</ul>
<p>の描画を例示します。</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text">v0.87.0 Assets/VRM_Samples/FirstPersonSample/VRMRuntimeLoader.cs</span><a class="headerlink" href="#id1" title="Permalink to this code"></a></div>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="lineno"> 1 </span> <span class="k">void</span> <span class="nf">SetupTarget</span><span class="p">()</span>
<span class="lineno"> 2 </span> <span class="p">{</span>
<span class="lineno"> 3 </span> <span class="k">if</span> <span class="p">(</span><span class="n">m_target</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span>
<span class="lineno"> 4 </span> <span class="p">{</span>
<span class="lineno"> 5 </span> <span class="n">m_target</span><span class="p">.</span><span class="n">Source</span> <span class="p">=</span> <span class="n">m_source</span><span class="p">;</span>
<span class="lineno"> 6 </span> <span class="n">m_target</span><span class="p">.</span><span class="n">SourceType</span> <span class="p">=</span> <span class="n">UniHumanoid</span><span class="p">.</span><span class="n">HumanPoseTransfer</span><span class="p">.</span><span class="n">HumanPoseTransferSourceType</span><span class="p">.</span><span class="n">HumanPoseTransfer</span><span class="p">;</span>
<span class="lineno"> 7 </span>
<span class="lineno"> 8 </span> <span class="n">m_blendShape</span> <span class="p">=</span> <span class="n">m_target</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">VRMBlendShapeProxy</span><span class="p">&gt;();</span>
<span class="lineno"> 9 </span>
<span class="lineno">10 </span> <span class="n">m_firstPerson</span> <span class="p">=</span> <span class="n">m_target</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">VRMFirstPerson</span><span class="p">&gt;();</span>
<span class="lineno">11 </span>
<span class="lineno">12 </span> <span class="kt">var</span> <span class="n">animator</span> <span class="p">=</span> <span class="n">m_target</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">Animator</span><span class="p">&gt;();</span>
<span class="lineno">13 </span> <span class="k">if</span> <span class="p">(</span><span class="n">animator</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span>
<span class="lineno">14 </span> <span class="p">{</span>
<span class="lineno">15 </span><span class="hll"> <span class="n">m_firstPerson</span><span class="p">.</span><span class="n">Setup</span><span class="p">();</span>
</span><span class="lineno">16 </span>
<span class="lineno">17 </span> <span class="k">if</span> <span class="p">(</span><span class="n">m_faceCamera</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span>
<span class="lineno">18 </span> <span class="p">{</span>
<span class="lineno">19 </span> <span class="n">m_faceCamera</span><span class="p">.</span><span class="n">Target</span> <span class="p">=</span> <span class="n">animator</span><span class="p">.</span><span class="n">GetBoneTransform</span><span class="p">(</span><span class="n">HumanBodyBones</span><span class="p">.</span><span class="n">Head</span><span class="p">);</span>
<span class="lineno">20 </span> <span class="p">}</span>
<span class="lineno">21 </span> <span class="p">}</span>
<span class="lineno">22 </span> <span class="p">}</span>
<span class="lineno">23 </span> <span class="p">}</span>
</pre></div>
</div>
</div>
</section>

View File

@@ -96,6 +96,33 @@
<section class="tex2jax_ignore mathjax_ignore" id="runtimeexporter">
<h1>RuntimeExporter<a class="headerlink" href="#runtimeexporter" title="Permalink to this headline"></a></h1>
<p>VRM を Runtime Export するサンプルです。</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text">v0.87.0 Assets/VRM_Samples/RuntimeExporterSample/VRMRuntimeExporter.cs</span><a class="headerlink" href="#id1" title="Permalink to this code"></a></div>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="lineno"> 1 </span> <span class="k">static</span> <span class="kt">byte</span><span class="p">[]</span> <span class="nf">ExportSimple</span><span class="p">(</span><span class="n">GameObject</span> <span class="n">model</span><span class="p">)</span>
<span class="lineno"> 2 </span> <span class="p">{</span>
<span class="lineno"> 3 </span> <span class="kt">var</span> <span class="n">vrm</span> <span class="p">=</span> <span class="n">VRMExporter</span><span class="p">.</span><span class="n">Export</span><span class="p">(</span><span class="k">new</span> <span class="n">UniGLTF</span><span class="p">.</span><span class="n">GltfExportSettings</span><span class="p">(),</span> <span class="n">model</span><span class="p">,</span> <span class="k">new</span> <span class="n">RuntimeTextureSerializer</span><span class="p">());</span>
<span class="lineno"> 4 </span> <span class="kt">var</span> <span class="n">bytes</span> <span class="p">=</span> <span class="n">vrm</span><span class="p">.</span><span class="n">ToGlbBytes</span><span class="p">();</span>
<span class="lineno"> 5 </span> <span class="k">return</span> <span class="n">bytes</span><span class="p">;</span>
<span class="lineno"> 6 </span> <span class="p">}</span>
<span class="lineno"> 7 </span>
<span class="lineno"> 8 </span> <span class="k">static</span> <span class="kt">byte</span><span class="p">[]</span> <span class="nf">ExportCustom</span><span class="p">(</span><span class="n">GameObject</span> <span class="n">exportRoot</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">forceTPose</span> <span class="p">=</span> <span class="k">false</span><span class="p">)</span>
<span class="lineno"> 9 </span> <span class="p">{</span>
<span class="lineno">10 </span> <span class="c1">// normalize</span>
<span class="lineno">11 </span> <span class="kt">var</span> <span class="n">target</span> <span class="p">=</span> <span class="n">VRMBoneNormalizer</span><span class="p">.</span><span class="n">Execute</span><span class="p">(</span><span class="n">exportRoot</span><span class="p">,</span> <span class="n">forceTPose</span><span class="p">);</span>
<span class="lineno">12 </span>
<span class="lineno">13 </span> <span class="k">try</span>
<span class="lineno">14 </span> <span class="p">{</span>
<span class="lineno">15 </span> <span class="k">return</span> <span class="nf">ExportSimple</span><span class="p">(</span><span class="n">target</span><span class="p">);</span>
<span class="lineno">16 </span> <span class="p">}</span>
<span class="lineno">17 </span> <span class="k">finally</span>
<span class="lineno">18 </span> <span class="p">{</span>
<span class="lineno">19 </span> <span class="c1">// cleanup</span>
<span class="lineno">20 </span> <span class="n">GameObject</span><span class="p">.</span><span class="n">Destroy</span><span class="p">(</span><span class="n">target</span><span class="p">);</span>
<span class="lineno">21 </span> <span class="p">}</span>
<span class="lineno">22 </span> <span class="p">}</span>
</pre></div>
</div>
</div>
</section>

View File

@@ -96,6 +96,63 @@
<section class="tex2jax_ignore mathjax_ignore" id="simpleviewer">
<h1>SimpleViewer<a class="headerlink" href="#simpleviewer" title="Permalink to this headline"></a></h1>
<p>Runtime ローダーのサンプルです。</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text">c89e Assets/VRM_Samples/SimpleViewer/ViewerUI.cs</span><a class="headerlink" href="#id1" title="Permalink to this code"></a></div>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="lineno"> 1 </span> <span class="k">async</span> <span class="k">void</span> <span class="nf">LoadModelAsync</span><span class="p">(</span><span class="kt">string</span> <span class="n">path</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">isVrm</span><span class="p">)</span>
<span class="lineno"> 2 </span> <span class="p">{</span>
<span class="lineno"> 3 </span> <span class="k">if</span> <span class="p">(!</span><span class="n">File</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
<span class="lineno"> 4 </span> <span class="p">{</span>
<span class="lineno"> 5 </span> <span class="k">return</span><span class="p">;</span>
<span class="lineno"> 6 </span> <span class="p">}</span>
<span class="lineno"> 7 </span>
<span class="lineno"> 8 </span> <span class="n">Debug</span><span class="p">.</span><span class="n">LogFormat</span><span class="p">(</span><span class="s">&quot;{0}&quot;</span><span class="p">,</span> <span class="n">path</span><span class="p">);</span>
<span class="lineno"> 9 </span>
<span class="lineno">10 </span> <span class="n">GltfData</span> <span class="n">data</span><span class="p">;</span>
<span class="lineno">11 </span> <span class="k">try</span>
<span class="lineno">12 </span> <span class="p">{</span>
<span class="lineno">13 </span> <span class="n">data</span> <span class="p">=</span> <span class="k">new</span> <span class="n">AutoGltfFileParser</span><span class="p">(</span><span class="n">path</span><span class="p">).</span><span class="n">Parse</span><span class="p">();</span>
<span class="lineno">14 </span> <span class="p">}</span>
<span class="lineno">15 </span> <span class="k">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">ex</span><span class="p">)</span>
<span class="lineno">16 </span> <span class="p">{</span>
<span class="lineno">17 </span> <span class="n">Debug</span><span class="p">.</span><span class="n">LogWarningFormat</span><span class="p">(</span><span class="s">&quot;parse error: {0}&quot;</span><span class="p">,</span> <span class="n">ex</span><span class="p">);</span>
<span class="lineno">18 </span> <span class="k">return</span><span class="p">;</span>
<span class="lineno">19 </span> <span class="p">}</span>
<span class="lineno">20 </span>
<span class="lineno">21 </span> <span class="k">if</span> <span class="p">(</span><span class="n">isVrm</span><span class="p">)</span>
<span class="lineno">22 </span> <span class="p">{</span>
<span class="lineno">23 </span> <span class="k">try</span>
<span class="lineno">24 </span> <span class="p">{</span>
<span class="lineno">25 </span> <span class="kt">var</span> <span class="n">vrm</span> <span class="p">=</span> <span class="k">new</span> <span class="n">VRMData</span><span class="p">(</span><span class="n">data</span><span class="p">);</span>
<span class="lineno">26 </span> <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">loader</span> <span class="p">=</span> <span class="k">new</span> <span class="n">VRMImporterContext</span><span class="p">(</span><span class="n">vrm</span><span class="p">,</span> <span class="n">materialGenerator</span><span class="p">:</span> <span class="n">GetVrmMaterialGenerator</span><span class="p">(</span><span class="n">m_useUrpMaterial</span><span class="p">.</span><span class="n">isOn</span><span class="p">,</span> <span class="n">vrm</span><span class="p">.</span><span class="n">VrmExtension</span><span class="p">)))</span>
<span class="lineno">27 </span> <span class="p">{</span>
<span class="lineno">28 </span> <span class="k">await</span> <span class="n">m_texts</span><span class="p">.</span><span class="n">UpdateMetaAsync</span><span class="p">(</span><span class="n">loader</span><span class="p">);</span>
<span class="lineno">29 </span> <span class="kt">var</span> <span class="n">instance</span> <span class="p">=</span> <span class="k">await</span> <span class="n">loader</span><span class="p">.</span><span class="n">LoadAsync</span><span class="p">(</span><span class="n">GetIAwaitCaller</span><span class="p">(</span><span class="n">m_useAsync</span><span class="p">.</span><span class="n">isOn</span><span class="p">));</span>
<span class="lineno">30 </span> <span class="n">SetModel</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span>
<span class="lineno">31 </span> <span class="p">}</span>
<span class="lineno">32 </span> <span class="p">}</span>
<span class="lineno">33 </span> <span class="k">catch</span> <span class="p">(</span><span class="n">NotVrm0Exception</span><span class="p">)</span>
<span class="lineno">34 </span> <span class="p">{</span>
<span class="lineno">35 </span> <span class="c1">// retry</span>
<span class="lineno">36 </span> <span class="n">Debug</span><span class="p">.</span><span class="n">LogWarning</span><span class="p">(</span><span class="s">&quot;file extension is vrm. but not vrm ?&quot;</span><span class="p">);</span>
<span class="lineno">37 </span> <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">loader</span> <span class="p">=</span> <span class="k">new</span> <span class="n">UniGLTF</span><span class="p">.</span><span class="n">ImporterContext</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">materialGenerator</span><span class="p">:</span> <span class="n">GetGltfMaterialGenerator</span><span class="p">(</span><span class="n">m_useUrpMaterial</span><span class="p">.</span><span class="n">isOn</span><span class="p">)))</span>
<span class="lineno">38 </span> <span class="p">{</span>
<span class="lineno">39 </span> <span class="kt">var</span> <span class="n">instance</span> <span class="p">=</span> <span class="k">await</span> <span class="n">loader</span><span class="p">.</span><span class="n">LoadAsync</span><span class="p">(</span><span class="n">GetIAwaitCaller</span><span class="p">(</span><span class="n">m_useAsync</span><span class="p">.</span><span class="n">isOn</span><span class="p">));</span>
<span class="lineno">40 </span> <span class="n">SetModel</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span>
<span class="lineno">41 </span> <span class="p">}</span>
<span class="lineno">42 </span> <span class="p">}</span>
<span class="lineno">43 </span> <span class="p">}</span>
<span class="lineno">44 </span> <span class="k">else</span>
<span class="lineno">45 </span> <span class="p">{</span>
<span class="lineno">46 </span> <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">loader</span> <span class="p">=</span> <span class="k">new</span> <span class="n">UniGLTF</span><span class="p">.</span><span class="n">ImporterContext</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">materialGenerator</span><span class="p">:</span> <span class="n">GetGltfMaterialGenerator</span><span class="p">(</span><span class="n">m_useUrpMaterial</span><span class="p">.</span><span class="n">isOn</span><span class="p">)))</span>
<span class="lineno">47 </span> <span class="p">{</span>
<span class="lineno">48 </span> <span class="kt">var</span> <span class="n">instance</span> <span class="p">=</span> <span class="k">await</span> <span class="n">loader</span><span class="p">.</span><span class="n">LoadAsync</span><span class="p">(</span><span class="n">GetIAwaitCaller</span><span class="p">(</span><span class="n">m_useAsync</span><span class="p">.</span><span class="n">isOn</span><span class="p">));</span>
<span class="lineno">49 </span> <span class="n">SetModel</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span>
<span class="lineno">50 </span> <span class="p">}</span>
<span class="lineno">51 </span> <span class="p">}</span>
<span class="lineno">52 </span> <span class="p">}</span>
</pre></div>
</div>
</div>
</section>

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -103,6 +103,34 @@
<li><p>その他のカメラ</p></li>
</ul>
<p>の描画を例示します。</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text">v0.87.0 Assets/VRM_Samples/FirstPersonSample/VRMRuntimeLoader.cs</span><a class="headerlink" href="#id1" title="このコードへのパーマリンク"></a></div>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="lineno"> 1 </span> <span class="k">void</span> <span class="nf">SetupTarget</span><span class="p">()</span>
<span class="lineno"> 2 </span> <span class="p">{</span>
<span class="lineno"> 3 </span> <span class="k">if</span> <span class="p">(</span><span class="n">m_target</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span>
<span class="lineno"> 4 </span> <span class="p">{</span>
<span class="lineno"> 5 </span> <span class="n">m_target</span><span class="p">.</span><span class="n">Source</span> <span class="p">=</span> <span class="n">m_source</span><span class="p">;</span>
<span class="lineno"> 6 </span> <span class="n">m_target</span><span class="p">.</span><span class="n">SourceType</span> <span class="p">=</span> <span class="n">UniHumanoid</span><span class="p">.</span><span class="n">HumanPoseTransfer</span><span class="p">.</span><span class="n">HumanPoseTransferSourceType</span><span class="p">.</span><span class="n">HumanPoseTransfer</span><span class="p">;</span>
<span class="lineno"> 7 </span>
<span class="lineno"> 8 </span> <span class="n">m_blendShape</span> <span class="p">=</span> <span class="n">m_target</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">VRMBlendShapeProxy</span><span class="p">&gt;();</span>
<span class="lineno"> 9 </span>
<span class="lineno">10 </span> <span class="n">m_firstPerson</span> <span class="p">=</span> <span class="n">m_target</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">VRMFirstPerson</span><span class="p">&gt;();</span>
<span class="lineno">11 </span>
<span class="lineno">12 </span> <span class="kt">var</span> <span class="n">animator</span> <span class="p">=</span> <span class="n">m_target</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">Animator</span><span class="p">&gt;();</span>
<span class="lineno">13 </span> <span class="k">if</span> <span class="p">(</span><span class="n">animator</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span>
<span class="lineno">14 </span> <span class="p">{</span>
<span class="lineno">15 </span><span class="hll"> <span class="n">m_firstPerson</span><span class="p">.</span><span class="n">Setup</span><span class="p">();</span>
</span><span class="lineno">16 </span>
<span class="lineno">17 </span> <span class="k">if</span> <span class="p">(</span><span class="n">m_faceCamera</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span>
<span class="lineno">18 </span> <span class="p">{</span>
<span class="lineno">19 </span> <span class="n">m_faceCamera</span><span class="p">.</span><span class="n">Target</span> <span class="p">=</span> <span class="n">animator</span><span class="p">.</span><span class="n">GetBoneTransform</span><span class="p">(</span><span class="n">HumanBodyBones</span><span class="p">.</span><span class="n">Head</span><span class="p">);</span>
<span class="lineno">20 </span> <span class="p">}</span>
<span class="lineno">21 </span> <span class="p">}</span>
<span class="lineno">22 </span> <span class="p">}</span>
<span class="lineno">23 </span> <span class="p">}</span>
</pre></div>
</div>
</div>
</section>

View File

@@ -97,6 +97,33 @@
<section class="tex2jax_ignore mathjax_ignore" id="runtimeexporter">
<h1>RuntimeExporter<a class="headerlink" href="#runtimeexporter" title="このヘッドラインへのパーマリンク"></a></h1>
<p>VRM を Runtime Export するサンプルです。</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text">v0.87.0 Assets/VRM_Samples/RuntimeExporterSample/VRMRuntimeExporter.cs</span><a class="headerlink" href="#id1" title="このコードへのパーマリンク"></a></div>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="lineno"> 1 </span> <span class="k">static</span> <span class="kt">byte</span><span class="p">[]</span> <span class="nf">ExportSimple</span><span class="p">(</span><span class="n">GameObject</span> <span class="n">model</span><span class="p">)</span>
<span class="lineno"> 2 </span> <span class="p">{</span>
<span class="lineno"> 3 </span> <span class="kt">var</span> <span class="n">vrm</span> <span class="p">=</span> <span class="n">VRMExporter</span><span class="p">.</span><span class="n">Export</span><span class="p">(</span><span class="k">new</span> <span class="n">UniGLTF</span><span class="p">.</span><span class="n">GltfExportSettings</span><span class="p">(),</span> <span class="n">model</span><span class="p">,</span> <span class="k">new</span> <span class="n">RuntimeTextureSerializer</span><span class="p">());</span>
<span class="lineno"> 4 </span> <span class="kt">var</span> <span class="n">bytes</span> <span class="p">=</span> <span class="n">vrm</span><span class="p">.</span><span class="n">ToGlbBytes</span><span class="p">();</span>
<span class="lineno"> 5 </span> <span class="k">return</span> <span class="n">bytes</span><span class="p">;</span>
<span class="lineno"> 6 </span> <span class="p">}</span>
<span class="lineno"> 7 </span>
<span class="lineno"> 8 </span> <span class="k">static</span> <span class="kt">byte</span><span class="p">[]</span> <span class="nf">ExportCustom</span><span class="p">(</span><span class="n">GameObject</span> <span class="n">exportRoot</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">forceTPose</span> <span class="p">=</span> <span class="k">false</span><span class="p">)</span>
<span class="lineno"> 9 </span> <span class="p">{</span>
<span class="lineno">10 </span> <span class="c1">// normalize</span>
<span class="lineno">11 </span> <span class="kt">var</span> <span class="n">target</span> <span class="p">=</span> <span class="n">VRMBoneNormalizer</span><span class="p">.</span><span class="n">Execute</span><span class="p">(</span><span class="n">exportRoot</span><span class="p">,</span> <span class="n">forceTPose</span><span class="p">);</span>
<span class="lineno">12 </span>
<span class="lineno">13 </span> <span class="k">try</span>
<span class="lineno">14 </span> <span class="p">{</span>
<span class="lineno">15 </span> <span class="k">return</span> <span class="nf">ExportSimple</span><span class="p">(</span><span class="n">target</span><span class="p">);</span>
<span class="lineno">16 </span> <span class="p">}</span>
<span class="lineno">17 </span> <span class="k">finally</span>
<span class="lineno">18 </span> <span class="p">{</span>
<span class="lineno">19 </span> <span class="c1">// cleanup</span>
<span class="lineno">20 </span> <span class="n">GameObject</span><span class="p">.</span><span class="n">Destroy</span><span class="p">(</span><span class="n">target</span><span class="p">);</span>
<span class="lineno">21 </span> <span class="p">}</span>
<span class="lineno">22 </span> <span class="p">}</span>
</pre></div>
</div>
</div>
</section>

View File

@@ -97,6 +97,63 @@
<section class="tex2jax_ignore mathjax_ignore" id="simpleviewer">
<h1>SimpleViewer<a class="headerlink" href="#simpleviewer" title="このヘッドラインへのパーマリンク"></a></h1>
<p>Runtime ローダーのサンプルです。</p>
<div class="literal-block-wrapper docutils container" id="id1">
<div class="code-block-caption"><span class="caption-text">c89e Assets/VRM_Samples/SimpleViewer/ViewerUI.cs</span><a class="headerlink" href="#id1" title="このコードへのパーマリンク"></a></div>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="lineno"> 1 </span> <span class="k">async</span> <span class="k">void</span> <span class="nf">LoadModelAsync</span><span class="p">(</span><span class="kt">string</span> <span class="n">path</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">isVrm</span><span class="p">)</span>
<span class="lineno"> 2 </span> <span class="p">{</span>
<span class="lineno"> 3 </span> <span class="k">if</span> <span class="p">(!</span><span class="n">File</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>
<span class="lineno"> 4 </span> <span class="p">{</span>
<span class="lineno"> 5 </span> <span class="k">return</span><span class="p">;</span>
<span class="lineno"> 6 </span> <span class="p">}</span>
<span class="lineno"> 7 </span>
<span class="lineno"> 8 </span> <span class="n">Debug</span><span class="p">.</span><span class="n">LogFormat</span><span class="p">(</span><span class="s">&quot;{0}&quot;</span><span class="p">,</span> <span class="n">path</span><span class="p">);</span>
<span class="lineno"> 9 </span>
<span class="lineno">10 </span> <span class="n">GltfData</span> <span class="n">data</span><span class="p">;</span>
<span class="lineno">11 </span> <span class="k">try</span>
<span class="lineno">12 </span> <span class="p">{</span>
<span class="lineno">13 </span> <span class="n">data</span> <span class="p">=</span> <span class="k">new</span> <span class="n">AutoGltfFileParser</span><span class="p">(</span><span class="n">path</span><span class="p">).</span><span class="n">Parse</span><span class="p">();</span>
<span class="lineno">14 </span> <span class="p">}</span>
<span class="lineno">15 </span> <span class="k">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">ex</span><span class="p">)</span>
<span class="lineno">16 </span> <span class="p">{</span>
<span class="lineno">17 </span> <span class="n">Debug</span><span class="p">.</span><span class="n">LogWarningFormat</span><span class="p">(</span><span class="s">&quot;parse error: {0}&quot;</span><span class="p">,</span> <span class="n">ex</span><span class="p">);</span>
<span class="lineno">18 </span> <span class="k">return</span><span class="p">;</span>
<span class="lineno">19 </span> <span class="p">}</span>
<span class="lineno">20 </span>
<span class="lineno">21 </span> <span class="k">if</span> <span class="p">(</span><span class="n">isVrm</span><span class="p">)</span>
<span class="lineno">22 </span> <span class="p">{</span>
<span class="lineno">23 </span> <span class="k">try</span>
<span class="lineno">24 </span> <span class="p">{</span>
<span class="lineno">25 </span> <span class="kt">var</span> <span class="n">vrm</span> <span class="p">=</span> <span class="k">new</span> <span class="n">VRMData</span><span class="p">(</span><span class="n">data</span><span class="p">);</span>
<span class="lineno">26 </span> <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">loader</span> <span class="p">=</span> <span class="k">new</span> <span class="n">VRMImporterContext</span><span class="p">(</span><span class="n">vrm</span><span class="p">,</span> <span class="n">materialGenerator</span><span class="p">:</span> <span class="n">GetVrmMaterialGenerator</span><span class="p">(</span><span class="n">m_useUrpMaterial</span><span class="p">.</span><span class="n">isOn</span><span class="p">,</span> <span class="n">vrm</span><span class="p">.</span><span class="n">VrmExtension</span><span class="p">)))</span>
<span class="lineno">27 </span> <span class="p">{</span>
<span class="lineno">28 </span> <span class="k">await</span> <span class="n">m_texts</span><span class="p">.</span><span class="n">UpdateMetaAsync</span><span class="p">(</span><span class="n">loader</span><span class="p">);</span>
<span class="lineno">29 </span> <span class="kt">var</span> <span class="n">instance</span> <span class="p">=</span> <span class="k">await</span> <span class="n">loader</span><span class="p">.</span><span class="n">LoadAsync</span><span class="p">(</span><span class="n">GetIAwaitCaller</span><span class="p">(</span><span class="n">m_useAsync</span><span class="p">.</span><span class="n">isOn</span><span class="p">));</span>
<span class="lineno">30 </span> <span class="n">SetModel</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span>
<span class="lineno">31 </span> <span class="p">}</span>
<span class="lineno">32 </span> <span class="p">}</span>
<span class="lineno">33 </span> <span class="k">catch</span> <span class="p">(</span><span class="n">NotVrm0Exception</span><span class="p">)</span>
<span class="lineno">34 </span> <span class="p">{</span>
<span class="lineno">35 </span> <span class="c1">// retry</span>
<span class="lineno">36 </span> <span class="n">Debug</span><span class="p">.</span><span class="n">LogWarning</span><span class="p">(</span><span class="s">&quot;file extension is vrm. but not vrm ?&quot;</span><span class="p">);</span>
<span class="lineno">37 </span> <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">loader</span> <span class="p">=</span> <span class="k">new</span> <span class="n">UniGLTF</span><span class="p">.</span><span class="n">ImporterContext</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">materialGenerator</span><span class="p">:</span> <span class="n">GetGltfMaterialGenerator</span><span class="p">(</span><span class="n">m_useUrpMaterial</span><span class="p">.</span><span class="n">isOn</span><span class="p">)))</span>
<span class="lineno">38 </span> <span class="p">{</span>
<span class="lineno">39 </span> <span class="kt">var</span> <span class="n">instance</span> <span class="p">=</span> <span class="k">await</span> <span class="n">loader</span><span class="p">.</span><span class="n">LoadAsync</span><span class="p">(</span><span class="n">GetIAwaitCaller</span><span class="p">(</span><span class="n">m_useAsync</span><span class="p">.</span><span class="n">isOn</span><span class="p">));</span>
<span class="lineno">40 </span> <span class="n">SetModel</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span>
<span class="lineno">41 </span> <span class="p">}</span>
<span class="lineno">42 </span> <span class="p">}</span>
<span class="lineno">43 </span> <span class="p">}</span>
<span class="lineno">44 </span> <span class="k">else</span>
<span class="lineno">45 </span> <span class="p">{</span>
<span class="lineno">46 </span> <span class="k">using</span> <span class="p">(</span><span class="kt">var</span> <span class="n">loader</span> <span class="p">=</span> <span class="k">new</span> <span class="n">UniGLTF</span><span class="p">.</span><span class="n">ImporterContext</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">materialGenerator</span><span class="p">:</span> <span class="n">GetGltfMaterialGenerator</span><span class="p">(</span><span class="n">m_useUrpMaterial</span><span class="p">.</span><span class="n">isOn</span><span class="p">)))</span>
<span class="lineno">47 </span> <span class="p">{</span>
<span class="lineno">48 </span> <span class="kt">var</span> <span class="n">instance</span> <span class="p">=</span> <span class="k">await</span> <span class="n">loader</span><span class="p">.</span><span class="n">LoadAsync</span><span class="p">(</span><span class="n">GetIAwaitCaller</span><span class="p">(</span><span class="n">m_useAsync</span><span class="p">.</span><span class="n">isOn</span><span class="p">));</span>
<span class="lineno">49 </span> <span class="n">SetModel</span><span class="p">(</span><span class="n">instance</span><span class="p">);</span>
<span class="lineno">50 </span> <span class="p">}</span>
<span class="lineno">51 </span> <span class="p">}</span>
<span class="lineno">52 </span> <span class="p">}</span>
</pre></div>
</div>
</div>
</section>