다이나믹 폴리곤에 의한 패턴의 전환
MascotCapsule V3에서는 모델 데이터 내에 몇 가지의 상태를 가질 수 있고 그 상태를 지정하여 모델을 렌더링할 수 있습니다.
MascotCapsule V3 에서는 모델 데이터 내에 몇 가지의 상태를 가질 수 있고 그 상태를 지정하여 모델을 렌더링할 수 있습니다.
모델 상태의 지정에는 OEMC_Micro3D_Figure_setPattern( Figure* This, hi_sint32 pattern) 을 사용합니다.
모델 데이터가 어느 정도의 상태를 가지고 있을까는 데이터 작성시에 설정됩니다. 이 수는 OEMC_Micro3D_Figure_getNumPatterns( Figure* This)를 이용함으로써 취득할 수 있습니다.
모델 상태는 베이스가 되는 공통 세트를 포함하면 최대 33가지의 상태가 있습니다. 이것을 32 bit의 각 bit로 간주해(공통 세트를 0으로 합니다) OEMC_Micro3D_Figure_setPattern() 으로 지정합니다.
이번에 사용하는 샘플의 경우, 공통 세트를 포함 이하의 4개의 외관 상태를 가지고 있습니다.
- Pattern 0 : 공통 세트가 되는 얼굴
- Pattern 1 : 눈이 없는 얼굴
- Pattern 2 : 뜬 눈
- Pattern 3 : 감은 눈
그렇기 때문에,
- OEMC_Micro3D_Figure_setPattern( figure, 0 ) 에서 공통 세트가 되는 얼굴
- OEMC_Micro3D_Figure_setPattern( figure, ( 1 << 0 ) )에서 뜬 눈을 가진 얼굴
- OEMC_Micro3D_Figure_setPattern( figure, ( 1 << 1 ) ) 에서 감은 눈을 가진 얼굴
이라고 하는 렌더링이 실행됩니다.
Sample_Dynamic 실행 화면(좌측부터, Pattern 0, Pattern 1, Pattern 2 )
또한 복수의 독립한 외관 상태를 가진 모델의 경우,
OEMC_Micro3D_Figure_setPattern( figure, ( ( 1 << 1 ) | ( 1 << 5 ) ) )
라고 하는 지정을 실행하면 동시에 복수의 부분을 움직이는 일도 가능합니다.
* cap.figpat 는 현재의 모델 상태
* cap.fig 는 모델 데이터
*/
int maxpat = OEMC_Micro3D_Figure_getNumPatterns( &cap.fig );
if ( cap.figPattern >= maxpat )
/* 모델의 상태를 설정 */
OEMC_Micro3D_Figure_setPattern( &cap.fig, ( 1 << cap.figPattern ) );
/* 모델의 외관을 변경 */
cap.figPattern++;
또한 이러한 함수를 사용하여 랜더링를 실행할 때는, 통상 ActTable을 사용한 애니메이션을 실행하지 않을 때입니다. OEMC_Micro3D_Figure_setPosture() 를 호출한 후, OEMC_Micro3D_Figure_setPattern() 을 호출하면, OEMC_Micro3D_Figure_setPosture() 로의 설정은 무시됩니다.

