ÇÇÁöÅ© Á¤º¸¸¦ ÀÐ¾î ¿À´Â °÷ÀÔ´Ï´Ù. ´Ù¸¥µ¥µµ ¿Ã¸±½Ç°Å¸é Ãâó¸¦ Àú·Î ÇÏ½Ã¸é µÇ±¸¿µ ¸¾´ë·ç °®´Ù ¾²¼¼¿µ. ^^ÇÇÁöÅ© phyexp.h¾Æ½ÃÁ®? ¸Æ½º ½Ãµð¾È¿¡ ÀÖ½¿´Ù. ±×°Å »ç¿ëÇÏ¼Å¾ß µÇ±¸¿©...ÀÚ¼¼ÇÑ°Ç ±× ¾È¿¡ ÀÖ´Â µµ¿ò(?)¸»À» º¸½Ã±¸¿© ¾Æ·§°Ç ÇѾó¼ÒÇÁÆ®ÀÇ MayPluginÁß¿¡¼­ ÇÇÁöÅ© °ü·Ã ºÎºÐÀÔ´Ï´Ù. ¶ÇÇÑ ÀÌ°Ç ÇÇÁöÅ©Áß rigid¸¸ »Ì´Â ¼Ò½ºÀÔ´Ï´Ù. ÀüüÁß ÀϺÎÀε¥ À̰͸¸ À־ ÃæºÐÇϸ®¶ó°í º¾´Ï´Ù. ´õ ÇÊ¿äÇϽźÐÀº Á¦°¡ µû·Î µå¸®°Ú½À´Ï´Ù. ´Ù ¿Ã¸±·Á±¸ Çߴµ¥ ¾ÆÁ÷ ¹Ì¼÷ÇÏ°í ¶Ç º¸¿Ï(?) ¶«½Ã... ÀÚ¼¼ÇÑ Áú¹®Àº Àú¿¡°Ô ¸á·ç ÁÖ¼¼¿µ^^±×·³ ¿­½ÉÈ÷ Çϼ¼¿ä Modifier *phyMod=FindPhysiqueModifier(node); //À§¿¡°Ç ÆÄÀÏÁß¿¡¼­ ÇÇÁöÅ©¸¦ »ç¿ëÇß´ÂÁö ã¾Æ Áִ°ÍÀÔ´Ï´Ù. PhysiqueInit(phyMod,node); //À§¿¡ °Ç ½ÇÇà(?)ÇÏ´Â ºÎºÐÀÔ´Ï´Ù. //Àú °°Àº °æ¿ìGeomObject¸¦ ÀͽºÆ÷Æ®ÇÏ´Â ¸Ç ¸¶Áö¸·ºÎºÐ¿¡ ³Ö¾ú½À´Ï´Ù. BOOL MayPlugin::PhysiqueInit(Modifier* phyMod,INode* node) { int poin=0; int a = 0; if(!phyMod) { // fprintf(pStream,"FALSE"); return FALSE; } //ÀÌ°Ô ÁøÂ¥ ÀÖ´ÂÁö ¾ø´ÂÁö ÆÇ´ÜÇÏ°í ¾øÀ¸¸é ¾ÈÇϰí ÀÖÀ¸¸é ´ã°É·ç ³Ñ¾Æ°©´Ï´Ù. fprintf(pStream,"%s {\n",ID_Physique); //¾Æ½ÃÁ®? ÆÄÀÏÁß¿¡ ±ÛÀÚ »ðÀÔ. ID_Physique´Â *PHYSIQUEÀÔ´Ï´Ù.^^ IPhysiqueExport *phyExport = (IPhysiqueExport *)phyMod->GetInterface(I_PHYINTERFACE); if (phyExport) { // create a ModContext Export Interface for the specific node of the Physique Modifier mcExport = (IPhyContextExport *)phyExport->GetContextInterface(node); // if (mcExport) { // Get the number of vertices of the Physique modifier num_deformable_points = mcExport->GetNumberVertices(); // ÀÌ°Ç ¹öÅØ½º°¡ ¸î°³ ÀÖ´ÂÁö °¥ÄÑ ÁÖ´Â °ÍÀÔ´Ï´Ù. fprintf(pStream,"\t%s\t%d\n",ID_Physique_NV,num_deformable_points); // ¹öÅØ½ºÀÇ °¹¼ö¸¦ Ãâ·ÂÇÕ´Ï´Ù. int vertex_type; // À̺κÐÀº Á¶±Ý ¼³¸íÀÌ ±æ¾î ÁúÅÙµ¥¿© // ¹Ù·Î ¹öÅØ½ºÀÇ Á¾·ù(?)Àä // ¼ýÀÚ·Î µÇ¾îÀÖ½À´Ï´Ù. //Áï RIGID_TYPE´Â 1, DEFORMABLE_TYPE´Â 2,BLENDED_TYPE´Â 4 ÀÔ´Ï´Ù.^^ int aaa=0; //ÀÌ°Ç Ä«¿îÅÍÀÔ´Ï´Ù.^^ for(int i = 0 ; i < num_deformable_points; i++ ) { //¹öÅØ½º °¹¼ö¸¸Å­ µ¹¸®´Âµ¥¿©.. ±×·¡¾ß °¢°¢ÀÇ Á¤º¸¸¦ •û¿ÀÁ´^^ IPhyVertexExport *vtxExport = (IPhyVertexExport *)mcExport->GetVertexInterface(i); if (vtxExport) { vertex_type = vtxExport->GetVertexType(); // ¾Æ±î ¸»ÇÑ ±× ¼ýÀÚÀÔ´Ï´Ù.^^ if (vertex_type&BLENDED_TYPE) { fprintf(pStream,"BLENDED_TYPE\n"); } else { if ( (vertex_type | DEFORMABLE_TYPE) || (vertex_type | RIGID_TYPE)) { if(vertex_type==RIGID_TYPE) { fprintf(pStream,"%d ",aaa); //Ä«¿îÅÍÀÔ´Ï´Ù. ¹¹ Áß¿äÇÑ °Ç ¾Æ´Õ´Ï´Ù. aaa = aaa+1; // vtxNoBlend->GetVertexType(); // À§¿¡°Ô »ç¿ë¹ýÀÔ´Ï´Ù. IPhyRigidVertex *vtxNoBlend=(IPhyRigidVertex*)vtxExport; // INode *Bone = vtxNoBlend->GetNode(); // node¸¦ ¾ò¾î ¿É´Ï´Ù. //±×¸®°í Ãâ·ÂÇÒ‹š¿© ¿ÀÇÁ¼ÂÀ̶û ³ëµå¶û °Á Ãâ·ÂÇÏ¸é ¼ýÀÚ·Î ³ª¿À°É¶ó¿µ? // ÀÌ°É ÀÚ¼¼È÷ º¸½Ã¸é °°Àº°Ç °°Àº¼ýÀÚ·Î µÇ¾î ÀÖ½À´Ï´Ù. //´ç¿¬ÇÑ °ÅÁö¸¸ ^^;; Point3 Offset = vtxNoBlend->GetOffsetVector(); fprintf(pStream,"\t%s %s\n",ID_Physique_NodeName,Bone->GetName()); // ÀÌ°Ç ¾Æ±î ¾ò¾î¿Â ³ëµåÀÇ À̸§À» ÀÐ¾î ¿É´Ï´Ù. // ¿¹¸¦ µé¾î "bip01 neck" // ÀÌ·±°É ÀÐ¾î ¿É´Ï´Ù.^^ } if(vertex_type==DEFORMABLE_TYPE) { //^^;; ÀÌÂÊ ºÎºÐÀº »°½À´Ï´Ù.^^ } } // if (vertex) } }//if(vteExport) }//if for phyExport->ReleaseContextInterface(mcExport); } phyMod->ReleaseInterface(I_PHYINTERFACE, phyExport); } phyMod->ReleaseInterface(I_PHYINTERFACE, phyExport); fprintf(pStream,"}\n"); return TRUE; } //¾Æ·¡¼­ ºÎÅʹ ÷¿¡ ÀÖ´ø °Ë»ç ºÎºÐÀ© //ÀÌ°Ô À§¿¡°Å º¸´Ù À§¿¡ ÀÖ¾î¾ß ¿À·ù°¡ ¾È³³´Ï´Ù. //¾Æ·¡°Ç ÁÖ¼®ÀÌ ¾ø½À´Ï´Ù. //¼³¸íÀÌ ÇÊ¿ä ¾ø°É¶û¿µ °Á °®´Ù ºÙÀ̼¼¿©...^^¤Ó;; Modifier* FindPhysiqueModifier (INode* nodePtr) { // Get object from node. Abort if no object. Object* ObjectPtr = nodePtr->GetObjectRef(); if (!ObjectPtr) return NULL; // Is derived object ? if (ObjectPtr->SuperClassID() == GEN_DERIVOB_CLASS_ID) { // Yes -> Cast. IDerivedObject* DerivedObjectPtr = static_cast(ObjectPtr); // Iterate over all entries of the modifier stack. int ModStackIndex = 0; while (ModStackIndex < DerivedObjectPtr->NumModifiers()) { // Get current modifier. Modifier* ModifierPtr = DerivedObjectPtr->GetModifier(ModStackIndex); // Is this Physique ? if (ModifierPtr->ClassID() == Class_ID(PHYSIQUE_CLASS_ID_A, PHYSIQUE_CLASS_ID_B)) { // Yes -> Exit. return ModifierPtr; } // Next modifier stack entry. ModStackIndex++; } } // Not found. return NULL; } //¿¡±¸...ÇãÁ¢ÇÑ ¼Ò½º º¸½Ã´À¶ó °¨»çÇÕ´Ï´Ù.^^;; //Áö¼ÛÇØ¿©..¿Ïº®ÇÑ ¼Ò½º¸¦ º¸¿© µå¸±·Á±¸ Çߴµ¥ //±Û±¸ À§¿¡°Å °Á ºÙ¿©¼­ ÄÄÆÄÀÏÇÏ¸é ¿À·ù³³´Ï´Ù. //±Ùµ¥ ±×°Ô º°°Å ¾Æ´Ï´Ï±î °ÆÁ¤¾ÈÇϼŵΠµË´Ï´Ù. //Áö±Ý ÇÇÁöÅ© Àоî¿À±â °­Á¸¦ ÁغñÁßÀ̶ø´Ï´Ù.^^ //±×·³ ÇϽô Àϸ¶´Ù Ç×»ó Çà¿î°ú ½ÅÀÇ ÃູÀÌ....