-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VRM向けモーションデータの標準化 #118
Comments
ご要望ありがとうございます、やはり独立したモーションファイルがあると便利ですよね。 |
hips の高さの格納には大きく賛成します。しかし、 Humanoid ボーン以外へのアニメーションは許可しない感じですかね? これについて、 root をボーンとして定義したアニメーションもといルートモーション(※1)への対応を希望します。 最近のゲームエンジンではルートモーションという機能があり、移動モーションや攻撃モーションを実装する際に、基本的に hips の上に root ボーンを追加し、その root ボーンへアニメーションをつけます。この時、体格差による歩幅を調整する為には、足の長さつまりアニメーションを作成したモデルの hips の高さと適用するモデルの hips の高さの比率を用いるとスリップを抑える事ができます。 root ボーン自体はモデルの読み込み時に原点にジョイントを追加するだけなので、アプリケーション側で容易に対応できるのですが、アニメーションファイルの方で root ボーンが許可されていない場合どうにもならなくなるので...。
また、 0.x 現在の VRM ではモデルのローカル方向が破棄されているので、ローカル方向が定義されていないと指が変な方向に曲がるといった事が考えられます。そちらについては #34 を参照して下さい。 ※1: ルートモーションについてはこの辺りを参照... Unity にも同等の機能がありますが Mecanim(?) 準拠で分かり辛い |
こちらの仕様は、結局のところ盛り込まない方向なのでしょうか? 現状、ボーンアニメーションの多くは、ゲームエンジンのリターゲットで対応しています。 非常にシンプルな提案なのですが、glTF2.0のアニメーション仕様を、VRMにそのまま継承する案はいかがですか? リターゲットは、ゲームエンジンや3DCGアプリ側に責務を持たせるパターンです。 |
glTF 2.0 のアニメーション仕様を VRM にそのまま継承するのであれば、単純にアニメーションを付けたモデルを glTF として出力すればよいように思えるので、VRM としてアニメーションデータを定義する意義は薄いと感じますがその点は如何でしょうか。 一つ問題があるとすれば、glTF アニメーションはローカル軸破棄前のレストポーズを起点としてアニメーションを行います。また、私の記憶が間違っていなければ、glTF アニメーションには「レスト」と「ポーズ」の区別が存在せず、全て「レスト」の値をアニメーションさせるような形で記録されているという点において glTF 2.0 のアニメーション仕様そのままでは少し扱いづらいかと感じます。この点、VRM モデル自体がローカル軸を破棄する現状においては、アニメーション側もローカル軸を破棄すればさほど問題にならないので、エクスポーター側の問題となります。 なので、例えば @qhnu さんが blender を使っているのであれば、「blender の VRM addon にローカル軸を破棄した上でのアニメーション付き glTF を出力して欲しい」という要望を出すのが良いのではないでしょうか。 またその際、モーションの使い回しを考えているのであれば、human bones のリネームをするしない等のオプションがあったほうが良いかもしれません。VRM モデルの glTF ノードとしてのボーンの名前には元の名前がそのまま用いられているので、ボーン名に直接 glTF ノード名を用いるアプリ上で、異なるボーン名をもつモデルの間でアニメーションを共有するのであれば、どこかでリネームが必要になります。 |
確かにエクスポーター(または利用環境側のインポーター)の役割だと思いました。 なお、なぜVRMにアニメーションを持たせたかったか?という経緯だけ簡単にご説明致します。
という流れで要望を出しました。 アニメーション側のローカル軸を破棄すると対応できる、という情報は初耳でした。 |
@qhnu もしくは、初めからローカル軸を破棄した状態のモデルをアニメーションさせて glTF アニメーションを書き出すことで、想定通りのアニメーションが適用できる筈ですが、そもそもローカル軸を破棄してしまうことによりモデルの関節の正しい回転方向が分からないという問題があるので、決して良い方法とは言えません。宜しければ #34 やこちらの記事も参考としてご覧下さい。 |
VRM連携アプリを作ってる側としての意見です。
VRMは例えばApexのようなシューターゲームでも使用出来ることを目指しているのだと思いますし、各ユーザーのアバターでシューターゲームを楽しめたらきっと楽しいと思います。 |
過去にコメント書いておりますが、VRMファイルに仕込むのではなく新しくVRMAファイルが作れるという説明をVRM meetupで聞いて納得しました。 |
基準について 現状では、アニメーション作成時に利用するボーンは厳密な基準がありません。Tスタンスであることは察せられるものの、体形からくるボーンの位置などは未定義です。 どのみち適用する先のVRMもバラバラではないか、というのはあるかもしれませんが、だからといってアニメーション自体がバラバラでいいわけではありません。 例えばVRoidのモデルでもよいのです。アニメーション作成の基準モデルを決めておいたほうが良いと思います。 |
人型3Dモデルのアニメーションを、異なるモデル・アプリケーションで共有するためのファイル形式を定義できないでしょうか。
一案として、例えば以下のようなデータ構造で。
︙
︙
︙
︙
︙
︙
VRMファイル自体についての仕様ではありませんが、VRMを前提とした形式になると思いますので、こちらにissueを立てさせてもらいます。
The text was updated successfully, but these errors were encountered: