物理運算的設定

物理運算設定的流程

1.物理運算class
a. 作成實體
b. 物理運算的設定
c. 套用模型


1-a. 作成實體

設定物理運算時需使用PhysicsHair這個class
每個欲設定的部位需各自對應一個實體。
PhysicsHair physicsHairFront = new PhysicsHair(); // 瀏海用
PhysicsHair physicsHairSide = new PhysicsHair(); // 橫髮用
PhysicsHair physicsHairBack = new PhysicsHair(); // 後髪用


1-b. 物理運算的設定

由a所產生的實體進行物理運算。
有三項設定。
・套用物理運算的標的
・設定輸入參數
・設定輸出表現


套用物理運算的標的
使用setup函式設定。
此處為設定進行何種物理演算。
physicsHairFront->setup (
                        0.17f, // 長度 : 單位為公尺 影響搖擺周期(快慢)
                        0.5f, // 空氣阻力 : 可設定0~1的值、預設值為0.5 影響搖擺衰減的速度
                        0.1f ) ; // 質量 : 單位為kg 


・設定輸入參數
使用addSrcParam函式設定。
此處為設定哪一個參數變動時進行何種物理運算。
PhysicsHair::Src srcX = PhysicsHair::Src::SRC_TO_X; // 橫向搖擺
PhysicsHair::Src srcZ = PhysicsHair::Src::SRC_TO_G_ANGLE; // 下垂

physicsHairFront->addSrcParam(srcX, "PARAM_ANGLE_X", 0.005f, 1); // "PARAM_ANGLE_X"的參數變動時受到0.005倍的影響度。
physicsHairFront->addSrcParam(srcZ, "PARAM_ANGLE_Z", 0.8f, 1); // "PARAM_ANGLE_Z"的參數總共受到0.8倍的影響度而下垂。


・設定輸出表現
使用addTargetParam函式設定。
此處為設定經過前項計算後,將於何處反映表現。
PhysicsHair::Target targetA = PhysicsHair::Target::TARGET_FROM_ANGLE; //

physicsHairFront->addTargetParam(targetA, "PARAM_HAIR_FRONT", 0.025f, 1); // 反映受到"PARAM_HAIR_FRONT"0.025倍的影響度的表現。
physicsHairBack->addTargetParam(targetA, "PARAM_HAIR_BACK", 0.025f, 1); // 反映受到"PARAM_HAIR_BACK"0.025倍的影響度的表現。

1-c. 套用模型

使用update函式將物理運算套用到模型。
請於每一影格模型class的update函式前呼叫。
long time = UtSystem::getTimeMSec() - startTimeMSec; // 執行時間

// 套用物理運算到模型
physicsHairFront->update(live2DModel, time);
physicsHairBack->update(live2DModel, time);


























コメント