@volter/blender-engine 0.1.148 → 0.1.149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +4 -11
  3. package/browser/addons/vrm/LICENSE_(OPTION1)_MIT.txt +22 -0
  4. package/browser/addons/vrm/LICENSE_(OPTION2)_GPL-3_0.txt +674 -0
  5. package/browser/addons/vrm/LICENSE_MAIN.txt +1 -0
  6. package/browser/addons/vrm/README.txt +3 -0
  7. package/browser/addons/vrm/__init__.py +41 -0
  8. package/browser/addons/vrm/blender_manifest.toml +16 -0
  9. package/browser/addons/vrm/common/__init__.py +1 -0
  10. package/browser/addons/vrm/common/animation.py +58 -0
  11. package/browser/addons/vrm/common/blender_manifest.py +82 -0
  12. package/browser/addons/vrm/common/char.py +16 -0
  13. package/browser/addons/vrm/common/convert.py +287 -0
  14. package/browser/addons/vrm/common/convert_any.py +48 -0
  15. package/browser/addons/vrm/common/debug.py +40 -0
  16. package/browser/addons/vrm/common/deep.py +162 -0
  17. package/browser/addons/vrm/common/error_dialog.py +274 -0
  18. package/browser/addons/vrm/common/fs.py +71 -0
  19. package/browser/addons/vrm/common/gl.py +20 -0
  20. package/browser/addons/vrm/common/gltf.py +1149 -0
  21. package/browser/addons/vrm/common/human_bone_mapper/__init__.py +1 -0
  22. package/browser/addons/vrm/common/human_bone_mapper/biped_mapping.py +84 -0
  23. package/browser/addons/vrm/common/human_bone_mapper/cats_blender_plugin_fix_model_mapping.py +63 -0
  24. package/browser/addons/vrm/common/human_bone_mapper/human_bone_mapper.py +203 -0
  25. package/browser/addons/vrm/common/human_bone_mapper/microsoft_rocketbox_mapping.py +69 -0
  26. package/browser/addons/vrm/common/human_bone_mapper/mixamo_mapping.py +62 -0
  27. package/browser/addons/vrm/common/human_bone_mapper/mmd_mapping.py +115 -0
  28. package/browser/addons/vrm/common/human_bone_mapper/mpfb_mapping.py +120 -0
  29. package/browser/addons/vrm/common/human_bone_mapper/ready_player_me_mapping.py +65 -0
  30. package/browser/addons/vrm/common/human_bone_mapper/reallusion_mapping.py +94 -0
  31. package/browser/addons/vrm/common/human_bone_mapper/rigify_meta_rig_mapping.py +65 -0
  32. package/browser/addons/vrm/common/human_bone_mapper/structure_based_mapping.py +891 -0
  33. package/browser/addons/vrm/common/human_bone_mapper/unreal_mapping.py +62 -0
  34. package/browser/addons/vrm/common/human_bone_mapper/vrm_addon_mapping.py +112 -0
  35. package/browser/addons/vrm/common/human_bone_mapper/vroid_mapping.py +89 -0
  36. package/browser/addons/vrm/common/legacy_gltf.py +16 -0
  37. package/browser/addons/vrm/common/logger.py +84 -0
  38. package/browser/addons/vrm/common/mtoon0.blend +0 -0
  39. package/browser/addons/vrm/common/mtoon1.blend +0 -0
  40. package/browser/addons/vrm/common/mtoon1_outline.blend +0 -0
  41. package/browser/addons/vrm/common/mtoon_auto_setup.blend +0 -0
  42. package/browser/addons/vrm/common/mtoon_unversioned.py +62 -0
  43. package/browser/addons/vrm/common/ops/__init__.py +10 -0
  44. package/browser/addons/vrm/common/ops/export_scene.py +67 -0
  45. package/browser/addons/vrm/common/ops/icyp.py +53 -0
  46. package/browser/addons/vrm/common/ops/import_scene.py +57 -0
  47. package/browser/addons/vrm/common/ops/vrm.py +2380 -0
  48. package/browser/addons/vrm/common/ops/wm.py +167 -0
  49. package/browser/addons/vrm/common/preferences.py +362 -0
  50. package/browser/addons/vrm/common/progress.py +87 -0
  51. package/browser/addons/vrm/common/rotation.py +89 -0
  52. package/browser/addons/vrm/common/safe_removal.py +46 -0
  53. package/browser/addons/vrm/common/scene_watcher.py +230 -0
  54. package/browser/addons/vrm/common/shader.py +2243 -0
  55. package/browser/addons/vrm/common/shape_key_mapper/__init__.py +1 -0
  56. package/browser/addons/vrm/common/shape_key_mapper/arkit_mapping.py +168 -0
  57. package/browser/addons/vrm/common/shape_key_mapper/mmd_mapping.py +62 -0
  58. package/browser/addons/vrm/common/shape_key_mapper/ready_player_me_mapping.py +52 -0
  59. package/browser/addons/vrm/common/shape_key_mapper/vrchat_mapping.py +17 -0
  60. package/browser/addons/vrm/common/third_party_user_extension.py +214 -0
  61. package/browser/addons/vrm/common/transparent_z_write.blend +0 -0
  62. package/browser/addons/vrm/common/version.py +161 -0
  63. package/browser/addons/vrm/common/vrm0/__init__.py +1 -0
  64. package/browser/addons/vrm/common/vrm0/human_bone.py +662 -0
  65. package/browser/addons/vrm/common/vrm0/material_property.py +346 -0
  66. package/browser/addons/vrm/common/vrm1/__init__.py +1 -0
  67. package/browser/addons/vrm/common/vrm1/expression_preset.py +207 -0
  68. package/browser/addons/vrm/common/vrm1/human_bone.py +822 -0
  69. package/browser/addons/vrm/common/workspace.py +227 -0
  70. package/browser/addons/vrm/common/writable_context.py +77 -0
  71. package/browser/addons/vrm/documentation/en-us/animation/index.md +63 -0
  72. package/browser/addons/vrm/documentation/en-us/create-humanoid-vrm-from-scratch/index.md +131 -0
  73. package/browser/addons/vrm/documentation/en-us/create-simple-vrm-from-scratch/index.md +30 -0
  74. package/browser/addons/vrm/documentation/en-us/development/index.md +136 -0
  75. package/browser/addons/vrm/documentation/en-us/index.md +41 -0
  76. package/browser/addons/vrm/documentation/en-us/installation/index.md +152 -0
  77. package/browser/addons/vrm/documentation/en-us/material-mtoon/index.md +122 -0
  78. package/browser/addons/vrm/documentation/en-us/material-pbr/index.md +94 -0
  79. package/browser/addons/vrm/documentation/en-us/scripting-api/index.md +391 -0
  80. package/browser/addons/vrm/documentation/en-us/ui/export_scene.vrm/index.md +57 -0
  81. package/browser/addons/vrm/documentation/en-us/ui/export_scene.vrma/index.md +17 -0
  82. package/browser/addons/vrm/documentation/en-us/ui/import_scene.vrm/index.md +61 -0
  83. package/browser/addons/vrm/documentation/en-us/ui/import_scene.vrma/index.md +13 -0
  84. package/browser/addons/vrm/documentation/ja-jp/animation/index.md +57 -0
  85. package/browser/addons/vrm/documentation/ja-jp/create-humanoid-vrm-from-scratch/index.md +129 -0
  86. package/browser/addons/vrm/documentation/ja-jp/create-simple-vrm-from-scratch/index.md +29 -0
  87. package/browser/addons/vrm/documentation/ja-jp/development/index.md +137 -0
  88. package/browser/addons/vrm/documentation/ja-jp/index.md +37 -0
  89. package/browser/addons/vrm/documentation/ja-jp/installation/index.md +150 -0
  90. package/browser/addons/vrm/documentation/ja-jp/material-mtoon/index.md +113 -0
  91. package/browser/addons/vrm/documentation/ja-jp/material-pbr/index.md +90 -0
  92. package/browser/addons/vrm/documentation/ja-jp/scripting-api/index.md +389 -0
  93. package/browser/addons/vrm/documentation/ja-jp/ui/export_scene.vrm/index.md +55 -0
  94. package/browser/addons/vrm/documentation/ja-jp/ui/export_scene.vrma/index.md +19 -0
  95. package/browser/addons/vrm/documentation/ja-jp/ui/import_scene.vrm/index.md +56 -0
  96. package/browser/addons/vrm/documentation/ja-jp/ui/import_scene.vrma/index.md +14 -0
  97. package/browser/addons/vrm/editor/__init__.py +1 -0
  98. package/browser/addons/vrm/editor/extension.py +425 -0
  99. package/browser/addons/vrm/editor/extension_accessor.py +75 -0
  100. package/browser/addons/vrm/editor/handler.py +84 -0
  101. package/browser/addons/vrm/editor/khr_character/__init__.py +1 -0
  102. package/browser/addons/vrm/editor/khr_character/panel.py +69 -0
  103. package/browser/addons/vrm/editor/khr_character/property_group.py +27 -0
  104. package/browser/addons/vrm/editor/khr_xmp_json_ld/__init__.py +1 -0
  105. package/browser/addons/vrm/editor/khr_xmp_json_ld/ops.py +464 -0
  106. package/browser/addons/vrm/editor/khr_xmp_json_ld/panel.py +136 -0
  107. package/browser/addons/vrm/editor/khr_xmp_json_ld/property_group.py +83 -0
  108. package/browser/addons/vrm/editor/khr_xmp_json_ld/ui_list.py +198 -0
  109. package/browser/addons/vrm/editor/make_armature.py +709 -0
  110. package/browser/addons/vrm/editor/menu.py +147 -0
  111. package/browser/addons/vrm/editor/migration.py +297 -0
  112. package/browser/addons/vrm/editor/mtoon1/__init__.py +1 -0
  113. package/browser/addons/vrm/editor/mtoon1/handler.py +20 -0
  114. package/browser/addons/vrm/editor/mtoon1/migration.py +536 -0
  115. package/browser/addons/vrm/editor/mtoon1/ops.py +304 -0
  116. package/browser/addons/vrm/editor/mtoon1/panel.py +442 -0
  117. package/browser/addons/vrm/editor/mtoon1/property_group.py +4977 -0
  118. package/browser/addons/vrm/editor/mtoon1/scene_watcher.py +381 -0
  119. package/browser/addons/vrm/editor/node_constraint1/__init__.py +1 -0
  120. package/browser/addons/vrm/editor/node_constraint1/panel.py +317 -0
  121. package/browser/addons/vrm/editor/node_constraint1/property_group.py +25 -0
  122. package/browser/addons/vrm/editor/ops.py +471 -0
  123. package/browser/addons/vrm/editor/panel.py +315 -0
  124. package/browser/addons/vrm/editor/property_group.py +888 -0
  125. package/browser/addons/vrm/editor/search.py +682 -0
  126. package/browser/addons/vrm/editor/spring_bone1/__init__.py +1 -0
  127. package/browser/addons/vrm/editor/spring_bone1/handler.py +994 -0
  128. package/browser/addons/vrm/editor/spring_bone1/menu.py +246 -0
  129. package/browser/addons/vrm/editor/spring_bone1/migration.py +86 -0
  130. package/browser/addons/vrm/editor/spring_bone1/ops.py +1679 -0
  131. package/browser/addons/vrm/editor/spring_bone1/panel.py +605 -0
  132. package/browser/addons/vrm/editor/spring_bone1/property_group.py +1457 -0
  133. package/browser/addons/vrm/editor/spring_bone1/ui_list.py +408 -0
  134. package/browser/addons/vrm/editor/subscription.py +123 -0
  135. package/browser/addons/vrm/editor/t_pose.py +713 -0
  136. package/browser/addons/vrm/editor/validation.py +1271 -0
  137. package/browser/addons/vrm/editor/vrm0/__init__.py +1 -0
  138. package/browser/addons/vrm/editor/vrm0/gizmo_group.py +63 -0
  139. package/browser/addons/vrm/editor/vrm0/handler.py +23 -0
  140. package/browser/addons/vrm/editor/vrm0/menu.py +145 -0
  141. package/browser/addons/vrm/editor/vrm0/migration.py +761 -0
  142. package/browser/addons/vrm/editor/vrm0/ops.py +2145 -0
  143. package/browser/addons/vrm/editor/vrm0/panel.py +1333 -0
  144. package/browser/addons/vrm/editor/vrm0/property_group.py +1818 -0
  145. package/browser/addons/vrm/editor/vrm0/ui_list.py +688 -0
  146. package/browser/addons/vrm/editor/vrm1/__init__.py +1 -0
  147. package/browser/addons/vrm/editor/vrm1/handler.py +28 -0
  148. package/browser/addons/vrm/editor/vrm1/menu.py +76 -0
  149. package/browser/addons/vrm/editor/vrm1/migration.py +321 -0
  150. package/browser/addons/vrm/editor/vrm1/ops.py +2679 -0
  151. package/browser/addons/vrm/editor/vrm1/panel.py +1243 -0
  152. package/browser/addons/vrm/editor/vrm1/property_group.py +2087 -0
  153. package/browser/addons/vrm/editor/vrm1/scene_watcher.py +90 -0
  154. package/browser/addons/vrm/editor/vrm1/ui_list.py +533 -0
  155. package/browser/addons/vrm/exporter/__init__.py +1 -0
  156. package/browser/addons/vrm/exporter/abstract_base_vrm_exporter.py +628 -0
  157. package/browser/addons/vrm/exporter/export_scene.py +930 -0
  158. package/browser/addons/vrm/exporter/gltf2_export_user_extension.py +45 -0
  159. package/browser/addons/vrm/exporter/khr_character_exporter.py +34 -0
  160. package/browser/addons/vrm/exporter/vrm0_exporter.py +4020 -0
  161. package/browser/addons/vrm/exporter/vrm1_exporter.py +3682 -0
  162. package/browser/addons/vrm/exporter/vrm_animation_exporter.py +1035 -0
  163. package/browser/addons/vrm/external/__init__.py +1 -0
  164. package/browser/addons/vrm/external/auto_rig_pro_support.py +3 -0
  165. package/browser/addons/vrm/external/io_scene_gltf2_support.py +418 -0
  166. package/browser/addons/vrm/external/rigify_support.py +1 -0
  167. package/browser/addons/vrm/importer/__init__.py +1 -0
  168. package/browser/addons/vrm/importer/abstract_base_vrm_importer.py +1548 -0
  169. package/browser/addons/vrm/importer/file_handler.py +34 -0
  170. package/browser/addons/vrm/importer/gltf2_import_user_extension.py +268 -0
  171. package/browser/addons/vrm/importer/import_scene.py +646 -0
  172. package/browser/addons/vrm/importer/license_validation.py +198 -0
  173. package/browser/addons/vrm/importer/vrm0_importer.py +1723 -0
  174. package/browser/addons/vrm/importer/vrm1_importer.py +2014 -0
  175. package/browser/addons/vrm/importer/vrm_animation_importer.py +763 -0
  176. package/browser/addons/vrm/importer/vrm_diff.py +316 -0
  177. package/browser/addons/vrm/locale/__init__.py +1 -0
  178. package/browser/addons/vrm/locale/ja_jp.py +826 -0
  179. package/browser/addons/vrm/locale/ruff.toml +8 -0
  180. package/browser/addons/vrm/locale/translation_dictionary.py +10 -0
  181. package/browser/addons/vrm/locale/zh_hans.py +928 -0
  182. package/browser/addons/vrm/registration.py +670 -0
  183. package/browser/addons/vrm.json +18 -0
  184. package/browser/blender-emscripten-engine.mts +60 -128
  185. package/browser/blender-engine.mts +20 -186
  186. package/browser/blender-wali-engine.mts +35 -81
  187. package/browser/describe-thrown.mts +3 -6
  188. package/browser/document-chunks.mts +4 -16
  189. package/browser/gltf_export.py +3161 -0
  190. package/browser/heap-growth.mts +23 -0
  191. package/browser/index.ts +2 -0
  192. package/browser/protocol.ts +119 -35
  193. package/browser/pull-job.mts +2 -10
  194. package/browser/rna.ts +190 -73
  195. package/browser/runtime.ts +197 -82
  196. package/browser/session-addons.mts +33 -0
  197. package/browser/session-frame.mts +5 -24
  198. package/browser/session.py +1338 -1427
  199. package/browser/three/attach-presenter.ts +11 -39
  200. package/browser/three/blender-base64.ts +1 -36
  201. package/browser/three/blender-corner-normals.ts +1 -23
  202. package/browser/three/blender-display-shaders.json +1 -1
  203. package/browser/three/blender-display-shaders.lut +0 -0
  204. package/browser/three/blender-display-transform.ts +2 -1
  205. package/browser/three/blender-frame-columns.ts +5 -13
  206. package/browser/three/blender-graph-material.ts +18 -3
  207. package/browser/three/blender-node-graph.ts +10 -34
  208. package/browser/three/blender-physical-material.ts +2 -31
  209. package/browser/three/blender-runtime-armature.ts +7 -60
  210. package/browser/three/blender-runtime-frame.ts +9 -23
  211. package/browser/three/blender-runtime-geometry.ts +22 -26
  212. package/browser/three/blender-runtime-lighting.ts +48 -178
  213. package/browser/three/blender-runtime-shadows.ts +187 -1
  214. package/browser/three/blender-runtime-skeleton.ts +53 -1
  215. package/browser/three/blender-runtime-view.ts +505 -283
  216. package/browser/three/blender-runtime-weights.ts +9 -72
  217. package/browser/three/blender-sky.ts +13 -33
  218. package/browser/three/blender-triangulate.ts +7 -35
  219. package/browser/three/blender-viewport-sampling.ts +235 -0
  220. package/browser/three/blender-workbench-material.ts +25 -29
  221. package/browser/three/blender-workbench-outline.ts +199 -0
  222. package/browser/three/blender-world-volume.ts +62 -10
  223. package/browser/three/presenter.ts +10 -26
  224. package/browser/three/release.ts +5 -21
  225. package/browser/three/sky-precompute-worker.ts +1 -18
  226. package/browser/three/sky-worker.ts +5 -23
  227. package/browser/three/world-field-sampler.ts +12 -26
  228. package/browser/volter_three.py +9 -105
  229. package/browser/worker.ts +156 -151
  230. package/package.json +5 -2
  231. package/wasm/BUNDLE.json +17 -17
  232. package/wasm/DEPENDENCY-LICENSES.txt +14 -0
  233. package/wasm/blender_browser.data.br +0 -0
  234. package/wasm/blender_browser.js +1 -1
  235. package/wasm/blender_browser.wasm.br +0 -0
  236. package/browser/frame-transfer.mts +0 -19
  237. package/browser/three/agx-base-srgb.lut +0 -0
  238. package/browser/three/agx-look-medium-high-contrast.lut +0 -0
  239. package/browser/three/agx-look-punchy.lut +0 -0
  240. package/browser/three/blender-agx.ts +0 -235
  241. package/browser/three/blender-display-lut.ts +0 -145
  242. package/browser/three/blender-filmic.ts +0 -49
  243. package/browser/three/blender-standard.ts +0 -68
  244. package/browser/three/blender-world-visibility.ts +0 -278
  245. package/browser/three/filmic-srgb.lut +0 -0
@@ -0,0 +1,670 @@
1
+ # SPDX-License-Identifier: MIT OR GPL-3.0-or-later
2
+ # SPDX-FileCopyrightText: 2018 iCyP
3
+
4
+ from typing import Final, Union
5
+
6
+ import bpy
7
+ from bpy.app.handlers import persistent
8
+ from bpy.props import PointerProperty
9
+ from bpy.types import (
10
+ AddonPreferences,
11
+ Armature,
12
+ Bone,
13
+ Context,
14
+ Header,
15
+ KeyingSetInfo,
16
+ Material,
17
+ Menu,
18
+ NodeTree,
19
+ Object,
20
+ Operator,
21
+ Panel,
22
+ PropertyGroup,
23
+ RenderEngine,
24
+ Scene,
25
+ TOPBAR_MT_file_export,
26
+ TOPBAR_MT_file_import,
27
+ UIList,
28
+ VIEW3D_MT_armature_add,
29
+ )
30
+
31
+ from .common import (
32
+ animation,
33
+ error_dialog,
34
+ preferences,
35
+ scene_watcher,
36
+ shader,
37
+ writable_context,
38
+ )
39
+ from .common.logger import get_logger
40
+ from .common.version import trigger_clear_addon_version_cache
41
+ from .editor import (
42
+ extension,
43
+ handler,
44
+ make_armature,
45
+ menu,
46
+ migration,
47
+ ops,
48
+ panel,
49
+ property_group,
50
+ subscription,
51
+ validation,
52
+ )
53
+ from .editor.khr_character import panel as khr_character_panel
54
+ from .editor.khr_character import property_group as khr_character_property_group
55
+ from .editor.khr_xmp_json_ld import ops as khr_xmp_json_ld_ops
56
+ from .editor.khr_xmp_json_ld import property_group as khr_xmp_json_ld_property_group
57
+ from .editor.khr_xmp_json_ld import ui_list as khr_xmp_json_ld_ui_list
58
+ from .editor.mtoon1 import handler as mtoon1_handler
59
+ from .editor.mtoon1 import migration as mtoon1_migration
60
+ from .editor.mtoon1 import ops as mtoon1_ops
61
+ from .editor.mtoon1 import panel as mtoon1_panel
62
+ from .editor.mtoon1 import property_group as mtoon1_property_group
63
+ from .editor.node_constraint1 import panel as node_constraint1_panel
64
+ from .editor.node_constraint1 import property_group as node_constraint1_property_group
65
+ from .editor.spring_bone1 import handler as spring_bone1_handler
66
+ from .editor.spring_bone1 import menu as spring_bone1_menu
67
+ from .editor.spring_bone1 import ops as spring_bone1_ops
68
+ from .editor.spring_bone1 import panel as spring_bone1_panel
69
+ from .editor.spring_bone1 import property_group as spring_bone1_property_group
70
+ from .editor.spring_bone1 import ui_list as spring_bone1_ui_list
71
+ from .editor.vrm0 import handler as vrm0_handler
72
+ from .editor.vrm0 import menu as vrm0_menu
73
+ from .editor.vrm0 import ops as vrm0_ops
74
+ from .editor.vrm0 import panel as vrm0_panel
75
+ from .editor.vrm0 import property_group as vrm0_property_group
76
+ from .editor.vrm0 import ui_list as vrm0_ui_list
77
+ from .editor.vrm1 import handler as vrm1_handler
78
+ from .editor.vrm1 import menu as vrm1_menu
79
+ from .editor.vrm1 import ops as vrm1_ops
80
+ from .editor.vrm1 import panel as vrm1_panel
81
+ from .editor.vrm1 import property_group as vrm1_property_group
82
+ from .editor.vrm1 import ui_list as vrm1_ui_list
83
+ from .exporter import export_scene
84
+ from .external import io_scene_gltf2_support
85
+ from .importer import import_scene
86
+ from .locale.translation_dictionary import build_translation_dictionary
87
+
88
+ _logger = get_logger(__name__)
89
+
90
+ CLASSES: Final[
91
+ list[
92
+ Union[
93
+ type[Panel],
94
+ type[UIList],
95
+ type[Menu],
96
+ type[Header],
97
+ type[Operator],
98
+ type[KeyingSetInfo],
99
+ type[RenderEngine],
100
+ type[AddonPreferences],
101
+ type[PropertyGroup],
102
+ type["bpy.types.FileHandler"], # bpy.app.version >= (4, 1, 0)
103
+ ]
104
+ ]
105
+ ] = [
106
+ io_scene_gltf2_support.WM_OT_vrm_io_scene_gltf2_disabled_warning,
107
+ property_group.StringPropertyGroup,
108
+ property_group.FloatPropertyGroup,
109
+ property_group.MeshObjectPropertyGroup,
110
+ property_group.MaterialPropertyGroup,
111
+ vrm0_property_group.Vrm0HumanoidBoneNodePropertyGroup,
112
+ vrm1_property_group.Vrm1HumanBoneNodePropertyGroup,
113
+ property_group.HumanoidStructureBonePropertyGroup,
114
+ property_group.BonePropertyGroup,
115
+ vrm0_property_group.Vrm0MaterialValueBindPropertyGroup,
116
+ vrm0_property_group.Vrm0BlendShapeBindPropertyGroup,
117
+ vrm0_property_group.Vrm0BlendShapeGroupPropertyGroup,
118
+ vrm0_property_group.Vrm0BlendShapeMasterPropertyGroup,
119
+ vrm0_property_group.Vrm0MeshAnnotationPropertyGroup,
120
+ vrm0_property_group.Vrm0DegreeMapPropertyGroup,
121
+ vrm0_property_group.Vrm0FirstPersonPropertyGroup,
122
+ vrm0_property_group.Vrm0HumanoidBonePropertyGroup,
123
+ vrm0_property_group.Vrm0HumanoidPropertyGroup,
124
+ vrm0_property_group.Vrm0MetaPropertyGroup,
125
+ vrm0_property_group.Vrm0SecondaryAnimationColliderPropertyGroup,
126
+ vrm0_property_group.Vrm0SecondaryAnimationColliderGroupPropertyGroup,
127
+ vrm0_property_group.Vrm0SecondaryAnimationColliderGroupReferencePropertyGroup,
128
+ vrm0_property_group.Vrm0SecondaryAnimationGroupPropertyGroup,
129
+ vrm0_property_group.Vrm0SecondaryAnimationPropertyGroup,
130
+ vrm0_property_group.Vrm0PropertyGroup,
131
+ # vrm0_gizmo_group.Vrm0FirstPersonBoneOffsetGizmoGroup,
132
+ vrm1_property_group.Vrm1HumanBonePropertyGroup,
133
+ vrm1_property_group.Vrm1HumanBonesPropertyGroup,
134
+ vrm1_property_group.Vrm1HumanoidPropertyGroup,
135
+ vrm1_property_group.Vrm1LookAtRangeMapPropertyGroup,
136
+ vrm1_property_group.Vrm1LookAtPropertyGroup,
137
+ vrm1_property_group.Vrm1MeshAnnotationPropertyGroup,
138
+ vrm1_property_group.Vrm1FirstPersonPropertyGroup,
139
+ vrm1_property_group.Vrm1MorphTargetBindPropertyGroup,
140
+ vrm1_property_group.Vrm1MaterialColorBindPropertyGroup,
141
+ vrm1_property_group.Vrm1TextureTransformBindPropertyGroup,
142
+ vrm1_property_group.Vrm1CustomExpressionPropertyGroup,
143
+ vrm1_property_group.Vrm1ExpressionPropertyGroup,
144
+ vrm1_property_group.Vrm1ExpressionsPresetPropertyGroup,
145
+ vrm1_property_group.Vrm1ExpressionsPropertyGroup,
146
+ vrm1_property_group.Vrm1MetaPropertyGroup,
147
+ vrm1_property_group.Vrm1PropertyGroup,
148
+ node_constraint1_property_group.NodeConstraint1NodeConstraintPropertyGroup,
149
+ spring_bone1_property_group.SpringBone1ExtendedColliderShapeSpherePropertyGroup,
150
+ spring_bone1_property_group.SpringBone1ExtendedColliderShapeCapsulePropertyGroup,
151
+ spring_bone1_property_group.SpringBone1ExtendedColliderShapePlanePropertyGroup,
152
+ spring_bone1_property_group.SpringBone1ColliderShapeSpherePropertyGroup,
153
+ spring_bone1_property_group.SpringBone1ColliderShapeCapsulePropertyGroup,
154
+ spring_bone1_property_group.SpringBone1ExtendedColliderShapePropertyGroup,
155
+ spring_bone1_property_group.SpringBone1ColliderShapePropertyGroup,
156
+ spring_bone1_property_group.SpringBone1VrmcSpringBoneExtendedColliderPropertyGroup,
157
+ spring_bone1_property_group.SpringBone1ColliderExtensionsPropertyGroup,
158
+ spring_bone1_property_group.SpringBone1ColliderPropertyGroup,
159
+ spring_bone1_property_group.SpringBone1ColliderReferencePropertyGroup,
160
+ spring_bone1_property_group.SpringBone1ColliderGroupPropertyGroup,
161
+ spring_bone1_property_group.SpringBone1ColliderGroupReferencePropertyGroup,
162
+ spring_bone1_property_group.SpringBone1JointAnimationStatePropertyGroup,
163
+ spring_bone1_property_group.SpringBone1VrmcSpringBoneLimitPropertyGroup,
164
+ spring_bone1_property_group.SpringBone1JointPropertyGroup,
165
+ spring_bone1_property_group.SpringBone1SpringAnimationStatePropertyGroup,
166
+ spring_bone1_property_group.SpringBone1SpringPropertyGroup,
167
+ spring_bone1_property_group.SpringBone1SpringBonePropertyGroup,
168
+ mtoon1_property_group.Mtoon1BaseColorSamplerPropertyGroup,
169
+ mtoon1_property_group.Mtoon1ShadeMultiplySamplerPropertyGroup,
170
+ mtoon1_property_group.Mtoon1NormalSamplerPropertyGroup,
171
+ mtoon1_property_group.Mtoon1ShadingShiftSamplerPropertyGroup,
172
+ mtoon1_property_group.Mtoon1EmissiveSamplerPropertyGroup,
173
+ mtoon1_property_group.Mtoon1RimMultiplySamplerPropertyGroup,
174
+ mtoon1_property_group.Mtoon1MatcapSamplerPropertyGroup,
175
+ mtoon1_property_group.Mtoon1OutlineWidthMultiplySamplerPropertyGroup,
176
+ mtoon1_property_group.Mtoon1UvAnimationMaskSamplerPropertyGroup,
177
+ mtoon1_property_group.Mtoon1SamplerPropertyGroup,
178
+ mtoon1_property_group.Mtoon1NonBaseColorKhrTextureTransformPropertyGroup,
179
+ mtoon1_property_group.Mtoon1BaseColorKhrTextureTransformPropertyGroup,
180
+ mtoon1_property_group.Mtoon1ShadeMultiplyKhrTextureTransformPropertyGroup,
181
+ mtoon1_property_group.Mtoon1NormalKhrTextureTransformPropertyGroup,
182
+ mtoon1_property_group.Mtoon1ShadingShiftKhrTextureTransformPropertyGroup,
183
+ mtoon1_property_group.Mtoon1EmissiveKhrTextureTransformPropertyGroup,
184
+ mtoon1_property_group.Mtoon1RimMultiplyKhrTextureTransformPropertyGroup,
185
+ mtoon1_property_group.Mtoon1MatcapKhrTextureTransformPropertyGroup,
186
+ mtoon1_property_group.Mtoon1OutlineWidthMultiplyKhrTextureTransformPropertyGroup,
187
+ mtoon1_property_group.Mtoon1UvAnimationMaskKhrTextureTransformPropertyGroup,
188
+ mtoon1_property_group.Mtoon1KhrTextureTransformPropertyGroup,
189
+ mtoon1_property_group.Mtoon1BaseColorTexturePropertyGroup,
190
+ mtoon1_property_group.Mtoon1ShadeMultiplyTexturePropertyGroup,
191
+ mtoon1_property_group.Mtoon1NormalTexturePropertyGroup,
192
+ mtoon1_property_group.Mtoon1ShadingShiftTexturePropertyGroup,
193
+ mtoon1_property_group.Mtoon1EmissiveTexturePropertyGroup,
194
+ mtoon1_property_group.Mtoon1RimMultiplyTexturePropertyGroup,
195
+ mtoon1_property_group.Mtoon1MatcapTexturePropertyGroup,
196
+ mtoon1_property_group.Mtoon1OutlineWidthMultiplyTexturePropertyGroup,
197
+ mtoon1_property_group.Mtoon1UvAnimationMaskTexturePropertyGroup,
198
+ mtoon1_property_group.Mtoon1TexturePropertyGroup,
199
+ mtoon1_property_group.Mtoon1BaseColorTextureInfoExtensionsPropertyGroup,
200
+ mtoon1_property_group.Mtoon1ShadeMultiplyTextureInfoExtensionsPropertyGroup,
201
+ mtoon1_property_group.Mtoon1NormalTextureInfoExtensionsPropertyGroup,
202
+ mtoon1_property_group.Mtoon1ShadingShiftTextureInfoExtensionsPropertyGroup,
203
+ mtoon1_property_group.Mtoon1EmissiveTextureInfoExtensionsPropertyGroup,
204
+ mtoon1_property_group.Mtoon1RimMultiplyTextureInfoExtensionsPropertyGroup,
205
+ mtoon1_property_group.Mtoon1MatcapTextureInfoExtensionsPropertyGroup,
206
+ mtoon1_property_group.Mtoon1OutlineWidthMultiplyTextureInfoExtensionsPropertyGroup,
207
+ mtoon1_property_group.Mtoon1UvAnimationMaskTextureInfoExtensionsPropertyGroup,
208
+ mtoon1_property_group.Mtoon1BaseColorTextureInfoPropertyGroup,
209
+ mtoon1_property_group.Mtoon1ShadeMultiplyTextureInfoPropertyGroup,
210
+ mtoon1_property_group.Mtoon1NormalTextureInfoPropertyGroup,
211
+ mtoon1_property_group.Mtoon1ShadingShiftTextureInfoPropertyGroup,
212
+ mtoon1_property_group.Mtoon1EmissiveTextureInfoPropertyGroup,
213
+ mtoon1_property_group.Mtoon1RimMultiplyTextureInfoPropertyGroup,
214
+ mtoon1_property_group.Mtoon1MatcapTextureInfoPropertyGroup,
215
+ mtoon1_property_group.Mtoon1OutlineWidthMultiplyTextureInfoPropertyGroup,
216
+ mtoon1_property_group.Mtoon1UvAnimationMaskTextureInfoPropertyGroup,
217
+ mtoon1_property_group.Mtoon1PbrMetallicRoughnessPropertyGroup,
218
+ mtoon1_property_group.Mtoon1VrmcMaterialsMtoonPropertyGroup,
219
+ mtoon1_property_group.Mtoon1KhrMaterialsEmissiveStrengthPropertyGroup,
220
+ mtoon1_property_group.Mtoon1MaterialExtensionsPropertyGroup,
221
+ mtoon1_property_group.Mtoon0SamplerPropertyGroup,
222
+ mtoon1_property_group.Mtoon0TexturePropertyGroup,
223
+ mtoon1_property_group.Mtoon0ShadingGradeTexturePropertyGroup,
224
+ mtoon1_property_group.Mtoon0ReceiveShadowTexturePropertyGroup,
225
+ mtoon1_property_group.Mtoon1MaterialPropertyGroup,
226
+ mtoon1_property_group.MaterialTraceablePropertyGroup,
227
+ khr_xmp_json_ld_ops.VRM_OT_add_khr_xmp_json_ld_packet_dc_creator,
228
+ khr_xmp_json_ld_ops.VRM_OT_remove_khr_xmp_json_ld_packet_dc_creator,
229
+ khr_xmp_json_ld_ops.VRM_OT_move_up_khr_xmp_json_ld_packet_dc_creator,
230
+ khr_xmp_json_ld_ops.VRM_OT_move_down_khr_xmp_json_ld_packet_dc_creator,
231
+ khr_xmp_json_ld_ops.VRM_OT_add_khr_xmp_json_ld_packet_dc_license,
232
+ khr_xmp_json_ld_ops.VRM_OT_remove_khr_xmp_json_ld_packet_dc_license,
233
+ khr_xmp_json_ld_ops.VRM_OT_move_up_khr_xmp_json_ld_packet_dc_license,
234
+ khr_xmp_json_ld_ops.VRM_OT_move_down_khr_xmp_json_ld_packet_dc_license,
235
+ khr_xmp_json_ld_ops.VRM_OT_add_khr_xmp_json_ld_packet_dc_subject,
236
+ khr_xmp_json_ld_ops.VRM_OT_remove_khr_xmp_json_ld_packet_dc_subject,
237
+ khr_xmp_json_ld_ops.VRM_OT_move_up_khr_xmp_json_ld_packet_dc_subject,
238
+ khr_xmp_json_ld_ops.VRM_OT_move_down_khr_xmp_json_ld_packet_dc_subject,
239
+ khr_xmp_json_ld_property_group.KhrXmpJsonLdKhrCharacterPacketPropertyGroup,
240
+ khr_xmp_json_ld_ui_list.VRM_UL_khr_xmp_json_ld_packet_dc_creator,
241
+ khr_xmp_json_ld_ui_list.VRM_UL_khr_xmp_json_ld_packet_dc_license,
242
+ khr_xmp_json_ld_ui_list.VRM_UL_khr_xmp_json_ld_packet_dc_subject,
243
+ khr_character_property_group.KhrCharacterPropertyGroup,
244
+ mtoon1_panel.VRM_PT_vrm_material_property,
245
+ panel.VRM_PT_current_selected_armature,
246
+ panel.VRM_PT_controller_unsupported_blender_version_warning,
247
+ panel.VRM_PT_controller,
248
+ panel.VRM_PT_vrm_armature_object_property,
249
+ vrm0_menu.VRM_MT_vrm0_blend_shape_master,
250
+ vrm0_menu.VRM_MT_vrm0_secondary_animation_group_collider_group,
251
+ spring_bone1_menu.VRM_MT_spring_bone1_spring_bones,
252
+ spring_bone1_menu.VRM_MT_spring_bone1_collider_group_collider,
253
+ spring_bone1_menu.VRM_MT_spring_bone1_spring_collider_group,
254
+ vrm0_ui_list.VRM_UL_vrm0_first_person_mesh_annotation,
255
+ vrm0_ui_list.VRM_UL_vrm0_blend_shape_bind,
256
+ vrm0_ui_list.VRM_UL_vrm0_blend_shape_group,
257
+ vrm0_ui_list.VRM_UL_vrm0_material_value_bind,
258
+ vrm0_ui_list.VRM_UL_vrm0_secondary_animation_collider_group,
259
+ vrm0_ui_list.VRM_UL_vrm0_secondary_animation_group,
260
+ vrm0_ui_list.VRM_UL_vrm0_secondary_animation_group_bone,
261
+ vrm0_ui_list.VRM_UL_vrm0_secondary_animation_group_collider_group,
262
+ vrm0_ui_list.VRM_UL_vrm0_secondary_animation_collider_group_collider,
263
+ khr_character_panel.VRM_PT_khr_character_armature_object_property,
264
+ khr_character_panel.VRM_PT_khr_character_ui,
265
+ vrm0_panel.VRM_PT_vrm0_meta_armature_object_property,
266
+ vrm0_panel.VRM_PT_vrm0_meta_ui,
267
+ vrm0_panel.VRM_PT_vrm0_humanoid_armature_object_property,
268
+ vrm0_panel.VRM_PT_vrm0_humanoid_ui,
269
+ vrm0_panel.VRM_PT_vrm0_blend_shape_master_armature_object_property,
270
+ vrm0_panel.VRM_PT_vrm0_blend_shape_master_ui,
271
+ vrm0_panel.VRM_PT_vrm0_first_person_armature_object_property,
272
+ vrm0_panel.VRM_PT_vrm0_first_person_ui,
273
+ vrm0_panel.VRM_PT_vrm0_secondary_animation_armature_object_property,
274
+ vrm0_panel.VRM_PT_vrm0_secondary_animation_ui,
275
+ vrm1_panel.VRM_PT_vrm1_meta_armature_object_property,
276
+ vrm1_panel.VRM_PT_vrm1_meta_ui,
277
+ vrm1_panel.VRM_PT_vrm1_humanoid_armature_object_property,
278
+ vrm1_panel.VRM_PT_vrm1_humanoid_ui,
279
+ vrm1_panel.VRM_PT_vrm1_first_person_armature_object_property,
280
+ vrm1_panel.VRM_PT_vrm1_first_person_ui,
281
+ vrm1_panel.VRM_PT_vrm1_look_at_armature_object_property,
282
+ vrm1_panel.VRM_PT_vrm1_look_at_ui,
283
+ vrm1_panel.VRM_PT_vrm1_expressions_armature_object_property,
284
+ vrm1_panel.VRM_PT_vrm1_expressions_ui,
285
+ node_constraint1_panel.VRM_PT_node_constraint1_armature_object_property,
286
+ node_constraint1_panel.VRM_PT_node_constraint1_ui,
287
+ spring_bone1_ui_list.VRM_UL_spring_bone1_collider,
288
+ spring_bone1_ui_list.VRM_UL_spring_bone1_collider_group,
289
+ spring_bone1_ui_list.VRM_UL_spring_bone1_collider_group_collider,
290
+ spring_bone1_ui_list.VRM_UL_spring_bone1_spring,
291
+ spring_bone1_ui_list.VRM_UL_spring_bone1_joint,
292
+ spring_bone1_ui_list.VRM_UL_spring_bone1_spring_collider_group,
293
+ spring_bone1_panel.VRM_PT_spring_bone1_armature_object_property,
294
+ spring_bone1_panel.VRM_PT_spring_bone1_ui,
295
+ spring_bone1_panel.VRM_PT_spring_bone1_collider_property,
296
+ vrm1_menu.VRM_MT_vrm1_expression,
297
+ vrm1_ui_list.VRM_UL_vrm1_meta_author,
298
+ vrm1_ui_list.VRM_UL_vrm1_meta_reference,
299
+ vrm1_ui_list.VRM_UL_vrm1_first_person_mesh_annotation,
300
+ vrm1_ui_list.VRM_UL_vrm1_expression,
301
+ vrm1_ui_list.VRM_UL_vrm1_morph_target_bind,
302
+ vrm1_ui_list.VRM_UL_vrm1_material_color_bind,
303
+ vrm1_ui_list.VRM_UL_vrm1_texture_transform_bind,
304
+ vrm0_ops.VRM_OT_add_vrm0_first_person_mesh_annotation,
305
+ vrm0_ops.VRM_OT_remove_vrm0_first_person_mesh_annotation,
306
+ vrm0_ops.VRM_OT_move_up_vrm0_first_person_mesh_annotation,
307
+ vrm0_ops.VRM_OT_move_down_vrm0_first_person_mesh_annotation,
308
+ vrm0_ops.VRM_OT_add_vrm0_material_value_bind,
309
+ vrm0_ops.VRM_OT_remove_vrm0_material_value_bind,
310
+ vrm0_ops.VRM_OT_move_up_vrm0_material_value_bind,
311
+ vrm0_ops.VRM_OT_move_down_vrm0_material_value_bind,
312
+ vrm0_ops.VRM_OT_add_vrm0_material_value_bind_target_value,
313
+ vrm0_ops.VRM_OT_remove_vrm0_material_value_bind_target_value,
314
+ vrm0_ops.VRM_OT_add_vrm0_blend_shape_group,
315
+ vrm0_ops.VRM_OT_remove_vrm0_blend_shape_group,
316
+ vrm0_ops.VRM_OT_move_up_vrm0_blend_shape_group,
317
+ vrm0_ops.VRM_OT_move_down_vrm0_blend_shape_group,
318
+ vrm0_ops.VRM_OT_add_vrm0_blend_shape_bind,
319
+ vrm0_ops.VRM_OT_remove_vrm0_blend_shape_bind,
320
+ vrm0_ops.VRM_OT_move_down_vrm0_blend_shape_bind,
321
+ vrm0_ops.VRM_OT_move_up_vrm0_blend_shape_bind,
322
+ vrm0_ops.VRM_OT_restore_vrm0_blend_shape_group_bind_object,
323
+ vrm0_ops.VRM_OT_add_vrm0_secondary_animation_collider_group_collider,
324
+ vrm0_ops.VRM_OT_remove_vrm0_secondary_animation_collider_group_collider,
325
+ vrm0_ops.VRM_OT_move_up_vrm0_secondary_animation_collider_group_collider,
326
+ vrm0_ops.VRM_OT_move_down_vrm0_secondary_animation_collider_group_collider,
327
+ vrm0_ops.VRM_OT_add_vrm0_secondary_animation_group_bone,
328
+ vrm0_ops.VRM_OT_remove_vrm0_secondary_animation_group_bone,
329
+ vrm0_ops.VRM_OT_move_up_vrm0_secondary_animation_group_bone,
330
+ vrm0_ops.VRM_OT_move_down_vrm0_secondary_animation_group_bone,
331
+ vrm0_ops.VRM_OT_add_vrm0_secondary_animation_group_collider_group,
332
+ vrm0_ops.VRM_OT_assign_vrm0_secondary_animation_group_collider_group,
333
+ vrm0_ops.VRM_OT_unassign_vrm0_secondary_animation_group_collider_group,
334
+ vrm0_ops.VRM_OT_remove_vrm0_secondary_animation_group_collider_group,
335
+ vrm0_ops.VRM_OT_move_up_vrm0_secondary_animation_group_collider_group,
336
+ vrm0_ops.VRM_OT_move_down_vrm0_secondary_animation_group_collider_group,
337
+ vrm0_ops.VRM_OT_add_vrm0_secondary_animation_group,
338
+ vrm0_ops.VRM_OT_remove_vrm0_secondary_animation_group,
339
+ vrm0_ops.VRM_OT_move_up_vrm0_secondary_animation_group,
340
+ vrm0_ops.VRM_OT_move_down_vrm0_secondary_animation_group,
341
+ vrm0_ops.VRM_OT_add_vrm0_secondary_animation_collider_group,
342
+ vrm0_ops.VRM_OT_remove_vrm0_secondary_animation_collider_group,
343
+ vrm0_ops.VRM_OT_move_up_vrm0_secondary_animation_collider_group,
344
+ vrm0_ops.VRM_OT_move_down_vrm0_secondary_animation_collider_group,
345
+ vrm0_ops.VRM_OT_assign_vrm0_humanoid_human_bones_automatically,
346
+ vrm0_ops.VRM_OT_show_vrm0_bone_assignment_diagnostics,
347
+ vrm1_ops.VRM_OT_add_vrm1_meta_author,
348
+ vrm1_ops.VRM_OT_remove_vrm1_meta_author,
349
+ vrm1_ops.VRM_OT_move_up_vrm1_meta_author,
350
+ vrm1_ops.VRM_OT_move_down_vrm1_meta_author,
351
+ vrm1_ops.VRM_OT_add_vrm1_meta_reference,
352
+ vrm1_ops.VRM_OT_remove_vrm1_meta_reference,
353
+ vrm1_ops.VRM_OT_move_up_vrm1_meta_reference,
354
+ vrm1_ops.VRM_OT_move_down_vrm1_meta_reference,
355
+ vrm1_ops.VRM_OT_add_vrm1_expressions_custom_expression,
356
+ vrm1_ops.VRM_OT_remove_vrm1_expressions_custom_expression,
357
+ vrm1_ops.VRM_OT_move_up_vrm1_expressions_custom_expression,
358
+ vrm1_ops.VRM_OT_move_down_vrm1_expressions_custom_expression,
359
+ vrm1_ops.VRM_OT_add_vrm1_expression_morph_target_bind,
360
+ vrm1_ops.VRM_OT_remove_vrm1_expression_morph_target_bind,
361
+ vrm1_ops.VRM_OT_move_up_vrm1_expression_morph_target_bind,
362
+ vrm1_ops.VRM_OT_move_down_vrm1_expression_morph_target_bind,
363
+ vrm1_ops.VRM_OT_restore_vrm1_expression_morph_target_bind_object,
364
+ vrm1_ops.VRM_OT_assign_vrm1_expressions_from_mmd,
365
+ vrm1_ops.VRM_OT_assign_vrm1_expressions_from_ready_player_me,
366
+ vrm1_ops.VRM_OT_assign_vrm1_expressions_from_vrchat,
367
+ vrm1_ops.VRM_OT_assign_vrm1_expressions_from_arkit,
368
+ vrm1_ops.VRM_OT_assign_vrm1_expressions_from_vrm0,
369
+ vrm1_ops.VRM_OT_assign_vrm1_expressions_automatically,
370
+ vrm1_ops.VRM_OT_add_vrm1_expression_material_color_bind,
371
+ vrm1_ops.VRM_OT_remove_vrm1_expression_material_color_bind,
372
+ vrm1_ops.VRM_OT_move_up_vrm1_expression_material_color_bind,
373
+ vrm1_ops.VRM_OT_move_down_vrm1_expression_material_color_bind,
374
+ vrm1_ops.VRM_OT_add_vrm1_expression_texture_transform_bind,
375
+ vrm1_ops.VRM_OT_remove_vrm1_expression_texture_transform_bind,
376
+ vrm1_ops.VRM_OT_move_up_vrm1_expression_texture_transform_bind,
377
+ vrm1_ops.VRM_OT_move_down_vrm1_expression_texture_transform_bind,
378
+ vrm1_ops.VRM_OT_add_vrm1_first_person_mesh_annotation,
379
+ vrm1_ops.VRM_OT_remove_vrm1_first_person_mesh_annotation,
380
+ vrm1_ops.VRM_OT_move_up_vrm1_first_person_mesh_annotation,
381
+ vrm1_ops.VRM_OT_move_down_vrm1_first_person_mesh_annotation,
382
+ vrm1_ops.VRM_OT_assign_vrm1_humanoid_human_bones_automatically,
383
+ vrm1_ops.VRM_OT_update_vrm1_expression_ui_list_elements,
384
+ vrm1_ops.VRM_OT_refresh_vrm1_expression_texture_transform_bind_preview,
385
+ vrm1_ops.VRM_OT_show_vrm1_bone_assignment_diagnostics,
386
+ spring_bone1_ops.VRM_OT_add_spring_bone1_collider,
387
+ spring_bone1_ops.VRM_OT_remove_spring_bone1_collider,
388
+ spring_bone1_ops.VRM_OT_move_up_spring_bone1_collider,
389
+ spring_bone1_ops.VRM_OT_move_down_spring_bone1_collider,
390
+ spring_bone1_ops.VRM_OT_add_spring_bone1_collider_group,
391
+ spring_bone1_ops.VRM_OT_remove_spring_bone1_collider_group,
392
+ spring_bone1_ops.VRM_OT_move_up_spring_bone1_collider_group,
393
+ spring_bone1_ops.VRM_OT_move_down_spring_bone1_collider_group,
394
+ spring_bone1_ops.VRM_OT_add_spring_bone1_collider_group_collider,
395
+ spring_bone1_ops.VRM_OT_assign_spring_bone1_collider_group_collider,
396
+ spring_bone1_ops.VRM_OT_unassign_spring_bone1_collider_group_collider,
397
+ spring_bone1_ops.VRM_OT_remove_spring_bone1_collider_group_collider,
398
+ spring_bone1_ops.VRM_OT_move_up_spring_bone1_collider_group_collider,
399
+ spring_bone1_ops.VRM_OT_move_down_spring_bone1_collider_group_collider,
400
+ spring_bone1_ops.VRM_OT_add_spring_bone1_spring,
401
+ spring_bone1_ops.VRM_OT_remove_spring_bone1_spring,
402
+ spring_bone1_ops.VRM_OT_move_up_spring_bone1_spring,
403
+ spring_bone1_ops.VRM_OT_move_down_spring_bone1_spring,
404
+ spring_bone1_ops.VRM_OT_add_spring_bone1_spring_collider_group,
405
+ spring_bone1_ops.VRM_OT_assign_spring_bone1_spring_collider_group,
406
+ spring_bone1_ops.VRM_OT_unassign_spring_bone1_spring_collider_group,
407
+ spring_bone1_ops.VRM_OT_remove_spring_bone1_spring_collider_group,
408
+ spring_bone1_ops.VRM_OT_move_up_spring_bone1_spring_collider_group,
409
+ spring_bone1_ops.VRM_OT_move_down_spring_bone1_spring_collider_group,
410
+ spring_bone1_ops.VRM_OT_add_spring_bone1_joint,
411
+ spring_bone1_ops.VRM_OT_remove_spring_bone1_joint,
412
+ spring_bone1_ops.VRM_OT_move_up_spring_bone1_joint,
413
+ spring_bone1_ops.VRM_OT_move_down_spring_bone1_joint,
414
+ spring_bone1_ops.VRM_OT_reset_spring_bone1_animation_state,
415
+ spring_bone1_ops.VRM_OT_update_spring_bone1_animation,
416
+ spring_bone1_ops.VRM_OT_assign_spring_bone1_from_vrm0,
417
+ spring_bone1_ops.VRM_OT_assign_spring_bone1_from_mmd,
418
+ spring_bone1_ops.VRM_OT_assign_spring_bone1_automatically,
419
+ mtoon1_ops.VRM_OT_convert_material_to_mtoon1,
420
+ mtoon1_ops.VRM_OT_convert_mtoon1_to_bsdf_principled,
421
+ mtoon1_ops.VRM_OT_reset_mtoon1_material_shader_node_tree,
422
+ mtoon1_ops.VRM_OT_import_mtoon1_texture_image_file,
423
+ mtoon1_ops.VRM_OT_refresh_mtoon1_outline,
424
+ mtoon1_ops.VRM_OT_show_material_blender_4_2_warning,
425
+ make_armature.ICYP_OT_make_armature,
426
+ ops.VRM_OT_simplify_vroid_bones,
427
+ ops.VRM_OT_open_url_in_web_browser,
428
+ ops.VRM_OT_save_human_bone_mappings,
429
+ ops.VRM_OT_load_human_bone_mappings,
430
+ ops.VRM_OT_show_blend_file_compatibility_warning,
431
+ ops.VRM_OT_show_blend_file_addon_compatibility_warning,
432
+ ops.VRM_OT_apply_humanoid_t_pose,
433
+ ops.VRM_OT_make_estimated_humanoid_t_pose,
434
+ ops.VRM_OT_assign_bone_to_bone_property_group,
435
+ ops.VRM_OT_unassign_bone_to_bone_property_group,
436
+ menu.VRM_MT_bone_assignment,
437
+ validation.VrmValidationError,
438
+ validation.WM_OT_vrm_validator,
439
+ export_scene.WM_OT_vrm_export_human_bones_assignment,
440
+ export_scene.WM_OT_vrm_export_confirmation,
441
+ export_scene.WM_OT_vrm_export_armature_selection,
442
+ export_scene.WM_OT_vrma_export_prerequisite,
443
+ export_scene.VRM_PT_export_file_browser_tool_props,
444
+ export_scene.EXPORT_SCENE_OT_vrm,
445
+ export_scene.EXPORT_SCENE_OT_vrma,
446
+ export_scene.VRM_PT_export_vrma_help,
447
+ error_dialog.VrmErrorDialogMessageLine,
448
+ error_dialog.VRM_UL_vrm_error_dialog_message,
449
+ error_dialog.VRM_OT_save_error_dialog_message,
450
+ error_dialog.WM_OT_vrm_error_dialog,
451
+ import_scene.LicenseConfirmation,
452
+ import_scene.WM_OT_vrm_license_confirmation,
453
+ import_scene.WM_OT_vrma_import_prerequisite,
454
+ import_scene.VRM_PT_import_file_browser_tool_props,
455
+ import_scene.IMPORT_SCENE_OT_vrm,
456
+ import_scene.IMPORT_SCENE_OT_vrma,
457
+ import_scene.VRM_PT_import_unsupported_blender_version_warning,
458
+ import_scene.VRM_OT_import_vrm_via_file_handler,
459
+ import_scene.VRM_OT_import_vrma_via_file_handler,
460
+ preferences.VrmAddonPreferences,
461
+ extension.VrmAddonArmatureExtensionPropertyGroup,
462
+ extension.VrmAddonBoneExtensionPropertyGroup,
463
+ extension.VrmAddonSceneExtensionPropertyGroup,
464
+ extension.VrmAddonMaterialExtensionPropertyGroup,
465
+ extension.VrmAddonObjectExtensionPropertyGroup,
466
+ extension.VrmAddonNodeTreeExtensionPropertyGroup,
467
+ ]
468
+ if bpy.app.version >= (4, 1):
469
+ from .importer import file_handler
470
+
471
+ CLASSES.extend(
472
+ [
473
+ file_handler.VRM_FH_vrm_import,
474
+ file_handler.VRM_FH_vrma_import,
475
+ ]
476
+ )
477
+
478
+
479
+ def register() -> None:
480
+ name = ".".join(__name__.split(".")[:-1])
481
+ _logger.debug("Registering: %s", name)
482
+
483
+ clear_global_variables()
484
+
485
+ bpy.app.translations.register(
486
+ preferences.ADDON_PACKAGE_NAME,
487
+ build_translation_dictionary(),
488
+ )
489
+
490
+ for cls in CLASSES:
491
+ bpy.utils.register_class(cls)
492
+
493
+ NodeTree.vrm_addon_extension = PointerProperty( # type: ignore[attr-defined, assignment, unused-ignore]
494
+ type=extension.VrmAddonNodeTreeExtensionPropertyGroup
495
+ )
496
+
497
+ Material.vrm_addon_extension = PointerProperty( # type: ignore[attr-defined, assignment, unused-ignore]
498
+ type=extension.VrmAddonMaterialExtensionPropertyGroup
499
+ )
500
+
501
+ Scene.vrm_addon_extension = PointerProperty( # type: ignore[attr-defined, assignment, unused-ignore]
502
+ type=extension.VrmAddonSceneExtensionPropertyGroup
503
+ )
504
+
505
+ Bone.vrm_addon_extension = PointerProperty( # type: ignore[attr-defined, assignment, unused-ignore]
506
+ type=extension.VrmAddonBoneExtensionPropertyGroup
507
+ )
508
+
509
+ Armature.vrm_addon_extension = PointerProperty( # type: ignore[attr-defined, assignment, unused-ignore]
510
+ type=extension.VrmAddonArmatureExtensionPropertyGroup
511
+ )
512
+
513
+ Object.vrm_addon_extension = PointerProperty( # type: ignore[attr-defined, assignment, unused-ignore]
514
+ type=extension.VrmAddonObjectExtensionPropertyGroup
515
+ )
516
+
517
+ TOPBAR_MT_file_import.append(import_scene.menu_import)
518
+ TOPBAR_MT_file_export.append(export_scene.menu_export)
519
+ VIEW3D_MT_armature_add.append(panel.add_armature)
520
+ # VIEW3D_MT_mesh_add.append(panel.make_mesh)
521
+
522
+ bpy.app.handlers.load_pre.append(load_pre)
523
+ bpy.app.handlers.load_post.append(writable_context.load_post)
524
+ bpy.app.handlers.depsgraph_update_pre.append(depsgraph_update_pre)
525
+ bpy.app.handlers.depsgraph_update_pre.append(writable_context.depsgraph_update_pre)
526
+ bpy.app.handlers.depsgraph_update_post.append(vrm1_handler.depsgraph_update_post)
527
+ bpy.app.handlers.depsgraph_update_post.append(mtoon1_handler.depsgraph_update_post)
528
+ bpy.app.handlers.depsgraph_update_post.append(handler.depsgraph_update_post)
529
+ bpy.app.handlers.save_pre.append(save_pre)
530
+ bpy.app.handlers.save_pre.append(scene_watcher.save_pre)
531
+ bpy.app.handlers.save_pre.append(vrm0_handler.save_pre)
532
+ bpy.app.handlers.save_pre.append(spring_bone1_handler.save_pre)
533
+ bpy.app.handlers.frame_change_pre.append(spring_bone1_handler.frame_change_pre)
534
+ bpy.app.handlers.frame_change_pre.append(animation.frame_change_pre)
535
+ bpy.app.handlers.frame_change_post.append(vrm0_handler.frame_change_post)
536
+ bpy.app.handlers.frame_change_post.append(vrm1_handler.frame_change_post)
537
+ bpy.app.handlers.frame_change_post.append(animation.frame_change_post)
538
+ bpy.app.handlers.depsgraph_update_pre.append(
539
+ spring_bone1_handler.depsgraph_update_pre
540
+ )
541
+ if bpy.app.version >= (3, 6) and bpy.app.binary_path:
542
+ bpy.app.handlers.animation_playback_pre.append(animation.animation_playback_pre)
543
+ bpy.app.handlers.animation_playback_post.append(
544
+ animation.animation_playback_post
545
+ )
546
+ writable_context.register_writable_context_becomes_available_once_handler(
547
+ setup_once_when_writable_context_becomes_available,
548
+ )
549
+ if not bpy.app.timers.is_registered(scene_watcher.process_scene_watcher_scheduler):
550
+ bpy.app.timers.register(
551
+ scene_watcher.process_scene_watcher_scheduler,
552
+ first_interval=scene_watcher.SceneWatcherScheduler.INTERVAL,
553
+ persistent=True,
554
+ )
555
+
556
+ io_scene_gltf2_support.init_extras_export()
557
+
558
+ _logger.debug("Registered: %s", name)
559
+
560
+
561
+ def unregister() -> None:
562
+ subscription.teardown_subscription()
563
+
564
+ if bpy.app.timers.is_registered(scene_watcher.process_scene_watcher_scheduler):
565
+ bpy.app.timers.unregister(scene_watcher.process_scene_watcher_scheduler)
566
+ writable_context.clear_writable_context_becomes_available_once_handlers()
567
+ if bpy.app.version >= (3, 6) and bpy.app.binary_path:
568
+ bpy.app.handlers.animation_playback_post.remove(
569
+ animation.animation_playback_post
570
+ )
571
+ bpy.app.handlers.animation_playback_pre.remove(animation.animation_playback_pre)
572
+ bpy.app.handlers.depsgraph_update_pre.remove(
573
+ spring_bone1_handler.depsgraph_update_pre
574
+ )
575
+ bpy.app.handlers.frame_change_post.remove(animation.frame_change_post)
576
+ bpy.app.handlers.frame_change_post.remove(vrm1_handler.frame_change_post)
577
+ bpy.app.handlers.frame_change_post.remove(vrm0_handler.frame_change_post)
578
+ bpy.app.handlers.frame_change_pre.remove(animation.frame_change_pre)
579
+ bpy.app.handlers.frame_change_pre.remove(spring_bone1_handler.frame_change_pre)
580
+ bpy.app.handlers.save_pre.remove(spring_bone1_handler.save_pre)
581
+ bpy.app.handlers.save_pre.remove(vrm0_handler.save_pre)
582
+ bpy.app.handlers.save_pre.remove(scene_watcher.save_pre)
583
+ bpy.app.handlers.save_pre.remove(save_pre)
584
+ bpy.app.handlers.depsgraph_update_post.remove(handler.depsgraph_update_post)
585
+ bpy.app.handlers.depsgraph_update_post.remove(mtoon1_handler.depsgraph_update_post)
586
+ bpy.app.handlers.depsgraph_update_post.remove(vrm1_handler.depsgraph_update_post)
587
+ bpy.app.handlers.depsgraph_update_pre.remove(writable_context.depsgraph_update_pre)
588
+ bpy.app.handlers.depsgraph_update_pre.remove(depsgraph_update_pre)
589
+ bpy.app.handlers.load_post.remove(writable_context.load_post)
590
+ bpy.app.handlers.load_pre.remove(load_pre)
591
+
592
+ # VIEW3D_MT_mesh_add.remove(panel.make_mesh)
593
+ VIEW3D_MT_armature_add.remove(panel.add_armature)
594
+ TOPBAR_MT_file_export.remove(export_scene.menu_export)
595
+ TOPBAR_MT_file_import.remove(import_scene.menu_import)
596
+
597
+ if hasattr(Object, "vrm_addon_extension"):
598
+ del Object.vrm_addon_extension # pyright: ignore [reportAttributeAccessIssue]
599
+
600
+ if hasattr(Armature, "vrm_addon_extension"):
601
+ del Armature.vrm_addon_extension # pyright: ignore [reportAttributeAccessIssue]
602
+
603
+ if hasattr(Bone, "vrm_addon_extension"):
604
+ del Bone.vrm_addon_extension # pyright: ignore [reportAttributeAccessIssue]
605
+
606
+ if hasattr(Scene, "vrm_addon_extension"):
607
+ del Scene.vrm_addon_extension # pyright: ignore [reportAttributeAccessIssue]
608
+
609
+ if hasattr(Material, "vrm_addon_extension"):
610
+ del Material.vrm_addon_extension # pyright: ignore [reportAttributeAccessIssue]
611
+
612
+ if hasattr(NodeTree, "vrm_addon_extension"):
613
+ del NodeTree.vrm_addon_extension # pyright: ignore [reportAttributeAccessIssue]
614
+
615
+ for cls in reversed(CLASSES):
616
+ try:
617
+ bpy.utils.unregister_class(cls)
618
+ except RuntimeError:
619
+ _logger.exception("Failed to unregister %s", cls)
620
+
621
+ bpy.app.translations.unregister(preferences.ADDON_PACKAGE_NAME)
622
+
623
+ clear_global_variables()
624
+
625
+
626
+ @persistent
627
+ def load_pre(_unused: object) -> None:
628
+ clear_global_variables()
629
+
630
+
631
+ @persistent
632
+ def depsgraph_update_pre(_unused: object) -> None:
633
+ trigger_clear_addon_version_cache()
634
+
635
+
636
+ @persistent
637
+ def save_pre(_unused: object) -> None:
638
+ # Apply pending changes before saving.
639
+ context = bpy.context
640
+ writable_context.trigger_writable_context_becomes_available_once_handlers(
641
+ context, load_post=False
642
+ )
643
+ migration.migrate_all_objects(context, heavy_migration=False)
644
+ property_group.clear_expression_material_binds(context)
645
+
646
+
647
+ def setup_once_when_writable_context_becomes_available(
648
+ context: Context, *, load_post: bool
649
+ ) -> None:
650
+ """Execute setup process when a writable Context becomes available."""
651
+ if preferences.get_preferences(context).add_mtoon_shader_node_group:
652
+ shader.add_mtoon1_auto_setup_shader_node_group(context)
653
+ migration.migrate_all_objects(context, heavy_migration=False)
654
+ mtoon1_property_group.setup_drivers(context)
655
+ subscription.setup_subscription(load_post=load_post)
656
+ spring_bone1_handler.reset_state(context)
657
+
658
+
659
+ def clear_global_variables() -> None:
660
+ """Clear Python global variables.
661
+
662
+ This function is called from register() or load_pre().
663
+ """
664
+ animation.clear_global_variables()
665
+ vrm0_property_group.clear_global_variables()
666
+ vrm1_property_group.clear_global_variables()
667
+ property_group.clear_global_variables()
668
+ mtoon1_migration.clear_global_variables()
669
+ migration.clear_global_variables()
670
+ handler.clear_global_variables()