問題タブ [skeletal-animation]
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.
animation - three.js アニメーション: スケルトン/スキニング vs モーフ
そのため、モーフとスケルタル アニメーション (Blender からのエクスポート) をいくつか試した後、スケルタル ファイルはモーフ ファイルの 10 分の 1 近く小さいことがわかりました。明らかに骨格の方が良い選択肢のように思えますが、それを使用することに短所があるかどうか疑問に思っていました.
具体的には、モーフよりもスケルトンをアニメートする方がはるかに多くの処理が必要だと思います。一方が他方より優れているのはいつですか?100 モデルと 1 つだけのモデルをアニメートすることは問題になりますか? 骨格がより多くの処理を必要とし、アプリケーションをオンラインでホストする場合、帯域幅の減少 (ファイル サイズが小さいため) は、実行時に必要となる余分な処理に値するでしょうか?
ご意見ありがとうございます。
javascript - スケルトン アニメーションで最終的なボーン マトリックスを計算するにはどうすればよいですか?
スケルトンの最終的なボーン マトリックスを見つけるのに苦労しています。
私は自分のバインド ポーズ マトリックスが機能することを知っており、変換マトリックスが機能することを知っていますが、それらを乗算 (複合マトリックスと呼んでいます) してから、それらをその親の複合マトリックス (次にその親の親など) で乗算すると、正しいマトリックスを取得してください。
gl-matrix.js をベクター/マトリックス数学ライブラリとして使用していることに注意してください。そのマトリックス数学は逆に機能し、PositionMatrix * RotationMatrix * ScaleMatrix を必要とするワールド マトリックスを取得します。注文が混み合っているかもしれませんが、
バインド ポーズ マトリックスとボーン変換マトリックスの乗算順序、および最終マトリックスと親マトリックスの順序を変更しようとしましたが、今は気が遠くなりました。
とにかく、この質問をお辞儀で締めくくります。すべての頂点がその相対ボーン空間に事前に変換されているメッシュを考えると、各ボーンはポーズ マトリックスをバインドし、フレームごとの各ボーンはマトリックスを変換します。どうすれば最終的なボーン マトリックスを見つけることができますか?
編集:
まだ問題がありますが、現時点で私がどこにいるのかを言うのに役立つかもしれません.次の疑似コードは、モデルを完全にバインドポーズにします.
上記のスニペストは、行列関数を説明する必要なく、まさに何が起こっているかを示しています (その JavaScript は、mat4.copy や mat4.mul などの関数を介して行われます)。
私は次のようなことをしたかどうか考えました
私は最終的な行列を取得します (そして、poseMatrices の前に transformMatrices を使用しようとしました) が、脊椎が壊れ、脚が裏返しになっているモデルしか取得できません。
編集2:
さらに詳しく調べてみると、アイドル フレームのボーン変換行列の中央の 2 行が反転していませんか? 奇妙ですが、今それらを元に戻すとどうなるかを調べています
c# - Assimp を使用した OpenGL (GLSL) のスケルタル アニメーション
プログラムに GLSL を利用した骨格アニメーションを実装しようとしています...美しい 3D アニメーションではなく、モンスターを作成しました: https://i.imgur.com/dmpKg6n.gif
いくつかの異なる手法を試した後、恐ろしくはありませんが、それでも巨大なものを作成しました。
モデルはスーツを着た基本的な人間で、アニメーションは脚が揺れるのに対し、他のすべては静止したままです (非常に単純なテスト アニメーション)。すべてのボーンには、元の場所の t=0 に静的なキーフレームがあり、数秒ごとに位置がずれることを最小限に抑えようとしています。
問題は...かなり目に見えるはずです。また、モデルの身長が想定よりも高いことは確かです。
とにかく、これは私のオリジナルの Vertex Shader です。
これは私の新しいものです:
ボーン処理コードはきれいでも短くもありません: http://pastebin.com/A8x1GdUw
そのコードと元のシェーダーは、 http://ogldev.atspace.co.uk/www/tutorial38/tutorial38.htmlから派生したものです。
新しいシェーダーは、ランダムにグーグル検索することで得られました。
編集:私は今これを取得します:
このコードで: http://pastebin.com/PvCWUdJn
今...私は何を間違っていますか?! これを処理する「適切な」方法は何ですか? このチュートリアルの代わりに使用すべき高品質のチュートリアルはありますか?
更新: テスト アプリの完全なソース コード: https://github.com/mcmonkey4eva/skeletalanimationtest
java - ボーンの変換マトリックスを使用した頂点の変換
皆さん、最近私は 3D スケルトン アニメーションに頭を悩ませようとしていて、とても混乱しています。まず第一に、私はオフセットが何のために使用されているのか、そしてそれらが何であるかを理解していません.2番目に(それがオフセットに関連しているかどうかはわかりません)しかし、ボーンに変換マトリックスがある場合、ボーンのジョイントが起源。変換マトリックスは、私が理解しているピボットポイントとして原点を使用します。ピボットポイントは、原点である場合とそうでない場合があるジョイントでなければなりません。ありがとう!
cocos2d-x - SPRITER の作業 ( project.scml ) を cocos2d-x 3.3 に統合するには?
Spriter というソフトウェアでスケルトン アニメーションを作成しました。それはかなり良いです。プロジェクトを保存すると、.scml という拡張子で保存されます。
そのアニメーション プロジェクトを cocos2d-x で使用/統合する方法は?
animation - Three.js ではアニメーションが速すぎる
ColladaLoader を使用してモデルとスケルトン アニメーションを Three.js にロードしています。私が知る限り、正しい動きをしているように見えますが、何らかの理由でアニメーションが途方もなく高速です。アニメーションの速度をどのように制御しますか?
opengl - 上半身と下半身、グローバルまたはローカル空間をブレンドした骨格アニメーション
モデルが 2 つの立方体で構成されている場合、上の立方体と下の立方体は z 軸に沿って配置され、下の立方体は上の立方体の親になります。
2 つの骨格アニメーションを与える:
アニメーション A: 上の立方体は静的に保ち、下の立方体は Z 軸を時計回りに回転させます。
アニメーション B: 上の立方体は固定、下の立方体は固定
スケルタル アニメーション ファイルには、ローカル変換が保存されています。
つまり、アニメーション A では、下の立方体に 2 つのキー フレームがあります。フレーム 0: 0 度回転、フレーム 50: 360 度回転
次に、A と B をブレンドします。
A: 体重上限 = 1 体重下限 = 0
B: 体重上限 = 0 体重下限 = 1
正しい結果は何ですか?
を。上と下の両方が静的に保つ
b. 上の立方体は反時計回りに回転します
A の低い重み = 0 は、より低い変換を無視することを意味するため、グローバル空間でのブレンドです。
しかし、それらをローカル空間でブレンドすると、上の立方体のローカル回転に従って回転します。
私はグーグルで、ローカル変換をブレンドする方が良いと人々が言っているのを見ますが、正しい結果が得られるとは思いません。何か提案はありますか?