hkpRigidBody ½ºÄÉÀÏ

hkpRigidBody¸¦ ½ºÄÉÀÏ ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ.

´Ü ÀÌ ¹æ¹ýÀº ÇϺ¹ ¹®¼­¿¡ µû¸£¸é ÅøÀ̳ª ¿ÀÇÁ¶óÀÎ( ·Îµù¹Ù ÁøÇà½Ã )¿¡¼­ Çϱ⸦ ±ÇÀåÇÏ°í ÀÖ´Ù.
½Ç½Ã°£À¸·Î Çϱ⿡´Â ¼Óµµ ¶§¹®¿¡ ÃßõÇÏÁö ¾Ê´Â´Ù.

HavokLevel::AddPhysicsSystem(  )³ª HavokLevel::AddWorld(  )¿¡¼­ Ãæµ¹ Àå¸é¿¡ Ãß°¡ÇϱâÀü¿¡ ÁÖÀüÀÚ Å©±â¸¦ 1/2·Î ÁÙÀÌ°í ÀÖ´Ù.

m_shape°¡ constÀÌÁö¸¸ °­Á¦·Î Çüº¯È¯ÇÏ¿© hkpShapeScalingUtility::scaleShape(  )·Î Å©±â¸¦ ¹Ù²Û´Ù.

            //Ãæµ¹ ¸Þ½Ã ½ºÄÉÀÏ

            hkpRigidBody* rigidBody = system->getRigidBodies()[k];

            hkpRigidBodyCinfo cInfo;

            rigidBody->getCinfo( cInfo );

            hkpShape* shape = (hkpShape*)cInfo.m_shape;

            hkpShapeScalingUtility::scaleShape( shape, 0.5f );

µÎ°¡Áö ´Ù¸¥ ¹æ¹ýÀ¸·Î ½ºÄÉÀÏÀ» Àû¿ëÇØ ºÃÁö¸¸ ½ÇÆÐÇÑ ¹æ¹ýÀ» Á¤¸® ÇÏ¿´´Ù.

1. hkpSystemScalingUtility::scaleSystem( )À» ÀÌ¿ëÇÑ ¹æ¹ý

        hkpSystemScalingUtility::scaleSystem( system, 0.5f );

¾Æ·¡ ±×¸²°ú °°Àº ¿¡·¯°¡ ¶ß¸é¼­ ºñÁê¾ó ½ºÆ©µð¿À Ãâ·Ââ¿¡´Â ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ¶á´Ù.

Error: do not call setMass on a fixed or keyframed object(hkpKeyframedRigidMotion)

ÇÑÁÙ·Î Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀÌÁö¸¸ ¿¡·¯¸¦ ÇØ°áÇÒ ¹æ¹ýÀ» ¸øã¾Ò´Ù.

  

 

2. hkpRigidBody::setTransform( )À» ÀÌ¿ëÇÑ ¹æ¹ý

ÇϺ¹ µ¥¸ð¿¡¼­ ºñÁê¾óÀûÀ¸·Î´Â ½ºÄÉÀϸµÀÌ ÀÌ»ó¾ø´Ù. ÇÏÁö¸¸ Ãæµ¹ÀÌ µÇÁö ¾Ê´Â´Ù.
ÁÖÀüÀÚ¸¦ ¶Õ°í ¹Ù´ÚÀ¸·Î °è¼ÓÀ» ¶³¾îÁø´Ù.

ÇÁ·ÎÁ§Æ® :
HavokTest_scale.zip

¸®¼Ò½º:
MyTest_scale.zip

PS) µÎ °¡Áö ½ÇÆÐÇÑ ¹æ¹ýÁß¿¡ ÇØ°áÃ¥À¸·Î ã¾ÒÀ¸¸é ¿¬¶ôÁÖ¼¼¿ä.