人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。物体を動かすUnity今回は物理シミュレーションで物体に力を加えて動かす方法を試してみた。物体を動かすには、オブジェクトの速度rigidbody.velocityを直接いじる方法があるが、リファレンスマニュアルによると物理的なリアリティに欠けるためおすすめされていない。ジャンプ動作なんかはいいみたいね。velocity.リファレンス・マニュアルかわりの方法としてRigidbody.AddForce()が使える。これは物体に力を加えることで加速度が発生し、その結果として物体が移動する。ニュートンの運動方程式だね。Fは物体に加える力、mは物体の質量、aは物体の加速度。このメソッドの第二引数にはForceModeというオプションがあって違いがわかりにくかったのでRigidBodyにAddForce()を行った場合のForceModeによる動作の違いをもとに検証してみた。AddForceTest大きいキューブが質量3、小さいキューブが質量1にしてある。左上のボタンで二つの物体に同時に力を加えられる。ボタンは下のForceModeのオプションの違いに対応している。Resetボタンを押すと初期状態に戻る。VelocityChange質量を考慮しない、連続的な速度の変化を加えるhttp://docs-jp.unity3d.com/Documentation/ScriptReference/ForceMode.html実際に押してみると移動の仕方が違うのがわかる。AccelerationとVelocityChangeは質量を無視するので大きな物体(質量3)も小さな物体(質量1)も同じ感じでぶっとぶのに対し、ForceとImpulseは質量を考慮するので大きな物体のほうが動きにくいことがわかる。連続的な力は「よいしょ、よいしょ」という感じで瞬間的な力は「はっ!」っていう感じがするね(笑)物理シミュレーションでは、ForceかImpulseを使った方がよさそう。回転キューブ»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。