Skip to content
This repository has been archived by the owner on May 30, 2024. It is now read-only.

Commit

Permalink
A few VRM fixes. Speed up import using uncompressed instead of basis.
Browse files Browse the repository at this point in the history
  • Loading branch information
lyuma committed Sep 20, 2023
1 parent 1ef3d2e commit 199d327
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 18 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@

# 3D models
**/*.glb
**/*.glb.import
**/*.vrm
**/*.vrm.import

2 changes: 1 addition & 1 deletion screens/context.gd
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func _init(p_runner_data: RunnerData) -> void:

var gltf := GLTFDocument.new()
var state := GLTFState.new()
state.handle_binary_image = GLTFState.HANDLE_BINARY_EMBED_AS_BASISU
state.handle_binary_image = GLTFState.HANDLE_BINARY_EMBED_AS_UNCOMPRESSED

var err := gltf.append_from_file(model_path, state)
if err != OK:
Expand Down
38 changes: 26 additions & 12 deletions screens/runners/runner_3d.gd
Original file line number Diff line number Diff line change
Expand Up @@ -58,34 +58,48 @@ func _setup_vrm(model: VrmPuppet) -> Error:
add_child(armature_targets)

if ik_targets.head != null:
armature_targets.add_child(ik_targets.head)
var marker_offset = Marker3D.new()
marker_offset.name = "HeadAdjust"
armature_targets.add_child(marker_offset)
marker_offset.add_child(ik_targets.head)
ren_ik.armature_head_target = ik_targets.head.get_path()
if ik_targets.left_hand != null:
var target := ik_targets.left_hand
armature_targets.add_child(target)
target.position.y = 0
target.rotation_degrees.x = 164

ik_targets.left_hand_starting_transform = target.transform

ren_ik.armature_left_hand_target = ik_targets.left_hand.get_path()
var marker_offset = Marker3D.new()
marker_offset.name = "LeftHandAdjust"
armature_targets.add_child(marker_offset)
marker_offset.add_child(target)
ren_ik.armature_left_hand_target = target.get_path()
if ik_targets.right_hand != null:
var target := ik_targets.right_hand
armature_targets.add_child(ik_targets.right_hand)
target.position.y = 0
target.rotation_degrees.x = 164

ik_targets.right_hand_starting_transform = target.transform

ren_ik.armature_right_hand_target = ik_targets.right_hand.get_path()
var marker_offset = Marker3D.new()
marker_offset.name = "RightHandAdjust"
armature_targets.add_child(marker_offset)
marker_offset.add_child(target)
ren_ik.armature_right_hand_target = target.get_path()
if ik_targets.hips != null:
armature_targets.add_child(ik_targets.hips)
var marker_offset = Marker3D.new()
marker_offset.name = "HipsAdjust"
armature_targets.add_child(marker_offset)
marker_offset.add_child(ik_targets.hips)
ren_ik.armature_hip_target = ik_targets.hips.get_path()
if ik_targets.left_foot != null:
armature_targets.add_child(ik_targets.left_foot)
var marker_offset = Marker3D.new()
marker_offset.name = "LeftFootAdjust"
armature_targets.add_child(marker_offset)
marker_offset.add_child(ik_targets.left_foot)
ren_ik.armature_left_foot_target = ik_targets.left_foot.get_path()
if ik_targets.right_foot != null:
armature_targets.add_child(ik_targets.right_foot)
var marker_offset = Marker3D.new()
marker_offset.name = "RightFootAdjust"
armature_targets.add_child(marker_offset)
marker_offset.add_child(ik_targets.right_foot)
ren_ik.armature_right_foot_target = ik_targets.right_foot.get_path()

add_child(ren_ik)
Expand Down
12 changes: 7 additions & 5 deletions screens/splash.gd
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,14 @@ func _ready() -> void:
if AM.metadata.scan("user://") != OK:
_logger.error("Failed to complete scanning of user data directory")

# true argument is required to ensure extensions run before the
# built-in GLTFDocumentExtensionConvertImporterMesh extension used at runtime.
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/vrm_extension.gd").new(), true)
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_materials_hdr_emissiveMultiplier.gd").new())
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_materials_mtoon.gd").new())
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_node_constraint.gd").new())
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_springBone.gd").new())
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_vrm.gd").new())
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_materials_mtoon.gd").new(), true)
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_materials_hdr_emissiveMultiplier.gd").new(), true)
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_node_constraint.gd").new(), true)
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_springBone.gd").new(), true)
GLTFDocument.register_gltf_document_extension(preload("res://addons/vrm/1.0/VRMC_vrm.gd").new(), true)
)

_logger.debug("Splash ready!")
Expand Down

0 comments on commit 199d327

Please sign in to comment.