ADD : 손가락 부분 패치에 대한 최종 업데이트

This commit is contained in:
qsxft258@gmail.com 2025-08-23 16:19:00 +09:00
parent c73c7cbc18
commit d5d49646b3
30 changed files with 61 additions and 99 deletions

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d7e80e79f110af44c95b17bc11762592
guid: 73d4a8dc0aa5b6842a036f37e8860f22
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 191d5747ce8e22749b2691c7385616f6
guid: 34982e5ce57f06a4cbb8b89501912ba0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9000000

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: aac5250f47cbb7c4a967a280a7ef2c4a
guid: b7436ec45c8c84b42bbce12956436aea
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a77c04dec91d4324193a3a329397cf51
guid: 4ab9ad549aa3f794fbf1a29bd85e49e5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: eb64695156baff044a0165e5cabb739e
guid: ddf18d7b86f54bb418d5719779288ae9
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ab9bef40b7844734aa03a25a4c78d600
guid: 42bea6899126190478c2ff01c16e6d6d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 6f705ffb70fa1a140bf73185aef44529
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4b1499ea416adce4daaed7b0b3b2b001
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 9a46274a4e01e9d45bc0a3f2c25d5d02
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f5c6e42d92f8225488a96dfaf88b9051
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: d1094b1299f0ba44b9f618231c354db5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 23aa04f3a9d0bb84bba05888737ec16e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e40a686a525bda34ebf267268d8b2616
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c470e4106f9329048b690874ec8ef603
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 77ff24cd2db25c6499f961f926230775
guid: ecb211056d7c61047aa8380b0b541a81
PrefabImporter:
externalObjects: {}
userData:

View File

@ -21,7 +21,7 @@ public class OptitrackSkeletonAnimator_Mingle : MonoBehaviour
[Tooltip("Motive의 스켈레톤 에셋 이름")]
public string SkeletonAssetName = "Skeleton1";
public Animator TargetAnimator;
private Animator TargetAnimator;
[Header("모션 적용 범위")]
[Tooltip("모션 캡처 데이터를 적용할 범위 선택")]
@ -40,6 +40,8 @@ public class OptitrackSkeletonAnimator_Mingle : MonoBehaviour
void Start()
{
TargetAnimator = GetComponent<Animator>();
InitializeStreamingClient();
// StreamingClient 등록 추가

View File

@ -9,6 +9,8 @@ namespace UniHumanoid
public const string IPoseResourcePath = "UniHumanoid/I-Pose.pose";
public const string SourceTPoseResourcePath = "UniHumanoid/Source-T-Pose.pose";
public Vector3 bodyPosition;
public Quaternion bodyRotation;

BIN
Assets/Resources/UniHumanoid/Source-T-Pose.pose.asset (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,8 +1,8 @@
fileFormatVersion: 2
guid: 3c4b192ca3a426b48819a1106d1d927b
guid: baa07033c4400034ca2e6572a7b9b098
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9000000
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -168,7 +168,7 @@ namespace KindRetargeting
CreateIKTargets();
// 원본 및 대상 아바타를 T-포즈로 복원
SetTPose(sourceAnimator);
SetSourceTPose(sourceAnimator);
SetTPose(targetAnimator);
// HumanPoseHandler 초기화
@ -197,7 +197,7 @@ namespace KindRetargeting
// 크기 조정 대상 오브젝트 캐싱
CacheScalableObjects();
previousScale = avatarScale;
ApplyScale();
@ -412,7 +412,7 @@ namespace KindRetargeting
avatarScale = settings.avatarScale;
previousScale = avatarScale;
//너무 자주 출력되어서 주석처리
//Debug.Log($"설정을 로드했습니다: {filePath}");
@ -975,6 +975,37 @@ namespace KindRetargeting
}
}
public void SetSourceTPose(Animator animator)
{
if (animator == null || animator.avatar == null)
return;
Avatar avatar = animator.avatar;
Transform transform = animator.transform;
// HumanPoseClip에 저장된 T-포즈 데이터를 로드하여 적용
var humanPoseClip = Resources.Load<HumanPoseClip>(HumanPoseClip.SourceTPoseResourcePath);
if (humanPoseClip != null)
{
var pose = humanPoseClip.GetPose();
HumanPoseTransfer.SetPose(avatar, transform, pose);
// 소스 아바타의 UpperChest 본 로컬 포지션 초기화
if (animator == sourceAnimator)
{
Transform upperChest = animator.GetBoneTransform(HumanBodyBones.UpperChest);
if (upperChest != null)
{
upperChest.localPosition = Vector3.zero;
}
}
}
else
{
Debug.LogWarning("T-Pose 데이터가 존재하지 않습니다.");
}
}
public static void SetIPose(Animator animator)
{
if (animator == null || animator.avatar == null)
@ -1067,6 +1098,7 @@ namespace KindRetargeting
// T-포즈로 복원
SetTPose(sourceAnimator);
SetTPose(targetAnimator);
// 소스 아바타의 UpperChest 본 로컬 포지션 초기화