メインメニューを開く

差分

スケルタルアニメーション

505 バイト追加, 2024年7月4日 (木)
スケルタルアニメーションでは「時間ごとのボーンの移動量や回転量」というデータだけを記録しておき、再生時にメッシュの変化を計算してやります。ボーンは階層構造になっており、親ボーンからの変化の相対値だけを保持するのが一般的です。
なお、この技法は決して実際の解剖学や物理的なプロセスを模倣するものではありません。ボーンというと人間や動物というイメージですが、実のところなお、ボーンというと人間や動物の「骨」というイメージですが、この技法は決して実際の解剖学や物理的なプロセスを模倣するものではありません。人体であれば本来なら曲がらない方向にも普通に曲がります。実のところ[[ノートパソコン]]の[[液晶]]の繋ぎ目やドアと壁を繋ぐ「ラッチ」みたいなものです。なので「ドアの開閉」などにも応用できます。の繋ぎ目やドアと壁を繋ぐ「ラッチ」みたいなものです。そのため「ドアの開閉」などにも応用できます。
== 主な用語 ==
=== Bone Weight ===
メッシュが保持する「ボーンとの繋がり」が複数に渡る場合の影響度を表します。一般的にBone Weight配列の合計は「1」になります。Weight配列の合計は「1」になります。この値を使うことで関節付近のメッシュを変形する際におかしくなる現象を軽減できます。関節付近ではないメッシュでは特定のボーンにパラメーター全振りです。
[[バーテックスシェーダー]]ではだいたいこんな感じです。
シェーダーで処理する場合は「ボーンとの繋がり」をvec4に収めたいので最大4個が定番です。別に4個でなくてもいいです。シェーダーで処理する場合は「ボーンとの繋がり」をvec4に収めたいので最大4個が定番です。別に4個でなくてもいいです。人体のボーンの場合は3分岐から4分岐くらいなのでまず問題になることはありません。
<source lang=c>
layout(set = 0, binding = 3) uniform BonesBuffer
}
</source>
 
== 関連項目 ==
* [[スキンメッシュ]]
 
[[category: 3DCG]]