티스토리 뷰

반응형

 

확실하지 않은 정보이니, 참고해주세요.

 

public bool Fix Transforms : true일 경우, solver가 사용하는 모든 변환을 각 업데이트의 초기 상태로 수정. 이것은 적은 비용으로 애니메이션이 없는 뼈와 애니메이터 컬링에 대한 잠재적인 문제를 방지한다. CCD 및 FABRIK Solver에는 권장되지 않는다.

 

[ References ] 

오브젝트이지만, 해당 부위들에 있는 빈 GameObject라고 생각하자.  해당 오브젝트들의 자료형은 Transform형이다.

 

root : 최상위 부모 오브젝트이다. 캐릭터 전체를 가지고 있는 오브젝트이기도 하다.

pelvis : 골반 오브젝트이다.

spine : 척추 오브젝트이다.

chest : 선택옵션이다. ( 있어도 되고 없어도 된다. 편하게 option이라고 적으면, 선택옵션이라고 생각하자. ) 가슴 오브젝트이다.

neck : option, 목 오브젝트이다.

 head : 머리 오브젝트 이다.

leftShoulder : option, 왼쪽 어깨 오브젝트이다.

 leftUpperArm : 왼쪽 윗 팔 오브젝트이다.

 leftForearm : 왼쪽 아랫 팔 오브젝트이다.

 leftHand : 왼쪽 손 오브젝트이다.

 rightShoulder : 오른쪽 어깨 오브젝트이다.

 rightUpperArm : 오른쪽 윗 팔 오브젝트이다.

 rightForearm : 오른쪽 아랫 팔 오브젝트이다.

 rightHand : 오른쪽 손 오브젝트이다. 

 

[ Solver ]

IKSolver 클래스를 상속받는, Spine, LeftArm, RightArm, LeftLeg, RightLeg, Locomotion들이 포함이 되어 있다.

 

Range(start ~ end) : 편하게, Range(start ~ end)라고 표현하면, start에서 end까지의 값으로 조절할 수 있다고 생각하자.

 

 IKPositionWeight : Range(0~1), 머리, 팔, 다리관련 무게들을 각각 정해줄 수도 있지만, 해당 변수로 각각 정해준 값을 무시할 수도 있다. IK 위치의 무게의 최상위 변수정도라고 생각하자.

 LOD : Range(0~2), 0값은, 전체 품질을 해결한다. 1값은, 어깨 풀기, 스트레칭등은 사용불가하고, 척추 풀림의 품질이 감소된다. 이는 약 30%의 성능 향상을 제공하지만, 제대로 된 IK를 쓰기 위해선, LOD의 수치를 0에 맞추는 것이 좋을 것 같다. 마지막으로 2는, 컬링은 되었으나, 활성화가 된 경우에는 루트의 위치 및 회전이 업데이트가 된다.

plantFeet : true면, 헤드 타겟이 닿지 않더라도, 발가락을 심은 상태로 유지하므로 모델에 도달하기에 너무 높으면 카메라가 헤드에서 나갈 수 있다. 다리를 여러 번 해결해야하므로 solver의 비용이 증가한다.

 

[ Solver -> Spine ]

IKSolver 클래스를 상속받는, IKSolverVRSpine 클래스이다.

 

headTarget : 헤드 타겟, 이것은 카메라 Transform 자체가 아니여야 한다. 그러나 자식 born object는 parent born의

방향과 일치하도록 위치 및 회전을 조정할 수 있다. 설정하는 가장 좋은 방법은 카메라를 아바타의 눈으로 옮기고 head born을 복제 한 다음, 카메라의 부모 역할을 하는 것이다.

pelvisTarget : option, 골반 타겟은 장착된 rig에 유용하거나 배낭이나 벨트와 같은 곳에 추가 Tracking device가 있는 경우에 유용하다. 설정하는 가장 좋은 방법은 아바타의 골반 뼈를 복제하여, 골반 트래커의 부모가 되는 것.

positionWeight : Range(0~1), 헤드 타겟의 위치 가중치. headTarget을 null로 설정한 경우, 값을 0으로 설정할 때까지 헤드 타겟의 마지막 위치로 머리가 계속 당겨진다.

rotationWeight : Range(0~1), 헤드 타겟의 회전 가중치, headTarget을 null로 설정한 경우, 값을 0으로 설정할 때까지 헤드 타겟의 마지막 위치로 머리가 계속 회전한다.

pelvisPositionWeight : Range(0~1), 골반 타겟의 위치 가중치, pelvisTarget을 null로 한 경우, 값을 0으로 설정할 때까지 골반이 pelvisTarget의 마지막 위치로 계속 당겨진다.

pelvisRotationWeight : Range(0~1), 골반 타겟의 회전 가중치, pelvisTarget을 null로 한 경우, 값을 0으로 설정할 때까지 골반이 pelvisTarget의 마지막 위치로 계속 회전한다.

chestGoal : chestGoalWeight가 0보다 크면, 해당 객체의 위치가 앞으로 변환한다.

chestGoalWeight : Range(0~1), 가슴의 목표 가중치

minHeadHeight : 캐릭터 루트에서 머리의 최소 높이

bodyPosStiffness : Range(0~1), 몸이 머리의 위치를 얼마나 영향을 받을 지를 결정.

bodyRotStiffness : Range(0~1), 몸이 머리의 회전을 얼마나 영향을 받을 지를 결정

neckStiffness : Range(0~1), 가슴이 머리의 회전까지 얼마나 회전하는 지를 결정.

rotateChestByHands : Range(0~1), 가슴 회전 값을 고정시킨다. 0.5값은 머리를 기준으로 가슴의 90도 회전까지 허용하며, 값이 0이면 180도, 1일 경우에는 가슴이 머리를 기준으로 회전한다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함