Pythonによるオブジェクトの角速度設定について

投稿ツリー


このトピックの投稿一覧へ

通常 Pythonによるオブジェクトの角速度設定について

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013/6/21 16:29
7ike  新米   投稿数: 3
初歩的なことかもしれませんが,検索をしても納得のいく答えを見つけ出すことができなかったため質問させていただきました.

Blender Gameにおいて,ControllerとしてPythonを使い,あるオブジェクトを初期状態(位置:[0,0,5],姿勢:[[1,0,0],[0,1,0],[0,0,1]],速度:[0,0,0],角速度:[0,0,0])にする以下のスクリプトを書きました.

import bge

object = bge.logic.getCurrentController().owner
object.worldPosition = [0.0, 0.0, 5.0]
object.worldOrientation = [[1.0, 0.0, 0.0],[0.0,1.0,0.0],[0.0,0.0,1.0]]
object.worldAngularVelocity = [0.0,0.0,0.0]
object.worldLinearVelocity = [0.0, 0.0, 0.0]

次いで,初期のCubeにRigid BodyのPhysical Typeを与えてz軸方向に+5だけ動かし,[0,1,0]にPlaneを追加してStaticとし,衝突するとCubeが回転しながら下方向に落ちていくような環境を作り,スペースキーを押すことでこのスクリプトを実行するようにLogic Brickを設定して試したところ,角速度以外の値は指定したとおりになるのですが,角速度はスペースキーを押す前と同じ値のままで[0,0,0]に設定することができませんでした.
また,setAngularVelocityメソッドも使って見ましたが,同様に角速度を変更することはできませんでした.

悩みながらいろいろ試して見たところ,指定する3次元ベクトルの少なくとも1つの要素に非0の値をいれる(例えば[0, 0, 0.00000001]を設定する)と角速度が変わることが分かり,やりたかったことはほぼ達成されたのですが,なぜこのようなことになったのか非常に疑問で,もしかすると根本的に何か間違っているのではないか心配になってしまいました.
今のところ,少なくともBlender2.62と2.67bの双方で起こることを確認しました.

この問題について,何かご存知の方がおられましたらご教示いただきたく思います.

長文失礼致しました.
よろしくお願いいたします.
投票数:7 平均点:8.57

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki