問題タブ [bullet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - BulletPhysics-体の局所空間にトルクインパルスを適用する
私は現在、 C++とOgre3Dを使用して書いている3D宇宙ゲームのBulletPhysicsLibraryを評価しています。btMotionStateから派生し、SceneNodesをプラグインすることで、Ogre3DとBulletをうまく統合しましたが、達成するためにbtRigidBody::applyCentralImpulseメソッドとbtRigidBody::applyTorqueImpulseメソッドに渡す必要のある値を計算するのに多くの問題があります。私が探している結果。
キーボードのLEFTキーまたはRIGHTキーを押すと、宇宙船がローカルのZ軸上を回転するようになります。上または下を押すと、ローカルX軸にピッチングします。AまたはZを押すと、ローカルZ軸の方向に加速/減速したい。いくつかのクォータニオン数学を使用し、SceneNodeに直接変換/回転を適用することで、Ogreでこれを完全に達成できますが、force /トルクメソッドを使用してこれらの値をBulletエンジンに適用したいので、移動/ピッチ/ロールを継続しますユーザーがキーを押すのをやめた後でも、必要に応じてオブジェクトに摩擦が作用して速度が低下します。
では、インパルスが世界の軸を使用するのではなく、体の現在の向きに基づいて作用することを保証するために、これら2つのインパルスメソッドに提供するために必要な値を計算するにはどうすればよいですか?
ありがとう、マーク
アップデート:
前後の動きに必要なインパルスを計算することはできましたが、トルクインパルス法で使用するためにヨー/ピッチ/ロールの値の向きを変える方法にまだ苦労しています。これが私が前進/後退運動をした方法です:
physics - 弾丸物理エンジン、オブジェクトをフリーズする方法は?
Bullet 2.76 を使用して、オブジェクト (リジッド ボディ) をフリーズさせて、動きを即座に停止させようとしていますが、衝突には引き続き反応します。
アクティベーション状態を DISABLE_SIMULATION に設定しようとしましたが、他のオブジェクトには事実上存在しません。さらに、オブジェクトが無効になっているときにオブジェクトが「衝突」すると、奇妙なことが起こり始めます (オブジェクトが静的なボディを通り抜けるなど)。
一時的に静的な剛体に変換するとうまくいくと思いますが、Bullet側でこれを達成するための既存の「ネイティブ」な方法はありますか?
編集:特定のオブジェクトの重力をオフにする方法はありますか?
physics - 弾丸物理エンジンでコンベアをどのようにシミュレートしますか?
いくつかの箱が一連のコンベア上を移動する際にかなり正確にモデル化する必要があるシミュレーションを書いています。現在、ボックスが静的なコンベヤーの表面と衝突しているかどうかを検出し、コンベヤーの速度に応じて各ボックスにインパルスを適用します。実際のコンベヤーの表面を動かして、アウトフィード側で包み込むか、溶解させて、インフィード側から成長させる方法はありますか? 使用する箇条書きのクラスとメソッドの名前だけでも、非常に役立ちます。
physics - 弾丸の物理学の問題
弾丸物理学を使用したことがある方のために...
hello worldの例http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Hello_Worldを読んで実行しましたが、次に進む場所がわかりません。
hello worldチュートリアルは、両方とも剛体であるbtStaticPlaneShapeとbtSphereShapeで構成されていました。球は静的な平面形状で跳ね返りましたが、問題ありません。
ただし、別の球を別の位置に作成すると、Bulletは2つの球の形状間の衝突を記録しませんが、両方ともbtStaticPlaneShapeから自動的に跳ね返ります。btStaticPlaneShapeが衝突するオブジェクトを自動的にバウンスさせるのは、どのような内部魔法ですか?
Bulletには、衝突後にオブジェクトを自動的に跳ね返す設定がありますか?または、手動で衝突をテストし、結果として生じる力を自分で適用する必要がありますか?
ありがとう。
game-physics - BulletPhysics の弾丸
弾丸物理学で弾丸をシミュレートする最良の方法は何ですか?
小さなカプセル体?ある種のレイトレーシング?他の何か?
可能であれば、いくつかのサンプルコードがいいでしょう。
bullet - Bullet Physics / jBulletを使用してボロノイ粉砕を行う方法の例/チュートリアルはありますか?
jBullet物理学とボロノイ粉砕で何かを動作させようとしています。私はそれが機能しているビデオをたくさん見つけることができますが、コード例はありません。
JavaまたはC++で問題ありません。いくつかのコードの例が必要です。これを行う例は1つも見つかりません。
誰かが良い例/チュートリアルへのリンクを持っているなら、私はそれを大いに感謝します。
ありがとう!
マックス
2d - 2D ゲーム - ミサイル発射問題
静止しているが、砲塔を動かしてミサイルを発射する戦車を作成する必要があります。
これは私にとって初めての Android アプリケーションであり、ゲーム開発も行っていないため、いくつかの問題に遭遇しました...
ここで、LunarLander サンプル コードの Android チュートリアルを読んで、タンクと移動砲塔を作成しました。したがって、このコードは LunarLander コードに基づいています。
しかし、ミサイルの発射に問題があり、SPACE ボタンが押されています。
UPDATE GAME メソッド
ゲームを実行するメソッド run...
問題は、砲塔から画面の最後まで SPACE キーを 1 回押すだけで弾丸が発射されるようにするにはどうすればよいかということです。
ここで私を助けてくれませんか、私はここで暗闇の中にいるようです...
ありがとう、
ニクサ
c++ - Bullet Physics メッシュをファイルからロードする
Ogre と Bullet で都市環境をセットアップしようとしていますが、Bullet にメッシュをロードする方法がわかりません。Google は Collada インポーターへの参照を示していますが、それは SVN から削除されたようです。
Ogre メッシュをインポートするのが最適ですが、.dae ファイルと .blend ファイルも持っているので、可能であればそれらを使用できます。
c++ - CでC++ APIを使用していますか?
ある日、昔ながらの C 言語でビデオ ゲームを書き始めることにしました。
それはとても楽しく、3 か月後 (仕事から少し離れていることもあります)、物理エンジンが必要であることに気付きました。
Bullet 物理エンジンを使用することにしました。これは、私が必要としているものの中で最も優れているものの 1 つと思われるためです。
その後、Bullet には実際には C API がなく、完全な C++ API しかないことがわかりました。その C API は維持されていません。
のろいの一日の後、私は自分のプロジェクトを C++ に「変換」しました。これは、すべてのヒープ割り当てを型キャストし、malloc と free の代わりに new と delete を使用し、「extern "C" でいくつかの定義をまとめた」という大胆な声明です。 { ... }'.
そうすれば私を撃つ人もいるでしょうが、この物理エンジンのような C++ API しか持たないパフォーマンス タスクを C で使用する方法は他にありませんでした。
だから今、私はg ++でコンパイルしていますが、まだほとんど「C」コードを書いています。コードが純粋ではなくなったので、少し満足できなくなりました。
C++ を使用すると奇妙なエラー メッセージが表示されますが、g++ パーサーが嫌いな言語については特に何も感じていません。オブジェクト同士をうまく跳ね返すことができるようになったという事実は別として、私のペット プロジェクトの小ささと純粋さの一部は今では見捨てられています。
私は正しいことをしたかどうか疑問に思っています。「ほとんどの」C コードに C++ コンパイラを使用することを心配せずに続行する必要がありますか? パフォーマンスの低下や過度の保守作業を行わずに、C でこの API を使用する他の方法はありますか?
bullet - ゴースト オブジェクト - 弾丸物理学
Bulletphysics で単純なゴースト オブジェクトを実装しようとしています。これがゴースト オブジェクトの作成方法です。
そして、これは衝突を見つけようとする方法です:
しかし、すべてのワールド オブジェクトがゴースト オブジェクトと衝突しているという応答が常に得られます。
機能的な単純なゴーストオブジェクトを取得するのを手伝ってくれる人はいますか?
ありがとう