3

主に Javascript (DOM およびキャンバス ベース) を使用し、C# やその他のテクノロジを少し使用したことがあります。しかし、そのほとんどはスプライト、バウンディング ボックス、単純なピクセルの動きなどに基づいていました。現在は、ベクトル グラフィックスを使用して、物理的な力によって駆動される現実的な可動関節を持つキャラクターを実装することに興味があります。canvas 要素または SVG のいずれかで何かを実行したいと思います。

ここには逆運動学に関連する多くの質問がありますが、それらのほとんどは少し低レベルであり、ベクトル、力、および工学用語の予備知識を前提としています。私が本当に感謝しているのは、股関節、膝関節、足首関節などを備えた基本的な棒人間を半現実的に動かす方法の背後にある基本原則に関するいくつかの指針です.

私は Knockout.js を頻繁に使用しており、Knockout の計算関数を介して各関節の位置決めを実装できるかどうか疑問に思っていました。たとえば、膝関節の位置は股関節と足首関節の位置とそれらに作用する力から計算されます。 . しかし、私は開始点を見つけるのに苦労しています: 私は家の中をスローモーションで歩き回り、人間の体のどの部分が実際に最初に動き、各部分がどのように動きに反応するかを特定しようとする狂人のようにしています。その他。ゲームやアニメーションでヒューマノイド フィギュアを動かす一般的な方法はありますか?

ベクトルや力ではなくピクセル座標で作業することに慣れていることを念頭に置いて、これを単独で取り組もうとするのは素朴ですか? 重心、運動量、その他すべてについてもすぐに学ぶ必要があることがわかりますか?

noobチュートリアルへのリンクを含め、どんな助けでも大歓迎です!

4

3 に答える 3

4

ほぼ3年後、私は自分自身の質問にある種の答えを提供することができます. JavaScript ライブラリの Physics.js と p2.js を発見し、それらのデモとソースを詳しく調べて、「物理学の考え方」を学ぼうとしました。簡単に言えば、まだ物理初心者として言えば、通常、オブジェクトを明示的に移動するのではなく、物体が質量などの基本的な物理特性を持ち、他の物体との制約に従い、それに反応する単純化された物理世界をモデル化します。重力や、足がボールを蹴るときなどの明示的な方向力など、それらに作用する力。これにより、速度と角速度が得られます。ライブラリは、構成されている形状に基づいて物体の質量中心の解像度を処理します (たとえば、複雑な多角形と四角形と円が単一の物理物体を形成する場合があります)。作用するさまざまな力と制約は、ある種の競合状態にあり、ライブラリは、物理世界の特定の「時間ステップ」の後に、すべてを配置する必要がある場所と方法を解決する作業を行います。これは、計算が必要な精度を可能にするのと同じくらい多くの反復を実行するさまざまな「ソルバー関数」の実装を介して行われます。

これらのライブラリはどちらも、物理モデリングのコアを視覚的なレンダリングの側面から分離し、さまざまなレンダリングの実装を可能にします。p2.js を使い始めたとき、デモでのレンダリングにPixi.js を使用していることがわかったので、その統合に基づいて構築された独自の単純な JavaScript フレームワークを構築することになりました: https://github.com/TomWHall/p2Pixi歩行ヒューマノイド自体を構築していませんが、単純化のために一輪車に制約されているヒューマノイドフィギュアを使用して「サーカス一輪車」デモを作成しました: http://booleanoperations.com/experiments/p2/unicycle/ライダーが左右に移動すると (キャンバスの両側で矢印キーまたはマウス クリック)、負または正の速度がホイールとシャフトの間の電動回転コンストレイントに適用され、補正力もホイールのさまざまな部分に適用されます。一輪車とライダーを組み合わせて、何らかの形のバランスをシミュレートします。回転拘束は、ライダーの足を一輪車のペダルに固定し、脚のセグメントを一緒に固定するために配置され、ジョイントの回転制限があります。重力は車輪を地面に引き下げ続け、車輪の動きにより、取り付けられた脚のセグメントが一緒に動きます。これは明らかに、一輪車とその乗り手が連携する仕組みの逆です。実際には、骨に対する腱のピストンのような作用の結果として脚のセグメントが動き、最終的には車輪の回転につながります。

于 2015-05-14T07:21:24.437 に答える
0

Bearing in mind that I'm used to working with pixel coordinates as opposed to vectors and forces, am I being naive to try to tackle this in isolation? Will I find that I immediately also need to learn about centres of gravity, momentum, and all the rest?

In short, yes. I'm not trying to be discouraging, but if you don't understand at least some of the mathematics behind IK, even the API's of appropriate libraries will be bewildering to you. You'll have less frustration if you do some learning first. By then you should have some solid understanding about where the model ends and where rendering the model begins.

于 2012-11-20T15:55:37.333 に答える