FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


SCNPhysicsVehicleオブジェクトをjointで繋ぐ

SCNPhysicsVehicleで二輪車と一輪車
↑この辺りでSceneKitのSCNPhysicsVehicle使って二輪車を走らせてる。
これを
SCNPhysicsHingeJoint
SCNPhysicsSliderJoint
などで接続したら動くのかな?と思い試してみた。



↑二輪車のオブジェクトを二つ並べて以下のようなことをした。
(1)jointなしで走らせる
(2)SCNPhysicsHingeJointで接続
(3)SCNPhysicsSliderJointで接続
(4)平行移動拘束を追加
(5)モータによる駆動を追加

なんや動くやん!ってのが結論。

{
    SCNPhysicsVehicle *bicycle1;
    SCNPhysicsVehicle *bicycle2;

    float vehicleSteering = 15.0/180.0*M_PI;
    [bicycle1 setSteeringAngle:vehicleSteering forWheelAtIndex:0];
    [bicycle2 setSteeringAngle:vehicleSteering forWheelAtIndex:0];
}
↑走らせる時のステアリングの角度は両方とも同じなので普通に走らせると(1)のようにぶつかる。

{
    SCNPhysicsHingeJoint *joint = [SCNPhysicsHingeJoint jointWithBodyA:bicycle1.chassisBody axisA:zAxis anchorA:anchorP bodyB:bicycle2.chassisBody axisB:zAxis anchorB:anchorM];

}
↑jointはSCNPhysicsVehicleオブジェクトのchassisBody(SCNPhysicsBodyオブジェクト)同士で接続。

{
    joint.maximumLinearLimit = joint.minimumLinearLimit = 0.0;
}
↑(4)のSCNPhysicsSliderJointで平行移動を拘束するのはこんな感じで。

{
    joint.motorTargetAngularVelocity = -0.1;
}
↑(5)のモータで駆動する部分。

<< 脚の先にホイールを付けた3枚板ロボット  TopPage  SCNPhysicsVehicleの車をx軸方向に走らせる >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1167-698656fa




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad