2

隣接する面の4つの頂点がメモリ内で同じ頂点になるように、2種類(たとえば2つ、実際にはn> 1)の長方形のプリズムが「互いに接続されている」と仮定します。つまり、2つの木製ブロックのように、一方が他方に積み重ねられ、下部に4つの頂点、2つの間で共有される中央に4つ、上部に4つの頂点があります。ここで、最初に「上部」の木製ブロックで特定の回転を実行できるようにします。これは、4つの共有頂点の中心点を持つヒンジ上にあるかのようになります。

したがって、肘のように、特定の角度で最大45度までしか曲がることができないとしましょう。回転を実行するには、オブジェクトを構成する8つの頂点をその見えないヒンジの中心点の周りで回転させます。その過程で、他のブロックの4つの共有頂点は多少移動しますが、ヒンジがそれらの間の中心点であるため、下部のブロックから「移動」することはありません。それらを木製と呼ぶのは、特定の方法で変形するため、直感に反していると思いますが、私はそれを視覚化するように設定しようとしていました。とにかく、この下部ブロックを別の方法で回転できるようにしたいが、上部ブロックを取り付けられているように動作させたいとしましょう。したがって、下部のブロックが移動すると、上部のブロック一緒に振り回されますが、それらの間のヒンジにある屈曲もあります。

「一番上の」ブロックから始めて、依存関係チェーンを下に向かって、現在のブロックとその「上の」ブロックのすべての頂点で回転を実行して、軸角度またはクォータニオンを介して段階的に変換を行うことを検討していました。ただし、これには、このチェーンの各ステップで、現在のヒンジを原点として配置するためにすべての頂点をオフセットし、回転を実行してから、前のオフセットを逆にする必要があります。これを処理するより効率的な方法はありますか?つまり、速度の効率は、メモリに追加の前処理されたデータがあることは大したことではありません。また、このような線形の依存関係チェーンを期待できない場合もあります(たとえば、上部のブロックが下部のブロックに接続されてリングを形成するなど)。

4

3 に答える 3

0

既存のツールの使用を検討してください。剛体のリンクに関するこの質問を見てください。

https://physics.stackexchange.com/questions/19724/how-to-represent-the-effect-of-linking-rigid-bodies-together

于 2012-01-27T19:21:11.147 に答える
0

多関節のシングルエンド チェーンを処理する標準的な方法は、スケルトン アニメーションです。「ボーン」要素のチェーン (相対移動/回転関係によって定義されます) を使用し、ボーンに基づいて線形補間を行うオプションを使用して、 「スキン」頂点の位置。(ポーズを完全に定義するには、各「ジョイント」の回転角度を決定する必要があることに注意してください。)

要素のリングは、各ジョイントの回転を他のすべてのジョイントから独立して定義することができなくなるため、扱いがより困難になります。この問題を解決するには、すべての制約を含む物理シミュレーションまたはその他のソルバーを設定します。正確に何をすべきかは、オブジェクトをどのように操作する必要があるかによって異なります。オブジェクトがゲーム エンジンの一部である場合、物理シミュレーションは理にかなっていますが、手動でアニメーション化する場合は、半自動のリギング (キーワード: 逆運動学)。

于 2012-01-27T19:25:07.233 に答える