diff --git a/.gitignore b/.gitignore index 1c9f435d..1ce9208e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,7 @@ # 3D models **/*.glb +**/*.glb.import **/*.vrm +**/*.vrm.import diff --git a/addons/renik/renik.gd b/addons/renik/renik.gd index ac551b8b..597757cf 100644 --- a/addons/renik/renik.gd +++ b/addons/renik/renik.gd @@ -35,11 +35,11 @@ const DEFAULT_THRESHOLD: float = 0.0005 const DEFAULT_LOOP_LIMIT: int = 16 var spine_chain: renik_chain_class = renik_chain_class.new(Vector3(0, 15, -15), 0.5, 0.5, 1, 0) -var limb_arm_left: renik_limb_class = renik_limb_class.new(-0.27777*PI, -0.27777*PI, deg_to_rad(70.0), 0.5, 0.66666, +var limb_arm_left: renik_limb_class = renik_limb_class.new(-0.27777*PI, -0.27777*PI, deg_to_rad(-70.0), 0.5, 0.66666, deg_to_rad(20.0), deg_to_rad(45.0), 0.33, Vector3(deg_to_rad(15.0), 0, deg_to_rad(60.0)), Vector3(2.0, -1.5, -1.0)) -var limb_arm_right: renik_limb_class = renik_limb_class.new(0.27777*PI, 0.27777*PI, deg_to_rad(-70.0), 0.5, 0.66666, +var limb_arm_right: renik_limb_class = renik_limb_class.new(0.27777*PI, 0.27777*PI, deg_to_rad(70.0), 0.5, 0.66666, deg_to_rad(-20.0), deg_to_rad(45.0), 0.33, Vector3(deg_to_rad(15.0), 0, deg_to_rad(-60.0)), Vector3(2.0, 1.5, 1.0)) diff --git a/gui/tracking/i_facial_mocap.tscn b/gui/tracking/i_facial_mocap.tscn index b3188882..cadb0496 100644 --- a/gui/tracking/i_facial_mocap.tscn +++ b/gui/tracking/i_facial_mocap.tscn @@ -30,6 +30,7 @@ text = "Connect Port" unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 +text = "49983" [node name="Start" type="Button" parent="."] unique_name_in_owner = true diff --git a/screens/context.gd b/screens/context.gd index 5d007534..ce5e9683 100644 --- a/screens/context.gd +++ b/screens/context.gd @@ -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: diff --git a/screens/runners/runner_3d.gd b/screens/runners/runner_3d.gd index 51dbc162..816ee683 100644 --- a/screens/runners/runner_3d.gd +++ b/screens/runners/runner_3d.gd @@ -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) diff --git a/screens/splash.gd b/screens/splash.gd index 3c4daf51..01b7eba0 100644 --- a/screens/splash.gd +++ b/screens/splash.gd @@ -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!") diff --git a/setup.sh b/setup.sh index fb99925a..4c264ab2 100644 --- a/setup.sh +++ b/setup.sh @@ -6,7 +6,11 @@ echo "Updating git submodules" git submodule update --init --recursive --remote echo "Building rust lib" +mv libvpuppr/target/debug/deps/libvpuppr.dll libvpuppr/target/debug/deps/libvpuppr.dll.bak || true +mv libvpuppr/target/debug/libvpuppr.dll libvpuppr/target/debug/libvpuppr.dll.bak || true python libvpuppr/build.py --debug +rm -f libvpuppr/target/debug/deps/libvpuppr.dll.bak || true +rm -f libvpuppr/target/debug/libvpuppr.dll.bak || true echo "Copying gdextension files" cp libvpuppr/libvpuppr.gdextension .