UniVRM/en/implementation/scripted_importer.html
2024-01-12 05:33:20 +00:00

467 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="no-js" lang="en">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="UnlitTransparentZWrite" href="transparent_zwrite.html" /><link rel="prev" title="VRアプリケーションの FirstPerson 設定による Renderer の可視制御" href="first_person.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>ScriptedImporter の実装 - UniVRM Programming documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" />
<line x1="4" y1="6" x2="20" y2="6" />
<line x1="10" y1="12" x2="20" y2="12" />
<line x1="6" y1="18" x2="20" y2="18" />
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="../index.html"><div class="brand">UniVRM Programming documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><div class="sidebar-scroll">
<a href="../../ja/implementation/scripted_importer.html">日本語</a> [English]
<a class="sidebar-brand" href="../index.html">
<span class="sidebar-brand-text">UniVRM Programming documentation</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
<ul class="current">
<li class="toctree-l1 has-children"><a class="reference internal" href="../api/index.html">API</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="../api/sample/index.html">Sample</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../api/sample/SimpleViewer.html">SimpleViewer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/sample/RuntimeExporterSample.html">RuntimeExporter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/sample/FirstPersonSample.html">FirstPersonSample</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/sample/AnimationBridgeSample.html">AnimationBridgeSample</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../api/firstperson.html">VRMFirstPersonの使い方</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_36_update.html"><code class="docutils literal notranslate"><span class="pre">v0.36</span></code> GltfUpdate</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_44_runtime_import.html"><code class="docutils literal notranslate"><span class="pre">v0.44</span></code> RuntimeImport</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_58_blendshape.html"><code class="docutils literal notranslate"><span class="pre">v0.58</span></code> BlendShapeProxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/how_to_impl_extension.html"><code class="docutils literal notranslate"><span class="pre">v0.63.2</span></code> glTF拡張の実装</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_68_runtime_import.html"><code class="docutils literal notranslate"><span class="pre">v0.68</span></code> RuntimeImport DisposeOnGameObjectDestroyed(obsolete)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_76_texture_deserializer.html"><code class="docutils literal notranslate"><span class="pre">v0.76</span></code> ITextureDeserializer(Texture Loader)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_77_runtime_import.html"><code class="docutils literal notranslate"><span class="pre">v0.77</span></code> RuntimeImport RuntimeGltfInstance</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_79_runtime_import.html"><code class="docutils literal notranslate"><span class="pre">v0.79</span></code> RuntimeImport GltfData</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_82_glb_import.html"><code class="docutils literal notranslate"><span class="pre">v0.82.1</span></code> GlbImport GltfData</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_82_runtime_import.html"><code class="docutils literal notranslate"><span class="pre">v0.82.1</span></code> RuntimeImport VRMData</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/how_to_customize_material_import.html"><code class="docutils literal notranslate"><span class="pre">v0.82</span></code> Import 時に生成される Material をカスタマイズする</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/fast_spring_bone.html"><code class="docutils literal notranslate"><span class="pre">v0.85</span></code> FastSpringBoneについて</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_87_runtime_import.html"><code class="docutils literal notranslate"><span class="pre">v0.87</span></code> RuntimeImport 非同期ロード</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_95_dispose.html"><code class="docutils literal notranslate"><span class="pre">v0.95</span></code> GltfData.Dispose</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_95_highlevel.html"><code class="docutils literal notranslate"><span class="pre">v0.95</span></code> High-level API</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_96_1_use_gamma_colorspace.html"><code class="docutils literal notranslate"><span class="pre">v0.96.1</span></code> use gamma color space</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_106_spring_manual_update.html"><code class="docutils literal notranslate"><span class="pre">v0.106</span></code> SpringBone の手動更新</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/0_112_urp.html"><code class="docutils literal notranslate"><span class="pre">v0.112</span></code> MToon の URP 対応</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../build.html">Build Application</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Implementation note</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="runtime_resource_management.html">Runtime のリソース管理について</a></li>
<li class="toctree-l2"><a class="reference internal" href="texture_manipulation.html">Texture関連</a></li>
<li class="toctree-l2"><a class="reference internal" href="coordinate.html">Coordinate conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="first_person.html">VRアプリケーションの FirstPerson 設定による Renderer の可視制御</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">ScriptedImporter の実装</a></li>
<li class="toctree-l2"><a class="reference internal" href="transparent_zwrite.html">UnlitTransparentZWrite</a></li>
<li class="toctree-l2"><a class="reference internal" href="format.html">glbフォーマット概説</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../vrm1/index.html">VRM-1.0 API</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/folder_structure.html">Folder structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/api_update.html">API update</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/vrm1_load.html">RuntimeLoad</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/vrm1_controlrig.html">ControlRig: Working with Unnormalized Models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/vrm1_firstperson.html">FirstPerson</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/vrm1_springbone.html">SpringBone</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vrm1/vrm1_migration.html">Migration</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1 has-children"><a class="reference internal" href="../release/index.html">Release</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../release/unitypackage.html">UnityPackage for each version</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release/055/index.html">v0.55 (Unity-5.6. NET-3.5) Recommended version v0.55</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.40.html">v0.40</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.41.html">v0.41</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.42.html">v0.42</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.43.html">v0.43</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.44.html">v0.44: UniGLTF/UniUnlit 追加</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.45.html">v0.45</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.46.html">v0.46</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.47.html">v0.47</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.48.html">v0.48</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.49.html">v0.49</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.50.html">v0.50</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.51.0.html">v0.51.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.52.0.html">v0.52.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.53.0.html">v0.53.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.54.0.html">v0.54.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/055/v0.55.0.html">v0.55.0</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release/056/index.html">v0.56v0.67 (Unity-2018.4) 推奨バージョンv0.66</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.56.0.html">v0.56.0: 最低バージョンを Unity-2018.4 に更新</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.57.0.html">v0.57.0: ボーン名重複の自動リネーム</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.58.0.html">v0.58.0: テクスチャサイズの適正な考慮</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.59.0.html">v0.59.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.60.0.html">v0.60.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.61.0.html">v0.61.0: シリアライザーを reflection からコード生成に変更</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.62.0.html">v0.62.0: BlendShape bake</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.63.0.html">v0.63.0: UniGLTF と UniVRM の分離</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.64.0.html">v0.64.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.65.0.html">v0.65.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.66.0.html">v0.66.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/056/v0.67.0.html">v0.67.0: UniJson 単純化</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release/068/index.html">v0.68-v0.78 (Unity-2018.4) Development</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.68.0.html">v0.68.0: ImporterContext, ScriptedImporter(glb/gltf), remove DepthFirstScheduler</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.69.0.html">v0.69.0: MetallicRoughnessOcclusionテクスチャー</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.70.0.html">v0.70.0: EncodeToPng に失敗するエラーを修正</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.71.0.html">v0.71.0: fix Metallic または Occlusion テクスチャーエクスポートのバグ修正</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.72.0.html">v0.72.0: Linearカラースペースの推奨, DividedVertexBuffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.73.0.html">v0.73.0: other permission url の修正</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.74.0.html">v0.74.0: runtime スプリングボーンのスケール</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.75.0.html">v0.75.0: mipmap</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.76.0.html">v0.76.0: Shader整理</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.77.0.html">v0.77.0: RuntimeGltfInstance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/068/v0.78.0.html">v0.78.0: ScriptdImporter の改修</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release/079/index.html">v0.79 (Unity-2019.4) Latest Version</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" role="switch" type="checkbox"/><label for="toctree-checkbox-9"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.79.0.html">v0.79.0: Road to 1.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.80.0.html">v0.80.0: Road to 1.0. Support Unity-2019.4LTS+</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.81.0.html">v0.81.0: Road to 1.0. Reorganize unitypackage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.82.0.html">v0.82.0: Road to 1.0. Material Customization for URP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.83.0.html">v0.83.0: Road to 1.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.84.0.html">v0.84.0: Road to 1.0. Restore glTF import menu</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.85.0.html">v0.85.0: Road to 1.0. [0.x]FastSpringBone</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.86.0.html">v0.86.0: Road to 1.0. [1.0]FastSpringBone</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.87.0.html">v0.87.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.88.0.html">v0.88.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.89.0.html">v0.89.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.90.0.html">v0.90.0: NativeArray</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.91.0.html">v0.91.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.92.0.html">v0.92.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.93.0.html">v0.93.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.94.0.html">v0.94.0: Road to 1.0.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.95.1.html">v0.95.1: GltfData.Dispose</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.96.0.html">v0.96.0: ⚠️ ReadMesh</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.96.1.html">v0.96.1: ⚠️ build/exporter bug fix</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.96.2.html">v0.96.2: ⚠️ fix BlendShape Import bug</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.97.0.html">v0.96.0..v0.97.0: Bug fix &amp; update MeshUtil</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.98.0.html">v0.97.0..v0.98.0: Update constraint of 1.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/079/v0.99.0.html">v0.98.0..v0.99.0: KHR_mesh_quantization, KHR_materials_emissive_strength</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release/100/index.html">v0.100 (Unity-2020.3) 最新版をご利用ください</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" role="switch" type="checkbox"/><label for="toctree-checkbox-10"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.100.0.html">v0.99.0..v0.100.0: Fix for Unity-2021</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.101.0.html">v0.100.0..v0.101.0: Problems with the combination of zero bone weights and root bones</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.102.0.html">v0.101.0..v0.102.0: fixed RecalculateNormals</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.103.0.html">v0.102.0..v0.103.0: VRM-1.0 RC</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.104.0.html">v0.103.0..v0.104.0: vrm-1.0</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.105.0.html">v0.105.0: ⚠️ Update SimpleViewer sample</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.106.0.html">v0.106.0: Fix IL2CPP error and improve vrm-1.0 API</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.107.0.html">v0.107.0: ⚠️ fix Emission</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.108.0.html">v0.108.0: Fixed an error when importing directly under Assets</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.109.0.html">v0.109.0: experimental VRMC_vrm_animation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/100/v0.111.0.html">v0.111.0 last version for Unity-2020</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../release/112/index.html">v0.112 (Unity-2021.3) 最新版をご利用ください</a><input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" role="switch" type="checkbox"/><label for="toctree-checkbox-11"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../release/112/v0.112.0.html">v0.112.0 Unity-2021.3LTS and URP MToon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/112/v0.113.0.html">v0.113.0 VrmAnimation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/112/v0.114.0.html">v0.114.0 VrmAnimation Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/112/v0.115.0.html">v0.115.0 Fix ExpressionLookAt and PR merge</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/112/v0.116.0.html">v0.116.0 Update MeshUtility</a></li>
<li class="toctree-l3"><a class="reference internal" href="../release/112/v0.117.0.html">v0.117.0: fix vrm-0.X normalize bug</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../release/how_to_release.html">リリース作業手順</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../unihumanoid/index.html">UniHumanoid</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">external</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/vrm-c/UniVRM">UniVRM(github)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://vrm.dev/">VRM</a></li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<div class="content-icon-container">
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section class="tex2jax_ignore mathjax_ignore" id="scriptedimporter">
<h1>ScriptedImporter の実装<a class="headerlink" href="#scriptedimporter" title="Permalink to this headline"></a></h1>
<p><code class="docutils literal notranslate"><span class="pre">v0.68.0</span></code> 以降 の <code class="docutils literal notranslate"><span class="pre">glb/gltf</span> <span class="pre">editor</span> <span class="pre">importer</span></code><code class="docutils literal notranslate"><span class="pre">VRM-1.0</span> <span class="pre">editor</span> <span class="pre">importer</span></code> の実装で使用している <a class="reference external" href="https://docs.unity3d.com/ja/2019.4/ScriptReference/Experimental.AssetImporters.ScriptedImporter.html">ScriptedImporter</a> に関して。</p>
<blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">VRM-1.0</span></code> の実装と拡張子がぶつかってしまうので <code class="docutils literal notranslate"><span class="pre">VRM-0.x</span></code> への <code class="docutils literal notranslate"><span class="pre">ScriptedImporter</span></code> 実装はしません</p>
</div></blockquote>
<section id="id1">
<h2>ScriptedImporter 採用の利点<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h2>
<section id="texture-asset">
<h3>Texture の Asset化 が楽<a class="headerlink" href="#texture-asset" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">AssetPostprocessor</span></code> だと普通の方法では実装できない Texture のバイト列を出力して Asset 化して、
これを参照する Material をアセット化するということが、
<code class="docutils literal notranslate"><span class="pre">ScriptedImporter.GetExternalObjectMap</span></code> により無理をせずに実装できます。</p>
<blockquote>
<div><p>UniVRM では抜け道として <code class="docutils literal notranslate"><span class="pre">EditorApplication.delayCall</span></code> を使用しています。</p>
</div></blockquote>
</section>
<section id="import">
<h3>Import 設定を作れる<a class="headerlink" href="#import" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">ScriptedImporter</span></code> を継承したクラスの <code class="docutils literal notranslate"><span class="pre">public</span> <span class="pre">member</span></code><code class="docutils literal notranslate"><span class="pre">[SerializeField]</span></code> に情報を保存できます。</p>
<div class="highlight-csharp notranslate"><div class="highlight"><pre><span></span><span class="c1">// 例</span>
<span class="na">[ScriptedImporter(1, "cube")]</span>
<span class="k">public</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">CubeImporter</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">ScriptedImporter</span>
<span class="p">{</span>
<span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">m_Scale</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// これを Asset の Inspector で変更して Apply すると、新しい設定で再importできる</span>
<span class="w"> </span><span class="c1">// 省略</span>
<span class="p">}</span>
</pre></div>
</div>
</section>
<section id="forcetext-import">
<h3>ForceText 時に import が低速化するのを回避できる<a class="headerlink" href="#forcetext-import" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">ScriptedImporter</span></code> の SubAsset にすることで、 <code class="docutils literal notranslate"><span class="pre">mesh</span></code> などがテキスト(yaml)で Asset 化されることを回避できます。
巨大なアセットで差が出ます。</p>
</section>
</section>
<section id="id2">
<h2>ScriptedImporter 実装<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h2>
<p>TODO: ExternalObjectMap の扱い</p>
</section>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="transparent_zwrite.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">UnlitTransparentZWrite</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="first_person.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">VRアプリケーションの FirstPerson 設定による Renderer の可視制御</div>
</div>
</a>
</div>
<div class="related-information">
Copyright &#169; 2021, VRM Consortium |
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo theme</a>.
| <a class="muted-link" href="../_sources/implementation/scripted_importer.md.txt"
rel="nofollow">
Show Source
</a>
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
Contents
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">ScriptedImporter の実装</a><ul>
<li><a class="reference internal" href="#id1">ScriptedImporter 採用の利点</a><ul>
<li><a class="reference internal" href="#texture-asset">Texture の Asset化 が楽</a></li>
<li><a class="reference internal" href="#import">Import 設定を作れる</a></li>
<li><a class="reference internal" href="#forcetext-import">ForceText 時に import が低速化するのを回避できる</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">ScriptedImporter 実装</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</aside>
</div>
</div><script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/scripts/furo.js"></script>
</body>
</html>