본문 바로가기
그래픽 테크닉

Bone Stretch(Squash) 에 대한 오해와 게임 데이터로의 활용

by Raypop 2013. 5. 25.


많이들 알고 있는 Bone Stretch 에 대해 설명 하고자 합니다.

Bone Tools에서 Freeze Length 해제 후 Stretch 에서 Squash 설정한 뒤 하위 본을 잡아 움직이게 되면 위에 이미지 처럼 부피를 유지하면서 크기가 변하게 됩니다. 오브젝트에 스킨을 했을때도 맥스 안에서는 원하는 값을 보여줍니다.


하지만 실제로 게임 데이터로 Export 후에는 대부분의 게임엔진에서는 맥스와 다른 값을 보게 됩니다. 이유인즉슨 Stretch 에 의해서 사이즈가 조정된 본은 실제로 스케일 값이 [1,1,1]로 고정되어 변하지 않는데 있습니다.(Export 툴을 수정하여 Squash 값을 저장 할수는 있지만 개발시간과 데이터 용량이 커지는 단점이 있습니다)



녹색본은 Bone Tools 의 squash를 이용, 빨간색본은 expression controller 을 이용한 squash 효과


이런 점을 고려 하여 게임에 적용하기 위한 방법으로 Bone tools 에서 Stretch 를 사용하지 않고 expression controller 을 사용해 보았습니다.

Squash 될 Bone과 Controller 할 Bone 의 거리에 비례하여 스케일을 변경시키고,

여기에 Lookat 을 같이 사용하게 되면 Bone Squash 와 똑같은 효과를 얻을수 있었습니다.(스크립트는 여기로)



덤으로 바이패드는 피규어 모드를 제외 하고는 scale 애니메이션이 기본적으로 불가능 한데

가령 팔이 길어졌다 줄어들었다 하는 애니메이션이 필요 하다면 팔을 선택하고 아래와 같이 컨트롤러 BipScaleList 에서 Avilable 선택후에 스케일 관련 컨트롤러를 넣어주면 됩니다.