Skip to content

fix: 회전 리타게팅 수식 추가 (바인드 포즈 보정)#198

Merged
yyuneu merged 1 commit into
developfrom
fix/anim-rotation-retarget
Jun 4, 2026
Merged

fix: 회전 리타게팅 수식 추가 (바인드 포즈 보정)#198
yyuneu merged 1 commit into
developfrom
fix/anim-rotation-retarget

Conversation

@yyuneu

@yyuneu yyuneu commented Jun 4, 2026

Copy link
Copy Markdown
Member

Summary

  • Mixamo "Without Skin" GLB와 Tripo 스켈레톤의 바인드 포즈 불일치로 애니메이션 적용 시 캐릭터가 뒤틀리던 문제를 수정 했습니다.
  • 회전 리타게팅 수식(dstBindRot × inv(srcBindRot) × srcAnimRot) 적용으로 두 스켈레톤 간 로컬 좌표계를 보정 했습니다.

Tasks

  • quatInvert, quatMultiply 헬퍼 함수 추가
  • rotation 채널에 바인드 포즈 델타 보정 적용
  • 기존 66채널 매핑·v4 API 호환 코드 유지

To Reviewer

  • translation/scale 채널은 그대로 복사 (Unity boneRestPose 잠금으로 처리됨)

Screenshot

Summary by CodeRabbit

변경 사항

  • 개선 사항
    • 애니메이션 채널 이식 시 회전 값 보정 기능이 개선되었습니다. 서로 다른 모델 간의 애니메이션 호환성이 향상되고 회전 데이터의 정확도가 높아집니다.

@yyuneu yyuneu merged commit d1b6d21 into develop Jun 4, 2026
1 of 2 checks passed
@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 702f5923-bfbf-4f35-81fc-d6ffed7c3594

📥 Commits

Reviewing files that changed from the base of the PR and between c4dd5c5 and 215cd8b.

📒 Files selected for processing (1)
  • mesh-processor/src/combiner.js

산책

이 PR은 mesh-processor의 combine 함수에서 애니메이션 rotation 채널에 대해 바인드 포즈 기반의 리타게팅을 적용합니다. 쿼터니언 역연산/곱셈 유틸이 추가되고, 소스 바인드 포즈를 역으로 제거한 후 대상 바인드 포즈를 적용하여 회전값을 재계산합니다.

변경 사항

회전 채널 바인드 포즈 리타게팅

계층 / 파일 설명
쿼터니언 유틸리티 함수
mesh-processor/src/combiner.js
quatInvertquatMultiply 헬퍼 함수를 추가하여 쿼터니언 배열 단위의 역연산과 곱셈 연산을 제공함.
리타게팅 계산 방식 문서화
mesh-processor/src/combiner.js
combine 함수의 JSDoc에 rotation 채널 리타게팅 수식 dstBindRot × inv(srcBindRot) × srcAnimRot과 계산 방식을 명시함.
리타게팅 로직 구현 및 출력 통합
mesh-processor/src/combiner.js
rotation 타깃 채널 판정 후 각 프레임을 바인드 포즈 기준으로 재계산하여 outputArray를 교체하고, 이를 newChannel 생성과 newOutput 배열 설정에 반영함.

예상 코드 리뷰 노력

🎯 3 (중간 난이도) | ⏱️ ~20분

시 🐰

쿼터니언 곱셈 재주 넘어
바인드 포즈 보정 춤을 추고
회전 프레임 우아하게 재탄생
스켈레톤 간의 경계 사라지네
리타게팅의 마법이 빛나는 밤
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/anim-rotation-retarget

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@yyuneu yyuneu deleted the fix/anim-rotation-retarget branch June 4, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant