メニュー
人気記事
*正確な角度の計算方法 MMDでは座標の移動については、「軸の初期化」や「バイアス設定」により正確な位置を操作、数値入力により特定することが出来ますが、回転については数値での指定は出来ません。(初期化しかありません) 特に回転についてはMMD上で「移動量が少ない方向に最適化」しますので、一回転させたい場合でも最低3回はキーフレームを打つ必要があります。(場合によってはそれ以上の回数が必要です) 動画作成においては多少ズレがあったとしてもカメラワークなどで気にならないことも多いですが、(性格的に、あるいは意図的に)『キッチリしたい』という場合もあります。 メニューとしては正確な角度の計算方法があるわけではありませんが、「別フレームへのペースト」機能を利用することで、事前に回転用のポーズデータを作成しておいて使い回すということが可能です。 本ページでは、その準備の方法と利用の仕方を簡単に説明します。 ※ ページの内容は長いですが、作業自体は難しいものではありません。 -&b(){注意)} --「別フレームへのペースト」機能はモデル間のモーションの互換性を保つためのフォロー機能です。 ---ボーン名が異なる場合のモーションの共有を行う機能です(左髪とポニーテールなど) ---全てのモデルの柔軟な互換性を保障するものではありません。 --本作業内でポーズデータ(VPD)を直接編集する箇所があります。慎重に作業を行ってください。 --本ページの内容は「数字」や「計算」の成分が若干多く含まれています。 あらかじめご了承下さい。 |&blankimg(CalcRotate00.png,width=200,height=150)| |BGCOLOR(YELLOW):&b(){別フレームへのペースト}| ---- &b(){■ 目次 ■} #contents(fromhere) ---- **MMDの「回転」について MMDのモーションの内、回転の値はX,Y,Zの座標ではなく、「クウォータニオン(Quatanion)」と呼ばれる四次元数によって表されています。(詳しいことは判りませんが、とても計算が速いそうです) 数学的な難しい話は置いておいて、MMDを操作する上での「回転」とは、 -&b(){MMDの回転とは} --モデルの初期位置(角度)からの変化量 --直前のキーフレームとの変化において、「最短の距離」で移動 と理解しておけば特に問題はありません。&b(){「最短の距離」が重要なポイント}となります。 **MMDの「反転コピー」について MMDの便利な機能として「反転コピー」があります。説明する必要の無い、多用される機能ですが、反転コピーをあえて言葉として説明すると、以下の特徴があります。 -&b(){MMDの反転コピーとは} --ボーン名に「左」または「右」が含まれている場合、反対側に位置するボーンにキーフレームをコピーする。 ---反対側とは「左」のボーン名の場合は「右」、またはその逆であり、ボーン名によって判断される。 --コピーされる際、移動および回転の値は「Y軸反転」(プラスマイナス反転)が行われる。 ---ボーンの初期位置、親ボーンとの関係によって相対的に設定される。 --ボーン名に「左」も「右」も存在しない場合は自分自身に対して反転した値をセットする。 となります。今回の説明においては、&b(){「ボーン名によらず、値は反転される」ことがポイント}となります。 ---- **ダミーボーンを利用した回転ポーズデータの作成 MMDには「別フレームへのペースト」というモーションコピーのサポート機能があります。 これは、名称の異なる(コピー出来るボーンは1回に付き1つだけです)ボーン間でモーションのコピーを実現するもので、この機能を利用することで、事前に用意しておいたポーズデータ他のボーンに適用することが出来ます。 今回は「ダミーボーン」を利用し、正確な角度のポーズデータ(VPD)を作成します。 |なお、この作業は一度行ってしまい、ポーズデータが作成できれば、再利用するだけとなりますので以降は不要となります。| :(1) ダミーボーンの読み込み| ダミーボーンをMMD上に読み込みます。以下の説明においては「矢印アクセサリ」を作成して説明していますが、自分で利用される場合には、自分がわかりやすいアクセサリをご利用下さい。(アクセサリを利用しなくても設定は可能です) |&blankimg(CalcRotate01.png,width=160,height=120)| |BGCOLOR(YELLOW):&b(){ダミーボーンの読み込み}| :(2) ダミーボーンの回転| 自分が利用したい座標軸を回転させ、「フレーム登録」を行います。 回転量は目算で構いませんが「180度」行ってください。(本例ではY軸で実施) ポーズデータとして保存する為、&b(){必ず「フレーム登録」を行ってください。 |&blankimg(CalcRotate02.png,width=160,height=120)| |BGCOLOR(YELLOW):&b(){ダミーボーンの回転}| -上図では、"Y軸 : 180度" の回転を行っています。 :(3) ポーズデータの保存| 変更したボーンの「ポーズデータ」を保存します。 ただし、MMDでは「保存できるポーズデータはボーン2つ以上」の制限があります。1つのボーンしか選択していない場合はエラーメッセージが表示されますので、&b(){必ず2つ指定}してください。 |&blankimg(CalcRotate03.png,width=160,height=120)| |BGCOLOR(YELLOW):&b(){ポーズデータの保存}| -上図では、"ボーン01"と"ボーン02"を選択して実行しています。利用するのは "ボーン01" のみです。 :(4) ポーズデータの確認と変更| 作成されたポーズデータは「テキストファイル」です。メモ帳等での編集が可能です。 以下のような形で出力されていると思いますので、内容を書き換えます。(計算は不要です。下記例を参考としてください。) |&blankimg(CalcRotate04.png,width=180,height=92)| |BGCOLOR(YELLOW):&b(){保存ポーズデータの確認}| -Y軸:180度回転 >Vocaloid Pose Data file > >ダミーボーン.osm; // 親ファイル名 >&color(red){1}; // 総ポーズボーン数 > >Bone0{ボーン01 >0.000000,0.000000,0.000000; // trans x,y,z >0.000000,&color(red){1.000000},0.000000,&color(red){0.000000}; // Quatanion x,y,z,w >} >&color(red){※ 以降削除 ※} -&b(){編集上の参考情報} --基本的に、180度回転の場合はいずれかの値も「0」または「1」にする。(組み合わせ) --マイナスが付く場合もある。 |なお、2軸以上動かした場合、残りの1軸を移動させた方が移動量が少なくなるため、結果として2軸の移動のポーズファイルを作成するのは意味がありません。| #region(参考情報(X軸、Z軸)) -X軸:180度回転 >Vocaloid Pose Data file > >ダミーボーン.osm; // 親ファイル名 >&color(red){1}; // 総ポーズボーン数 > >Bone0{ボーン01 >0.000000,0.000000,0.000000; // trans x,y,z >&color(red){1.000000},0.000000,0.000000,&color(red){0.000000}; // Quatanion x,y,z,w >} -Z軸:180度回転 >Vocaloid Pose Data file > >ダミーボーン.osm; // 親ファイル名 >&color(red){1}; // 総ポーズボーン数 > >Bone0{ボーン01 >0.000000,0.000000,0.000000; // trans x,y,z >0.000000,0.000000,&color(red){1.000000},&color(red){0.000000}; // Quatanion x,y,z,w >} #endregion :(5) 変更したポーズデータの取り込みによる確認| 変更されたポーズデータをMMD上で取り込み、回転軸が想定通りかどうか確認してください。 (3)で出力した状態で再度取り込むと、同じ状態(見た目的に)となります。 正しく取り込めなかった場合は、上記(4)を再度行ってポーズデータの内容を確認してください。 |&blankimg(CalcRotate05.png,width=160,height=120)|&blankimg(CalcRotate06.png,width=160,height=120)| |>|BGCOLOR(YELLOW):&b(){ポーズデータの取り込みと確認}| -上図では、一旦「初期化」して取り込み、確認を行っています。 ---- **MMDによる正確な角度のポーズデータの作成 MMD上に角度計算用の計算機があるワケではありませんが、MMDの補完機能を利用して、正確な角度のポーズデータが作成できます。 :(6) フレームを移動させたポーズデータの読み込み| 上記 (5) までで作成したポーズデータが 180 度ですので、フレームを180まで進めてポーズデータを取り込みます。 なお、ポーズデータは&b(){「フレーム登録」を行わないと反映されません}ので、必ず行ってください。 |&blankimg(CalcRotate07.png,width=160,height=120)|&blankimg(CalcRotate08.png,width=160,height=120)| |>|BGCOLOR(YELLOW):&b(){フレームを変更してポーズデータの取り込み}| -上図は説明の為、上面からの視点としています。 :(7) 目的の角度のフレームでのポーズ保存| 上記 (6) の後、自分の希望する角度までフレームを戻します。 60度の角度が欲しい場合、60のフレームまで戻ります。MMDの補完機能(線形)により、正確な角度までボーンが回転されます。回転されたボーンの情報(位置)で「フレーム登録」し、新たなポーズデータとして保存します。 |上記 (4) ではマニュアルにより数値を変更しましたが、数値についてはMMDによって正確に計算されていますので、変更の必要はありません。2つ以上のボーンを指定する必要がありますので、不要なボーンの情報は削除しても問題ありません。| |&blankimg(CalcRotate09.png,width=160,height=120)| |BGCOLOR(YELLOW):&b(){フレームを変更して保存}| なお、180度の回転方向は MMD により決定されており、反対側については移動されませんが、「反転コピー」を利用出来ます。お試し下さい。 ---- **MMD上での利用(別フレームへペースト) &color(red){※ 現在作成中 ※} ---- **コメント #comment(below,vsize=3)
5時間前
4日前
5日前
6日前
atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!
最近アクセスの多かったページランキングです。話題のページを見に行こう!