에니메이션 메시유무

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

에니메이션 메시유무

Post by 비회원 »

IGAME 인터페이스에서

이 메쉬가 에니메이션이 가능한 메쉬인지 아닌지를 판별하고 싶은데요..

에니메이션이 없서도 값이? 들어가버리더군요..
포지션,스케일,로테이션 세 키값다 각각 값이 들어가 버리더군요..
이걸 아에 노드가 에니메이션 되는 노드인지를 알아보고
로드를 안하려고 하는데요..
에니메이션이 없는 노드인데도 컨트롤로값은 NULL이 아니더군요..어떻게 에니메이션 데이타의
존재 유무를 판단해야 할까요??
비회원

전 그냥 플러그인 옵션으로 뒀다는..

Post by 비회원 »

익스포트시 애니메이션으로 익스포트 할건지 메쉬만 익스포트 할건지 물어봅니다.

귀찮아서.. 쿨럭
비회원

..

Post by 비회원 »

그렇게 하면 에니메이션이 없는 메쉬인데
옵션을 체크 할 경우 값이 들어가지 않나요??

아닌가..
hardcoder
Posts: 119
Joined: 2005-07-28 10:46
Location: 떠돌이
Contact:

Post by hardcoder »

각 애니메이션 컨트롤에서 키가 몇개 들어 있는지 알아보세요.
오래돼서 기억이 가믈가물한데요.
그런 함수가 있었던거 같기도 하고, 직접 몇개인지 알아내는
함수를 만들었던거 같기도 한데.
IGAME 쓰면 편한데 데이터를 하드코어하게 뽑을려면
결국은 MAXSDK 하고 같이 사용하게 되더군요.
비회원

Post by 비회원 »

Code: Select all

IGameSkin* MeshHelper::FindSkinModifier( IGameObject *pObject )
{
	if( pObject->GetNumModifiers() < 1 )
		return NULL;

	[b]if( m_sklHelper.GetTotalBipedCnt() < 1 )[/b]
		return NULL;

	for( int i=0 ; i<pObject->GetNumModifiers() ; i++ )
	{
		IGameModifier *pModifier = pObject->GetIGameModifier(i);

		if( pModifier->IsSkin() )
		{
			IGameSkin *pSkin = (IGameSkin*)pModifier;
			return pSkin;
		}
	}

	return NULL;
}
저는 이렇게 판별합니다.

IGameSkin이 있는지의 여부인데...스킨도 스킨이지만 본이 있는지 여부에서 보통 걸러져 버립니다.
( m_sklHelper는 본을 익스포트하는 자체클래스 입니다. 스키닝이라 메시뽑을때 본도 같이 참고하게 되서 )

ps...
저도 가끔 IGame이 불편한데요. IGame에는 없는 기능이 많아서 MaxSDK와 짬뽕이 되게 되더군요.
하지만 누구나 필요한 기본정보들을 뽑기에는 IGame이 편합니다.
짬날때마다 하나씩 MaxSDK로 교체할까 마음만 가지고 있습니다...-_-;;;
비회원

키값

Post by 비회원 »

IGameControl::virtual int GetIGameKeyCount(IGameControlType Type)=0
이함수가 있군요..
그런데 각 pos,rot,scl값을 넣어서 키값을 조사하면 0만 나오네용..
어쩔떄는 메모리 에러가 나기도 하는군요..

함수설명은
//! The total number of keys for this controller
/*! This return the total number of keys for the controller supplied.
\param Type The controller type to query. See IGameControl::GetBezierKeys for more info
\return The total number of keys
*/

이런말만 있서서 왜 그런지 이유를 모르겠네요.
비회원

아주 간단한 방법이 있군요..

Post by 비회원 »

Control * IGameControl::GetMaxControl(타입)

이 함수를 이용해 control*을 얻어와서
Control :IsAnimated() 함수를 호출합니다. bool형으로 간단히 에니메이션 유무를 판별해주는군요..
각 키값별 에니메이션 유무를 리턴합니다.

그런데 control* 설명을 보니 igame인터페이스 범위를 벗어나는것 같습니다.(아마도 maxsdk..)
비회원

질문이 있는데요...

Post by 비회원 »

계속 위에서 IGame 이라는 인터페이스가 나오는데.

이건, 어디에 나오는 건가요?

MAX SDK 에 서 나오는건가요?

저도 DirectX 에서 *.X 파일을 읽는데,
이놈이 에니메이션을 지원하는 넘인지 판별하고 싶은데..

방법을 못찾다가, 님들의 얘기를 듣고,

희망을 갖게 됐는데,

저도 사용할 수 있을까요?
비회원

그건..

Post by 비회원 »

maxsdk을 까시면 그 안에 igame이라고 라이브러리,도움말,예제등이 들어있습니다.
일단max을 까세용...
Locked