맥스에서 데이터를 추출할 때 애니메이션이 적용되기 이전의 데이터를 뽑아오고 싶습니다.
IGameSkin에서 GetInitBoneTM() 함수가 있던데, 이 함수를 통해서가 아니라 Skin이 적용되었든 안되었든 애니메이션이 적용되기 이전의 값을 추출하고 싶습니다.
IGameNode::GetLocalTM()에서 Time값을 기본값인 음의 무한대로 넣으면 될 줄 알았는데 그렇지 않네요
답변 부탁드립니다.
맥스에서 애니메이션이 적용되기 이전의 TM구할려면?
Moderator: 류광
-
- Posts: 2764
- Joined: 2003-05-13 03:34
- Location: NCSOFT LE팀
Re: 맥스에서 애니메이션이 적용되기 이전의 TM구할려면?
저는 그 행렬을 Mesh 익스포트할때 따라온 값을 썼습니다. 오래되어서 기억이 가물가물한데 맥스에서 Mesh 익스포트 할때는 대개 大 자로 서있는 모습을 익스포트 하는데 그때 나온 Matrix 들의 역행렬을 미리 구해서 사용했었습니다. 일단 Mesh를 Export 할때 같이 따라온 Bone 들의 Matrix 를 찾아보시는건 어떨까요?비회원 wrote:맥스에서 데이터를 추출할 때 애니메이션이 적용되기 이전의 데이터를 뽑아오고 싶습니다.
IGameSkin에서 GetInitBoneTM() 함수가 있던데, 이 함수를 통해서가 아니라 Skin이 적용되었든 안되었든 애니메이션이 적용되기 이전의 값을 추출하고 싶습니다.
IGameNode::GetLocalTM()에서 Time값을 기본값인 음의 무한대로 넣으면 될 줄 알았는데 그렇지 않네요
답변 부탁드립니다.
-
- Posts: 2764
- Joined: 2003-05-13 03:34
- Location: NCSOFT LE팀
Re: 글쓴이입니다.
0 프레임도 문제가 없긴 한데 기준이 되는 정보가 하나는 필요할 겁니다. 하나의 메쉬에 애니메이션을 여러가지 돌려가면서 틀어야 할텐데 그럴때 0번 애니메이션에 大 형태의 캐릭터를 넣어놓은 상태가 아니라면 각 애니메이션들은 0 프레임의 변위값을 갖게 되는 셈이니까요. 각 애니메이션의 0프레임들간을 비교해서 차이값을 추출해서 쓸 수도 있긴 하지만 그래도 어떤 것 하나는 기준이 되어야 하니까요.비회원 wrote:그래서 IGameSkin에 Skinning이 적용되기 이전의 메시를 얻어올 수 있던데, 그것 대신 그냥 0프레임의 시점에서 모든 정보를 추출해서 사용했습니다.
맥스에서 모디파이어탭을 클릭하고 skin을 보시면
옆에 전구같은게 있는데 그걸 클릭해서 disable 시키면 skin이 적용 안되게 됩니다.
그 상황으로 두고 익스포트를 하면 될듯하네요. 그거 말고 함수중에 모디파이어 disable시키는 함수도 있습니다만 프로그램으로 맥스 내용을 바꾸는 것은 아주 비추천하고 싶습니다.
정말 급한 경우에만 위 방식을 사용하시고 어지간하면 윗분들 글대로 팔다리를 벌린 기본 캐릭터 형을 만드실 것을 강력히 추천합니다. 애니메이션 키를 모두 삭제하면 되니까 만드는 것도 상당히 편할테고요.
기본 프로그래밍으로 값을 뽑아내는 건 솔직히 모르겠네요. 기본 캐릭터형을 제작하고 0프레임의 값을 뽑는것이 스킨데이터도 얻고 앞으로 코딩하는게 편할것으로 생각됩니다.
옆에 전구같은게 있는데 그걸 클릭해서 disable 시키면 skin이 적용 안되게 됩니다.
그 상황으로 두고 익스포트를 하면 될듯하네요. 그거 말고 함수중에 모디파이어 disable시키는 함수도 있습니다만 프로그램으로 맥스 내용을 바꾸는 것은 아주 비추천하고 싶습니다.
정말 급한 경우에만 위 방식을 사용하시고 어지간하면 윗분들 글대로 팔다리를 벌린 기본 캐릭터 형을 만드실 것을 강력히 추천합니다. 애니메이션 키를 모두 삭제하면 되니까 만드는 것도 상당히 편할테고요.
기본 프로그래밍으로 값을 뽑아내는 건 솔직히 모르겠네요. 기본 캐릭터형을 제작하고 0프레임의 값을 뽑는것이 스킨데이터도 얻고 앞으로 코딩하는게 편할것으로 생각됩니다.