スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

捩りボーンのススメ

 MMDユーザーの知り合いとの雑談にて気になった事があったので記事にしてみます。

 準標準ボーンというよりは、実の所、MMD標準付属の初音ミクver2から搭載されているので標準ボーンと言えなくもない捩りボーン。
 2009年以前はともかく、それ以降のモデルには搭載されている率が高い捩りボーンですが、実のところ現時点でも有効利用されているかどうかは、判断が付き辛い所です。
 逆に、比較的新しいモデルで準標準化されているものでも捩りだけが無い場合もあります。

 捩りボーンは、モーション作り手側にとっても動画制作側にとっても重要なボーンであり、かつ今となっては必須とも言えるボーンの一つです。
 実の所、言うほど捩りボーンの効能を把握している人はそう多くはないのかな?(特にモーション作成側)と思う節もあったので、説明記事を記しておきます。


■捩りボーンとは

基礎的な部分は、VPVP wikiにて説明があります。
さらにここでは、より詳しく実用的な記述をしていきます。

▼捩りボーンの中心位置とウェイト
捩りボーンは [] [ひじ] ボーンの中心位置とは違う部分に存在し、ウェイト(ボーンと連動する頂点、とその連動の割合)が異なります。

捩り_01
 ↑左腕ボーンのウェイト(初音ミク_ver2モデル)

捩り_02 
 ↑左腕捩りボーンのウェイト(初音ミク_ver2モデル)

手首ないし指先の最終位置がほぼ同じようになるよう、腕ボーンと捩りボーンそれぞれを単独で使ってみると……

捩り_03 

ウェイト設定状態と合わせてみると分かりやすいでしょう。
腕ボーンでは肩まで影響が出てしまうのと、二の腕が大きく回転してしまっています。また、腕全体の軸が微妙にズレてしまいます。
単純な回転の場合での差異は大きく見られない場合もありますが、捩りではなく腕ボーンの回転で行うと、想定とは異なった軌道を描いてしまう事もあります。
一方、捩りボーンでの回転を行えば、回転軸の中心が腕の中心となっており、肩に影響を出さずに綺麗に捩り回転を行えます。
腕だけでなく、ひじの方も同じような構造です。

モデルによって、肩から指先までのボーン位置・ウェイトはまばらです。肩ボーンの角度や腕や肘の長さは当然ながらモデルの体系によって変わります。
ですが捩り方向に限ってではありますが(捩りのウェイト設定こそ異なれど)、効果としては共通化しやすいので、モーション配布・流し込み等を行う場合には非常に便利なボーン構造となります。

▼捩りボーンの回転について
捩りボーンは軸制限が掛かったボーンです。基本的には腕が伸びている方向に対し、X軸(捩り)のみ動くよう設定されています。
また、ボーン操作時において、Global/Local設定に関わらず同じ動作をします。

▼捩りボーンの名称について
MMD付属の標準モデルに合わせる場合、
[左腕捩] [右腕捩]
[左手捩] [右手捩]
となっています。
ですがモデルによっては
[左腕捩り]
など送り仮名があったり、
[左ひじ捩]
など、「手」ではなく「ひじ」表示になっているケースもあります。
MMDではボーンの名称が異なると、ポーズ・モーション流用時に読み込まなくなります。
名称が異なるボーン構造を持つモデルへ読み込みを行う場合、同じプロジェクト内で配布元と同じモデルを用意し、そこから『別フレームへペースト』機能を使うなどしてモーションを移植させる必要があります。

▼捩りボーンのウェイト設定
捩り_04捩り_05捩り_06捩り_07
(左上から [左腕] [左腕捩] [左ひじ] [左手捩] それぞれのウェイト状態)
モデルはかこみきさんの『アリアBモデル』

基本的なウェイト設定は標準モデルなどを参考にすると良いでしょう。
モデルの腕が素腕ではなく長袖タイプのモデルや、腕にテクスチャが貼ってあるモデル等では、より細かくウェイト設定を行う事で綺麗な変形が望めます。
上図のアリアBモデルではその様子が見れます。

捩り_08 捩り_09

▼捩りボーンを含めた腕周りの親子関係
これについても同様に、標準モデルなどを参考にしてみて下さい。
構造は単純で、肩から順に

肩 → 腕 → 腕捩り → ひじ → 手捩り → 手 → 指

となっています。

■モーション作成時における捩りボーンの活用

モーションを作成する場合において、捩りボーンの有無は大きく作用します。作業効率も段違いになります。
旧標準ボーン構造(捩りのないモデル)にて腕周りの動き(特に指先ないし手首の軌道)が思ったように動いてくれず、キーフレームを多く打ってしまうケースもあるのではないでしょうか。
また、モデルに搭載されていても捩りボーンを使用しない場合も同様です。
軸もウェイトも違えば、最終的な仕上がりにも影響を出します。
最近配布されたモデルでも捩りボーンの有無は確実ではないですし、配布を前提としたモーションを作成する場合には悩む事もあるでしょう。
どちらにしろ、腕周りの構造はモデルによって変わってしまうので、ある程度切り捨ても考えて割り切ってしまった方が楽な場合も多いです。

さて、捩りボーンを使用する場合はどのようにしていくと良いか説明していきます。

▼腕周りは必ず Local 設定で行え!
腕周りも含めて(IK以外)、Global設定でボーン操作する事は稀かもしれませんが、一応注意喚起しておきます。
基本的には回転操作のみのボーンは Local 設定で行うと良いでしょう。

▼腕・ひじのX軸は絶対に弄るな!
上記を前提とし、特殊な場合でない限り、腕・ひじボーンのX軸は弄らずY/Z軸のみとしましょう。
さらにひじについて弄るのは、Y軸のみです。
肘のZ軸回転方向は、腕の捩りボーンに分散させる事で軌道調整がかなり楽になります。

▼腕全体を捩る場合は段階を踏め!
腕から手先にかけて大きく捩る場合は、[腕捩] [手捩] [手首] の順に、徐々に回転させる事により、自然な回転をさせる事ができます。
一気に腕だけ、もしくはひじだけで回転させると軌道に影響が出ますし、何より不自然な回転に見えてしまう事もあります。
手首については、本来の人間の構造としてはX軸には周りませんが、若干の補正や雰囲気作りとして手首も含めた回転はアリです。
(モデルのウェイト設定によりけりですが、捩りとの兼ね合いで綺麗に曲がる場合もあります)

▼捩りボーンは、腕・ひじの多段ボーンである事を徹底しろ!
構造上は親子関係にあり、また中心軸も異なるボーンではありますが、モーション作成時においては単なる親子ではなく、腕・ひじそれぞれの多段ボーンとして利用・活用する事を強く勧めます。
X軸回転を分離する事により、より少ないキーフレームで多用な軌道を描く事ができます。
補間曲線設定と共に使う事で、トレース時の省力化、細かいブレの表現などが楽になります。

多段として分離することにより、必ず腕ボーンと同じキーフレームに捩りボーンを配置する必要はありません。
それにより連続したなめらかな動きで、より複雑な軌道を少ないキーフレームで表現できます。

■捩りボーンの活用例

動画で見た方が早いと思うので、動画にまとめてみました。
説明が被る部分もありますがご覧頂ければと思います。


今回は以上です。


スポンサーサイト

MikuMikuDance 2013年6月時点での更新まとめ

連続出張の憂さ晴らしなのか、プログラミングの熱が再発したのか、単なる気紛れなのか分かりませんが、6月の時点で何と16回もバージョンアップされています(当日中の微修正含む)。
バージョンコレクターで取りこぼしした人も多いのではないでしょうか。
新機能も増え、さらにUIの整理も行ったという感が強いバージョンアップとなりました。
長くなりますが、どう変わっていったのかをざっとおさらいしてみます。
(バグフィックス・不具合修正については基本触れません)

Ver.7.39.(2013/06/01)以降
■カメラモードでのフレーム挿入・削除機能追加
 これは何気に大きい更新です。
 今迄であれば、カメラのキーフレームはフレームコピー・ペーストで動かすかもしくはドラッグで動かすかのどちらかとなり、現在位置フレームより後を一括してトリミング(微調整)するのがやや面倒でした。
 この機能のお蔭で、カットの切り替えタイミングやキーフレーム間の調整が楽になります。
 カメラモードであれば、「I」キー、「K」キーのショートカットがそれぞれ挿入・削除の役割をするので、モデル操作時と同じ感じで行えます。
MMD201306_14
 また「U」キー、「J」キーのショートカットは照明用に割り当てられています。

■フレームのボーン名欄の幅を増加
MMD201306_01
 文字がボールドになり、幅も広がり全角4文字以上が登録されているボーン名が見れるようになりました。
 但し、PMD/PMXフォーマットとして文字制限は変わっていません(MMD上での表示のみ)

Ver.7.40以降(2013/06/07)
■カメラにボーン追従モード搭載
 カメラモーションの自由度を高める為の新機能。
MMD201306_02
 カメラの目標点を設定したボーンに固定させる機能です。
・対象物を自動的に追いかけるようなカメラを付けたい時
・多段ボーンを使い、横に動きながらカメラを揺らすようなモーションを付けたい時
などに活用できます。
 関連ボーンを設定すると、自動的に全ての数値がゼロになり、距離もゼロに設定されますので、任意で距離(ズーム)を取れば、設定したボーンを追いかけるような視点になります。
 ボーン設定状態などはキーフレームに登録されますので、途中で切り替えも可能です。
(その中間は補間されません)

 現在では便利なカメラ用モデルも配布されているようです。

■vmd情報に、モデルの表示・IK情報を組み込むように変更
 従来では表示・IK情報はpmm(プロジェクトファイル)にしか記録されませんでしたが、この変更でvmdにも保存できるようになりました。
 IKのオン/オフを途中で切り替えるモーションも配布して共用化できるようになったという事です。
(※但しMMD Ver7.40以降に限る)

■省エネ仕様
MMD201306_03
 従来では、マウスが操作画面上で動いている時、もしくは物理演算モードが「常に演算」になっている時に、常時描写が更新されている状態になっていましたが、この仕様が追加されて変更になりました。
 省エネモードがオフの時は、どんな状態であれど常に描写更新し続けられます。物理モードのオン/オフに依りません。
 逆に省エネモードがオンの時は、物理モードが「常に演算」になっていたとしても、描写更新は止まります。
 ただし、操作画面上でマウスを動かしている時だけは描写更新されます。
 多くのモデルやアクセサリなどを読み込んでる時には、上手く使い分けしてみて下さい。

■サウンド再生時のボリューム追加
MMD201306_04
 wav再生時の音量がMMD内で調整できるようになりました。
 Windows標準のボリュームコントロールとは連動していません。
 ですので、Windows標準のボリュームコントロールで最大値を決めておき、MMD上でその時に合わせた大きさに変更しながら作業できます。
 作業しながら別のソフトで音楽を聴いたりする時にも楽になるでしょう。

■上下キーで選択ボーンを変更できる機能追加
MMD201306_05
 カーソルキーの「↑」「↓」キーで(フレーム操作窓のボーンリストに)隣接するボーンに選択移動する事ができるようになりました。
 特に肩・腕周りのボーンは、よく行ったり来たりしつつ操作する事が多いので、この機能で作業が早くできるようになります。

■ショートカットやアイコンにpmm以外にもpmd,pmx,xファイルをドラッグ&ドロップしてもMMDが立ち上がる仕様に変更
 従来であれば、MikuMikuDance.exeのショートカットやアイコンにドラッグ&ドロップして読み込めるファイルはpmm限定でしたが、この仕様変更によりモデルやアクセなどもドラッグ&ドロップしてMMDを立ち上げる事ができるようになりました。
 また、MMD Model Managerなどのツールから、ランチャを使ってMMDを起動させつつモデルを呼び出す事もできるようになりました。


Ver.7.94(2013/06/12)以降
■『"正面"』ボタンによる右ドラッグ軸傾き解除機能追加
(以下Readmeより抜粋)
 ボーン追従カメラ時にカメラモードからモデル操作モードへ移行すると、右ドラッグによる画面の回転軸が傾く場合があります。
 これはモード移行時に表示されるモデルの位置を一致させるために、どうしても必要な傾きで、バグではありません。
 ただし、そのまま操作するのは不便である場合もあるため、『視点パネル』の『"正面"』ボタンを押すことで傾きを0にできるようにしました。
(傾きを0にする場合は『モデル編集時カメラ・照明追従』を切って下さい)

■『モデル編集時カメラ・照明追従』メニューと同じ操作をする『"カメラ"』ボタン追加
(Ver7.98以降では『追従』ボタンに変更)
MMD201306_06
 このボタンをアクティブにすると、モデル編集時にもカメラ・照明が変化するようになります。より、アクセスしやすくなりました。
 この機能は、表情や目線、影の出方などをチェックしつつモデルを微調整したりする時には便利です。

Ver.7.97(2013/06/29)以降
■メニューの「編集」項目に"ボーン・カメラ数値入力"復活
MMD201306_07aMMD201306_07b

 実は私はこの機能がいつ削られていたのか把握していません。おそらく画面デザインを変更した時かもしれませんね。

MMD201306_08
 おそらく操作画面下にある欄で入力できるので不必要だったと思われたものを、復活させたようです。
 下の入力欄は現在でも使用できますので、二つの方法で数値による制御ができるようになっています。

■アクセサリを画面右下のアイコンで移動できる仕様追加
MMD201306_09
ボーン操作座標軸選択で、「Local」←→「Global」の選択をする部分に、「accessory」が追加されました。
「Local」→「Global」→「accessory」→「Local」と回るようになります。
これにより、選択中のアクセサリの操作がかなり楽になります。
MMD201306_10
従来はこのアクセサリ操作パネルの数値入力で位置調整を行うしかありませんでしたが、ボーン操作をaccessoryに切り替える事で、モデルのボーンと同じく軸アイコンのドラッグで操作できるようになりました。
より視覚的・感覚的にアクセサリの配置が行えます。
またエフェクトの操作も行えますので、数値に頼らず見た目で判断しながら調整可能です。

その他細かい事やTIPSなど
■画面デザインが一新
見た目がシャレオツに。

■デフォルトの視野角が30に変更
従来の45度から30度に変更されました。
一眼レフカメラなどの標準レンズと言われる50mmレンズと同等となる視野角が27度となりますので、より標準的なパースペクティブの設定になっているとも言えます。

■PMXフォーマット関係のバグフィックス
・SDEF変形のバグ修正
・AVI出力時のボーンモーフの1フレ遅れ修正
表情のモーフにて、頂点を移動するタイプ(モーフ)ではなく、ボーンとウェイトで動かすタイプの表情(ボーンモーフ)を搭載しているモデルもありますので、これでズレが解消されます。
(両方組み合わせてグループモーフになっているのもあったりします)

■カメラモード・モデルモードの素早い切り替え
MMD201306_12
このボタンでカメラモードとモデルモードを素早く切り替えできます。
ボタンの表示は現在のモードではなく、切り替え先モードの名称になりますので
「モデル編」:カメラ・照明操作モード
「カメラ編」:モデル操作モード
となります。
現在どのモードなのか見分けるには、下のパネル列で見分けるか、ボタン横にある表示が「ボーン位置」「カメラ位置」のどちらになってるかで見分けて下さい。

■表情パネルにおける表情選択方法の変更
MMD201306_13
従来では表情名の左右にあった切り替えボタンで選択していましたが、新しいバージョンではプルダウンメニューになりました。
より高速に任意の表情にアクセスできるようになっています。

■MikuMikuEffect ver0.36
ほぼ同時期に、MMEもVer0.36に上がっています。
MMD ver7.98でも使用できます。
いくつかの不具合が修正されていますので、MMD Ver7.39.以降にバージョンアップすると同時にこちらも上げておくと良いでしょう。

■ボーン強制移動
MMD201306_11
操作画面下にある数値入力で、移動不可ボーンも直接入力で移動させる事ができます。
キーフレーム登録も可能ですが、vmdファイルには登録されません。pmmファイルでは登録されます。
(恐らく想定外の挙動)

■より確実な時間消費機能
人生の貴重な時間を、より確実に消費していくよう設計されています。


それでは皆様、よきMMDライフを。

テーマ : MikuMikuDance(MMD)
ジャンル : サブカル

tag : TIPS

MikuMikuMoving Ver1.1.8.0リリース

リビジョンナンバーが上がり、久々となる大型アップデートです。

MikuMikuMoving - Mogg Project
https://sites.google.com/site/mikumikumoving/


■ SDEF制限一部解除
 MMDとの互換を取る為に先日、PMXEdtiorでもSDEFの親子関係制限が解除され、MMDとほぼ同等の変形機構となりました。MMMでもそれを受け、SDEF制限を一部解除した模様です。
 ただ、まだ暫定対応との事で、完全にSDEFの変形機構がMMDやKeynoteのそれと合致している訳ではないようです。これは以前のエントリーでも説明した通り、MMMでは変形をGPU側で行っており、プログラム的には難易度が高い状態になっている為と推測されています。

 現時点では、直接の親子ではなく兄弟関係にあるボーンであれば、正常に動作するようです。従妹まで離れてしまうと、想定通りの動きとはならないようです。
mmm1180_SDEF変形(Moggさんのにゃっぽん日記より引用)

 以下はちょっと現バージョンでmqdlさんのIAx.pmxを使用して比較してみます。
MMM1180_SDEF2
 まずは上半身ボーンから。上半身ボーンを45度回した状態にしています。視点は適当な角度なので完全一致とはなりませんが、3つとも違和感を感じる程の差異はほとんど見られません。
 SDEFが上手く動いている状態となります。

 次に上半身2ボーンを動かしてみます。
MMM1180_SDEF3
 肩のアップとなっていますが、上半身2ボーンの中心部分は上記と同じように問題なく変形するのですが、一部、肩紐の部分に差異が見られたのでここを撮っています。
 肩紐部分の頂点は、「上半身2」と「肩ボーン」の2つにウェイトが乗せられているのですが、この二つは直接の親子ではなく、「上半身2」→「鎖骨(隠しボーン)」→「肩ボーン」となっており、孫となっています。
 恐らく未対応部分というのはこういう事ではないかと。
 現状ではこの部分だけ(気になる部分だけ)BDEF2化してしまうという手もあります。
(もしくは鎖骨ボーンに割当?)

 少なくとも、上半身・上半身2のような目立つ部分では格段に綺麗な変形となっていますので、実用不可という訳でもありません。
 恐らく時間が掛かるとは思いますが、次期の改善更新を待ちつつ、上手い事使っていくのがベターかもしれません。


■ タイムライン上での補間編集機能
 恐らく今回の大きな追加機能として、これが挙げられます。
 従来の補間曲線編集は、左下にある補間曲線パネルのみで編集をしていました。
MMM補間パネル
(MMM補間操作パネルのおさらい図)

 MMDでの補間操作を継承しつつ、編集に便利な補間プリセット機能やモーフ対応などが施されています。

 さて、補間曲線を上手く扱う事により少ないキーフレームでぬるぬると滑らかな動きを作る事が出来ますが、その時にネックになっていたのが、複数キーフレーム間の曲線の接続部分をどうするのか、という点です。
 複数のキーフレームが等間隔であれば接続は比較的容易でしたが、そうでない場合は調整の難易度がかなり高くなり、感覚に頼って補間編集をするしかありませんでした。
 この辺りの解説は、以下の動画をご覧ください。


 それを容易に出来るようになったのが、今回の機能です。
 先に結論から言うと、
「補間(変化量・加速度)の連続性が視覚的に確認できる機能」
 となります。
(あくまでも視認できる機能であり、自動的に補間を滑らかにするものではありません)

 まずは、タイムラインウィンドウの下部にある「補間表示ボタン」を押します。
MMM1180_補間1

するとタイムラインの表示が変わり、ボーンリストの下に大きなエリアが出現します。このエリアが補間編集ブロックとなります。

MMM1180_補間2

 何もキーフレームが打たれていない状態では空白ですが、キーフレームを打つと以下のようになります。

MMM1180_補間3

 横にあるR/X/Y/Zのボタンが各軸の選択となり、何も選択されていない状態ではRが選ばれている状態と同じになります。
(R=Rotate・回転 X/Y/Z=移動可ボーンのみ、X/Y/Z各軸の変化量)

MMM1180_補間4

 移動可ボーンではXYZそれぞれに、前のキーフレームとプラスマイナス逆方向に動いている場合だと、補間ラインが赤色で表示されるようになっています。
(例:足を右に動かしたキーフレームの後で、左に動かした場合など)

MMM1180_補間6


 さて、図では補間をまだ設定していない直線補間の状態なのでこのようになっています。この傾斜の具合が動きの変化量となっていますので、接続部分の角度が急だと滑らかな動きにならないという事になります。

 この状態であれば直接タイムライン上で補間編集が可能なので、編集エリアに表示されている「■」をつまんで曲線編集が出来るようになっています。

MMM1180_補間5

 このように各キーフレーム間の補間ラインを滑らかな繋がりとなるよう編集する事で、カク付きや違和感のある動きを無くす事が出来ます。
 また、従来では一つ一つキーフレームを選択しての補間編集となっていましたが、この機能のお蔭で複数キーフレームの補間を一気に編集する事ができるようになりました。

 もちろん、この補間データはMMM独自のものではなく、MMDと共有可能なVMDでも使えます。

 これでもう、何度も再生しながら補間パネルとにらめっこする必要はありません。またどこが問題なのか分かり難かった回転系の補間の描き方も一目で分かるようになります。

 さらに、キーフレーム間が不均等であってもこの機能は生きてきます。

MMM1180_補間7

 図のようにキーフレーム間と同期して表示されるので、変化量が見た目だけで判断できるようになっています。
 これで難易度が高かった補間の扱いが、より確実に、より手軽にできるようになったと言えます。
 また、従来の方法では補間でやるよりも、中割り・ラジ割といった方法でカクつきを低減させる方法もありましたが、その分キーフレームを多く打たなければならず、また修正にも手間がそれだけ増えていました。
 この機能を使えば、最小限までキーフレームを減らす事ができ、また高FPS出力などにも耐え得るモーションの作成が可能です。
 更には急な加減速を丸める事で、物理演算の暴れなどを抑える事もできます。

 この機能はボーンレイヤーにも対応しています。
 多段レイヤーでも個別に補間設定が出来るので、より複雑なモーションを楽に管理・作成する事が出来ます。


 モーション制作者には待望の機能といっても過言ではないでしょう。

 今回リリースされたVer1.1.8.0では、カメラにも同等の機能が付けられました。

MMM1180_補間8
 こちらは少し軸表示が変わります。

Rot回転
Mo目標点移動
Dist距離
Fov視野角


 となります。こちらもモーションレイヤーと同時に使えます。
 カメラは特に等間隔にキーフレームを打つことが無いのでこの機能に助けられる事は恐らく多いでしょう。
 ただ、カメラモーションは次のキーフレームまで数百フレームくらい離れてしまう事も多いので、少し慣れが必要かもしれません。


 以上が今回のバージョンアップ内容となっています。

テーマ : MikuMikuDance(MMD)
ジャンル : サブカル

各ソフトによるSDEF変形の差異

 さて、fc2は記事更新を怠るとトップに広告が出てしまうので、更新がてらに小ネタを。
 今回はMMD関連ツールなどでのSDEF変形の差異について少しだけ触れます。
 私はプログラミングが出来る訳でもなく、また3DCGに詳しい訳でもなく、更に言えばSDEF変形というものを本質的に理解しているとは言い難い状態での説明ですので、各々、他サイトなどでの情報を踏まえて検討材料としてください。


【前提】
 今回は、MikuMikuDance・PMXEditor・MikuMikuMoving・keynote(metasequoia plug-in)での比較です。
 検証モデルとして、mqdlさんのIAxモデルを使用させて頂きます。
 keynoteでのデータは持ってませんので、実質的な変形具合の検証ではkeynoteは使いません。

 また、PMX仕様にSDEF変形が搭載された時に、極北Pとmqdlさん、そして時折樋口さんを交えて「ある程度」の摺合せがあった(と思われる。うろ覚え)のですが、厳密な部分でご本人同士がすり合わせたかどうかは分かりません。
 基本的には、それぞれの各ソフト制作者が仕様をベースに、どうプログラムしているかは分かりません。
ですので、完全互換が取れている訳でもないので、動作に差異があるのは至極当然とも言えます。

 そして、各ソフトでの開発環境の違いなども影響している場合があります。
ソフトシェーダー変形計算開発環境
MikuMikuDance2.0CPUC++
PMXEditor3.0CPUC#
MikuMikuMoving2.0GPUC#



【SDEF変形とは】
 計算方法とか技術的な事はサッパリではありますし、何気にその辺りの技術的解説をしている日本語ページは少ないです。「SDEF」で検索するとMMD関連が多く出てくるのが現状です。
 では結果としてどういう違いがあるのかは、mqdlさんが分かりやすく説明されていますので、こちらを参照下さい。

mqdl | sdef と bdef の違い
http://mqdl.jpn.org/sb.cgi?eid=69


 上記ページ内でも説明されている通り、曲げ・捩り時に潰れにくい変形をする計算方法、と覚えればひとまずは大丈夫です。
 特に円柱形の形状をしたもの、人体であれば腕や足などで使うと、綺麗に折れ曲がってくれます。
今回、検証で使わせて頂くIAxモデルにも多用されていますので、参考にしてみると良いでしょう。


【PMX仕様におけるSDEFの制約】
 ここから先は、モデリング上での専門事項がいくつか出てきます。個別に説明するとかなり長くなるので、簡略化している場合もある事をご了承ください。
 またSDEF変形はPMXフォーマット限定です。PMDでは設定できません。

 まず、PMX仕様上でのSDEFの制約ですが、

・関連のウェイトボーンが2つ | 1つの場合はBDEF1固定/SDEFはBDEF2,BDEF4から変換可能
・関連のウェイトボーンが親子関係

(PMXエディタ readme.txtより抜粋)

 とあります。
 ですので、腕などにSDEFを適用しつつ、捩りボーンや多段化を行う場合には付与属性(回転付与・移動付与)を使用するなどの一工夫が必要となります。
 プラグインなどで一気に多段化してしまうと、変形がおかしくなってしまったりするので要注意です。
(エディタの「多重付与構造」の項目を参照に。readme.txt内を検索してください)

 さて、PMXではこれらの制限がある訳ですが、
本来のアルゴリズムとしてはSDEFのウェイトボーンが必ずしも親子関係である必要はない
 のです。

 ではなぜ、わざわざPMX仕様では親子関係の縛りがあるかというと…
 正直女子中学生の頭ではなかなか理解できてないというか、そもそもSDEFの基礎すら分かってません。

 基本的には、ボーンではなく空間上にて親子というか隣の配置になっていればいいだけであって、ボーンそれ自体が親子である必要性がない、という理解をしています。

 PMXでの変形処理では、
 ボーンのグローバル変化量と、ウェイトで設定されている(見かけ上の)親ボーンのローカル回転量を参照している
 …との事で、やり方次第では完全な親子関係を持っているボーンでなくとも正しく変形できなくはないが、変形機構に詳しく無い人にはややこしくなるだけなので、シンプルに仕様上「親子関係縛り」にしているとの事です。
(…で、合ってるのかな?)

 metasequoiaのkeynoteではこの制限はなく、ボーンの親子関係に関わらずSDEFの設定ができます。
 当然ながら、連続してない離れた頂点に設定しても意味はありません。


【実際の変形の差異】
 現時点では、PMD/PMXフォーマットのモデルデータを作成するには、metasequoia+keynoteもしくはPMDEditor/PMXEdtiorを使用するのがメジャーではあります。
(Blenderでもエクスポートできるようですが、どこまで互換が取れるかは未確認。基本的にはPMDEditor/PMXEditorなどで最終調整が必要?)

 今回検証で使わせて頂くIAxモデルは、Keynoteからの出力がベースになってると思われます。
 公開されているデータはPMXのみなので、metasequoia上での変形確認は行いません。

IAx_SDEF01
 あら可愛い…

 さて、このモデルさんですが、先述の通り多くの場所でSDEF変形が適用されています。
SS_00492b.jpg
 肘周りや足周り、そして胴の部分などにもSDEFの設定がされています。

 PMXEditorでこのモデルを状態検証すると
SS_00493b.jpg
 と、でます。
 つまりこれがPMX仕様上での「親子関係にないSDEFウェイト」となります。
 どのあたりが不正ウェイトになってるかというと、分かりやすいのはこの部分です。
SS_00494b.jpg
 つまり腰回りですね。
 ウェイト情報を見ると、この頂点は親側が「6:上半身」、子側が「85:下半身」となっています。それぞれのボーンの親は「5:センター」ですので、上半身と下半身は親子関係にはありません(親戚ではありますね)

 これが上記でもあるように、空間上では近くはあるけど直接の親子ではない関係という事になります。

 PMXEditorのTransformViewで変形確認を行うと、当然ながらPMX仕様での計算となりますのでこのように正しく変形は出来ません。
SS_00498b.jpg

 ところが、MMDで変形させると…
SS_00499b.jpg
 と、SDEF変形としては正しい結果が得られます。

 そしてMikuMikuMovingでは…
SS_00501b.jpg
 PMXEditorのTransformViewと近似値的な変形結果となっています。
(細かい部分での差異は見られます)

 つまり、不正SDEFウェイトの処理として

PMXEditor   : 仕様通り
MikuMikuDance : 不正SDEFウェイトの場合、独自処理として別途SDEF変形を適用
MikuMikuMoving : 仕様通り

 という流れではないかと推測しています。

 MMMでは更に、上半身2も動かすと…
SS_00502b.jpg
 参照情報が崩れるのか、大幅にズレていってしまいます。


【つまり】
 本質的にSDEF変形では「親子関係である」必要性はないものの、PMXでの仕様上では親子関係にある必要性があるという事になります。
 MMD限定であるならば、Keynoteなどを使いこういった(PMXに対して)特殊なSDEF変形を組み込む事は可能ですが、互換性は失われる可能性が大きいという事です。

 仕様に準じるかどうかは、各開発者・各モデラー次第でしょう。

 IAxさんをMMMなどで動かしたい、という方は、一度PMXEditorでIAxさんを呼び出し、

 編集メニュー → 頂点 → 「不正なSDEFをBDEF2化」

 のコマンドを実行するだけで、不正SDEFのみBDEF化されます。
 IAxモデルの場合、肘や膝部分はきちんと親子関係になってるので、その部分はSDEFのままで綺麗なまま変形させる事が維持できます。
SS_00503b.jpg

 胴回りであれば、BDEF2化しても素人目には大きな差異は見られないかも…?
SS_00504b.jpg


 さて、ユーザーとしてはMMDとMMM、PMXEditorそれぞれの互換を取ってほしいという要望も多いでしょうが、冒頭辺りにも書いた通り、開発者同士の交流こそあれど、考え方や組み方はそれぞれ異なります。
 また、開発環境なども異なるので、「MMDで出来てるのに、なんでMMMで出来ないの?」というよくある疑問もあるでしょうが、プログラミングにおいては環境や構築方法、場合によってはコンセプトが違うので言う程簡単ではない、という所でしょうか。
 互換を取ろうとするのであれば、それぞれがソースを公開、もしくはそれぞれでやり取りする必要はありますが、元々仕様段階から異なっているので組み込めばOKという単純な話ではありません。
(軽トラにフェラーリのエンジンを単純に積み替えただけでは動かない。 過去にIK計算方法を樋口氏が一部公開したものの、PMXEditor側・MMM側ではそれを適用させるのに難儀し、また厳密に言えば完全一致するようには動作していないという過去もある)

 MMMでいえば、シェーダー2.0で、さらにGPU演算と環境が異なるので、変形機構の組み込みはかなり難儀している状況でもあるようです。
 MMMでSDEF変形が出来るようになったのは丁度昨年の今頃ではあるのですが、その時点で様々な問題点のフィードバックはなされていますが、改善にはかなり手間がかかるとの回答もありました。
 現時点で、MMMでのPMX2.1仕様にあるQDEF変形の実装もされていない理由の一つでもあるのではないか、と推測しています。

 各開発者が高額宝くじに当たり、晴れてニート生活が出来るようになったら改善される可能性が増えるかもですが…(笑)

 これらの理由もあり、SDEF変形は多用されているとは言い難い状況ではありますが、一応上記に上げたソフト上では使えますし、何よりSDEF変形の特徴である「潰れない変形」は魅力的です。
 IAxモデルは、どの部分にSDEFを適用させると効果的かがよくわかるモデルでもありますので、是非ともお家に迎えて構造解析してみてください。
(髪の一部や服などにも適用されてて面白いです)

モデル入手はこちらから。


【謝辞】
樋口優さん 極北P mqdlさん pironさん

テーマ : MikuMikuDance(MMD)
ジャンル : サブカル

MMD/MMMでの物理挙動と設定

 個人的にモデルセットアップ四天王と思っている、その中の一人であらせられるででさんの生放送などで学んだというか、理解した内容をメモがてらに。
 基本的な各設定項目については、かこみきさん著「3DCG日和。Vol.2」(BNN出版)、第4章5項(P.182~)についての知識がベースにあるものとします。
 以下の説明は、ででさんの言葉を借りつつとなります。
 また、文字だけで図はありませんし、間違った情報(勘違いや勉強不足)の可能性もあります。ご了承を。

■ エンジンの違いと挙動の違い
 繰り返しになりますが、MMDとMMMでは使用しているエンジンこそ同じであれ、搭載しているエンジンバージョン違いで挙動変更がなされていますので、たとえ同じソースにしても挙動が一致する事はまず有り得ません。
 それでも、出来るだけ似せるような動きになるように再々調整を繰り返されたのが、MMM Ver1.0.2以降となります。

 MMMの方がある意味、より素直に物理特性設定の数値に反応するようになったとも言えますし、別な表現とすればより設定にシビアになったとも言えます。
 MMM用に物理設定をくみ上げておけば、差異はあれどMMDでもほぼ理想どおりに動きます。
 MMD用に組んであるものをMMM側で使う時には、その差異が少々大きく見えたり、場合によっては予想外の動きになる可能性も孕んではいます。
 MMD搭載のBulletエンジンの方がバージョンが低いので、ある意味当然の帰結とも言えるでしょう。

 そういった意味では、動作確認をMMM側でする事で、MMD/MMM共通で使える物理設定を組み上げる事ができるのではないかという所です。

 ですが、具体的にどう組み上げれば良いのか、という部分に関してはパターンによって変わってくるのもありますし、そのうちででさんがまとめてくれるかもしれないという淡い期待を抱きつつ、別な機会などにしたいと思います。

■ 剛体質量
 剛体の質量設定そのままですが、大きさとも関わりがあるような挙動をするので、質量というよりは密度と表現したほうがイメージしやすいかもしれません。
 剛体形状が大きく質量が少なければ発泡スチロールのようなすっかすかなものとなりますし、形状が小さく質量が大きければ鉄の塊となります。
 質量が大きいと振り回された時の挙動も大きくなりますが、駆動部分(ボーン追従との接続)から大きな力が伝達さる必要があります。
 この辺りは後述の剛体タイプ設定、ジョイントとの兼ね合いになります。

 入力する数値が何に対してなのかはよく分からない部分もありますが、恐らく重力加速度との兼ね合いとなるのではないかと。

 実際の入力としては、剛体の大きさに合わせて適当な数値を入れつつ、実際の動作確認をした方が理解は得やすいかもしれません。

■ 移動減衰・回転減衰
 文字通りの減衰ですが、正確には減衰「率」と考えても問題はないでしょう。入力する数値は0~1の範囲なので、そのまま0~100%と考えれば分かりやすいかと思います。
 0.1で10%の減衰、0.5で50%の減衰です。
 空気抵抗、もしくは粘性みたいなものと考えても良いかもしれません。
 落下移動で考えれば、減衰がゼロに近ければそのままストンと落ちますし、減衰が高いと水の中を落ちるようにゆくりとなります。
 スカートなどでいえば、減衰が低いと防御力が低下し、減衰が高いと程よい具合にチラっと見える程度になったりという感じです。

■ 反発力
 剛体同士がぶつかった時の挙動設定ですね。基本的にはこちらも0~1の範囲内ではありますが、1以上でも効果はあります。
 反発力を1に設定すれば、高さY=10から落とすと、跳ね返った時にY=10へ戻ってくる挙動となります。反発力が0.5ならY=5に跳ねるという感じです。

 とはいえ、人物系モデル、特に女の子モデルで使う場合は髪とスカートとなりますが、体本体となるボーン追従剛体も含めて、ほとんど反発力を設定する事はないでしょう。
 下手に設定すると剛体が飛んで行ったり、他剛体の中にめり込んでしまって動かなくなる事もあります。
 ボールや何かの発射装置とか、そういったギミックを作る時に使う項目ともいえます。

■ 摩擦力
 文字通りではあります。剛体同士がこすり合わさった時の挙動設定。こちらも基本的には0~1の範囲内で十分でしょう。
 摩擦力が低ければワックス廊下のようにツルツルいきますし、高ければゴム床のように滑らなくなります。
 こちらもスカートや髪にはやたらと設定しないほうがよさそうです。
 要所要所で0.5くらいで十分かと思います。

■ 剛体タイプ
 ボーン追従は物理演算させない剛体、物理演算は文字通り演算させる対象となる剛体ですね。
 さて、残る「物理演算+ボーン追従型」ですが…
 基本的には元のボーンから大きく外れないように、剛体とボーンの位置を半ば無理やり合わせるといったものです。

 演算スタート ⇒ ボーンと剛体の位置が離れる ⇒ 剛体をボーンの位置に(内部設定の範囲内)に無理やり引き戻す

 というような機構だと思って良いのではないかと。
 これの計算はやや負荷が高く、やたらとモデルに組み込むと挙動が重くなります。
 基本的には、髪のような複数個の物理挙動剛体が連なっている構造では、1本目となるボーン追従と物理挙動剛体のものだけをこの設定にし、それ以降の剛体は単純に物理演算剛体としたほうが素直です。

 引き戻す範囲は内部設定なのでどうなっているかはユーザーには分かりません。また、完全に位置を同一化させるようなものでもなさそうで、「ある程度」引き戻されるという感じなので、よく挙動を見ないと分からなかったりします。

 挙動がふにゃふにゃして固めにしたい場合、この設定を使っても悪くはないのですが、これを使うよりもジョイントの設定などで追い込んだ方が素直には動くと思います。
 腰ひもなど、ボーン追従剛体と絡みやすい部分などには使った方が良いでしょう。

■ Joint設定
 ジョイントの設定は名称通りの事が多いので詳しい説明は書籍や他を参考にしてください。
 ですが前述の通り、MMMではここの数値設定に対して割と厳密というか数値通りに動くようになってますので、特に制限とバネの設定は少々綿密にしたほうが理想の挙動に近づけられます。

 回転制限などの計算順番は、X軸の制限を行った後にY軸へ、そしてZ軸へという感じなので、3軸一度に制限が掛かるようではありません。
 スカートのような構造では、Y軸よりもX・Z軸の挙動幅の方が大きいので、計算順もそれに合わせるように、ジョイントのZ軸を90度回転させて設定し、計算順番を任意的に変えるというテクニックもあります。
 移動制限の方も、裾側へいくほど0-0でかっちり固めるよりは、-0.5~+0.5のようにちょっとだけ動いても大丈夫なようにしつつ、下記のバネとの兼ね合いで設定すると挙動が良くなったりします。

 バネは文字通りバネっぽい動きをする設定です。最終的には元に戻ろうとする力が働くのですが、元に戻るまでに何度か反復運動をしながら収束していく動きとなります。
 びよーんびよーん ⇒ ぷるぷる ⇒ ピタっ
 って感じですね。
 なので、こちらもまたスカートなどの挙動では、回転制限などでかっちり決めるよりは、制限を少々緩やかにしつつ、バネの方で元に戻ろうとさせた方が、柔らかさと防御力を兼ね備えた挙動にしやすいです。

 バネの数値は何を基準とされているかはいまいちよく分かっていませんが、割と50とか100とか思い切った数値を入力した方が挙動のコントロールはしやすいかもしれません。

■ ジョイントロックについて
<改定20120701>

JOINT挙動について(訂正・改定)
http://mikudan.blog120.fc2.com/blog-entry-318.html



■ MMM上での物理挙動の諸注意
 MMMでは物理ワールドの分解能は120fpsまで引き上げられています。その分計算が重くはなっていますが、より衝突判定などが正確になっていますので、すり抜けなどが少なくなってるはずです。
 ですが、通常の操作画面での再生では、表示FPSに左右されて計算されますので、表示FPSが落ちているとその分の計算が飛ばされます。
 正確な挙動が見たい場合は、

1:AVI出力して確認
2:物理演算焼きこみを行った後、物理演算・髪IKなどをオフにして再生チェック
3:頑張って30fps以上の表示速度になるよう、グラボやCPUなどのスペックを上げる

 のいずれかになります。
 物理演算焼きこみをする前にプロジェクトを保存しておき、何度がシード値を変えつつ挙動をチェックするという方法も取れます。
 焼きこみでのチェックは再現性100%ですし、細かい挙動のチェックなどもできるので、物理特性の数値を決めるのにも役立ちます。
 また、挙動に問題なければ、それ以降は物理演算処理が必要なくなるので、CPU負荷も軽減した状態で作業が続行できますし、多人数モデルを使用している場合はこの恩恵がかなり大きいです。
 モーションレイヤーを使って、物理挙動に手を加えて思う通りに動かす事も可能です。
 更に焼きこんだ後、高FPS設定でAVI出力を行えば、スーパースローの表現も可能です。
(MMDでは高FPSでAVI出力しても、物理挙動は60fpsが限界。120fpsで出力しても2コマづつしか動いてくれない)


以上です。
いずれ、また別な形でまとめるかもしれません…いつになるか分かりませんが。

最後となりましたが、
樋口さん、Moggさん、極北P、ででさんに感謝致します。ありがとうございます。

CodeZine連載:「MikuMikuEffect」の記事

MikuMikuEffectで学ぶHLSL入門シリーズ - CodeZine

3DCGツール「MikuMikuDance」のエフェクトを拡張する「MikuMikuEffect」エフェクトの種類と編集方法
http://codezine.jp/article/detail/6035


「MikuMikuEffect」のエフェクトファイルの内部構成とシェーダコードの編集方法
http://codezine.jp/article/detail/6122


という事で、連載の3回目掲載となったようです。
入門シリーズなのでMMEを知らない人からでもMMD+MMEを介して、HLSLを理解していくシリーズとなっているので、第一回~第二回までは、MMDユーザーであればすでに理解している範疇かもしれませんが、今回の第三回からいよいよHLSLの中身について解説が始まります。
今回はその中でも、理解しやすい頂点シェーダー・ピクセルシェーダーを簡単にいじってみよう、という内容です。
MMDとMME、そしてテキストエディタ(メモ帳でもOK)などがあれば出来ますので、チャレンジしてみてください。
弄っていけば、何となくどのように数値計算されているのかも理解できるようになっています。

MMD・MME・PMD Editorなどで使用される主な拡張子一覧

そういえば、ちゃんとまとめた事がなさそうだったので、MMD関連で使われている独自ファイルの拡張子一覧などを記しておきます。

MikuMikudance本体関連
■「.pmm」 - Polygon Movie Maker File
MMD本体で使用するプロジェクトファイルです。モデル・アクセサリ・各モーション様々なデータが一括して入っています。これにMME関連のセットアップ情報などはありません。
また、旧MMD Ver2/RRD Ver0.02などで使用されている「.mmd」/「.rrd」とは互換性がありません。

■「.pmd」 - Polygon Model File
MMD本体およびPMD Editorを始め、互換系ソフトウェアで使用されているMMD独自のモデルファイルフォーマット。
形状データ・質感データ・変形データなどが入っています。

■「.pmx」 - Polygon Model File eXtend Version
上記モデルファイルの仕様拡張版。PMD Ver2とも言われてます。基本はPMDフォーマットの仕様拡張版としてのフォーマットですが、PMDとの直接互換性はありません。読み込み時はソフト側が対応されてる必要があります。

■「.x」 - DirectX 汎用形状データ
DirextXで使用されている汎用形状データです。MMD関連では主にアクセサリなどで使用します。
形状データ・質感データなどが含まれています。この中に変形データやアニメーションデータが入っていてもMMDでは無視されます。

■「.vmd」 - Vocaloid Motion Data File
モーションのデータのみが入っているファイル。どのモデル用のモーションなのかもヘッダに示されています。
読み込み時、同名のボーンがあれば適用されますが、名称が違っていたり対応ボーンが無い場合は無視されます。
カメラ・照明・アクセサリ用のモーションも保存できますが、モデル用モーションファイルとの互換はありません。

■「.vpd」 - Vocaloid Pose Data File
モデル用のポーズファイル。基本、モーションファイルのようなものだが、単一キーフレーム用の姿勢登録用です。読み込み時にはキーフレーム登録されません。
また、0番ボーン(ルートボーン・ボーンリストの一番上にあるボーンで、主にセンターなど)のみの登録は出来ず、他ボーンとの組み合わせが必要となります。

■「.avi」 - Audio Video Interleave
Windows系で主に使われている動画フォーマット。
これ自体は汎用拡張子であり、同じAVIファイルでも中身に相当するコーデック(Codec)の種類によってデータの中身がまったく違うので注意して下さい。

■「.wav」 - RIFF waveform Audio Format
Windows系で主に使われている音声フォーマット。
これにもコーデックは様々存在しているが、MMDで主に使用されてるのはリニアPCMという非圧縮形式です。
このファイルは4GBを超えると破損しますので、4GB以内のものしか使えません。

■「.bmp」「.png」「.jpg」 - 各画像ファイルフォーマット
様々なソフトでも使用されている画像フォーマットです。用途によって使い分けて下さい。
MMDからの静止画出力では基本的に詳細設定はされません。デフォルトの状態で出力されます。
一応、「.hdr」出力も可能なようです。
また、静止画入出力だけでなく、モデルやアクセサリにも使われているフォーマットです。

■「.oni」 - OpenNI sample streams recorded file
OpenNIなどで使用されている、Kinectから送信された深度情報などを記録しているファイル。
MMDではoniファイル読み込みのみ対応しており、このファイルからモデルのボーン情報へ変換する機能が備わっています。
oniファイル生成は、別途OpenNIを使用した専用のソフトで行います。

■「.sph」「.spa」 - スフィアテクスチャファイル
MMD関連の独自画像ファイルではありますが、ファイルの内容はbmpといったように通常の画像ファイル。拡張子だけを変更した状態です。
MMD側ではこの拡張子の画像ファイルの読み込みが発生した場合(モデルやアクセサリ読み込み時)、通常テクスチャではなくスフィアマップテクスチャとして読み込みます。
「.sph」は通常(乗算)スフィアマップテクスチャ。「.spa」は加算スフィアマップテクスチャとして使用されます。

PMD Editor関連
■「.cx」 - CSScriptファイル
CSScript記述ファイル。独自プラグインや簡易プラグインをスクリプトファイルとして保存・読み込みをする時に使用している拡張子。

■「.spd」 - スライダ変形ファイル
TransformViewのPoseSlider機能で使用されてる拡張子。変形用スライダリストの記録・読み込みに使うデータが入っています。

MikuMikuEffect関連
■「.fx」 - Effectファイル
DirectXに直接描写命令を送るHLSLで記されたソースコード。プログラムファイルではあるものの、中身はテキストファイル。
記述を変更する事で表現を変える事もできます。


この他にも、MMD関連のソフトウェアで独自の拡張子を持つものがありますが、それらは各ソフトのreadme.txtなどをご覧ください。

6DNS

…という訳で、イミフなタイトルではありますが、ほぼ3年ぶりとなる単品作品です。
ランキングやイベント動画以外は久しぶりですねぇ。



また、固定カメラ版を「みくだんコミュ」動画として上げてますので、ご興味があったらそちらも覗いてみてください。
更に今回の解説というかメイキング的記事を書きましたので、ご覧いただければと思います。

序章:コンセプトと結果と、少し雑談

1章:Kinectモーションキャプチャ

2章:手付モーションと修正

3章:目線と表情

4章:レンパート

終章:カメラや仕上げなど

そして、おまけとして今回作成したモーションも置いておきます。
(とはいえ、使うというよりは、ほんと参考用にしかならないでしょうがw)
6DNS Motion.zip Download
http://cid-29ffd5cbb9d4216c.office.live.com/self.aspx/Mikudan%20MMD%20Files/6DNS%5E_Motion.zip

6DNS 解説 - 終章:カメラや仕上げなど

■カメラワーク
 カメラワークにて補間曲線を使うかどうかはその時々で変わります。
 ドリーやクレーンショットでは直線状の方がそれっぽく見える場合がありますし、ハンディカメラのようなゆらぎのあるカメラであれば補間曲線を使った方がそれっぽくなるなど…。
 カメラのキーフレームはモーションのそれに比べてかなり少なくて済みますので、面倒がらずに補間曲線設定をしたり再生チェックを何度も繰り返した方がいいでしょう。
 また、X/Y/Zや回転それぞれに違った補間曲線を付ければ、トリッキーな動きをさせる事もできます。

カメラ補間曲線:X軸カメラ補間曲線:Y軸
カメラ補間曲線:Z軸カメラ補間曲線:回転
(1キーフレームでの各軸などに対する補間曲線設定)

 また、今回はベータ版ではありますがMMEによるMotionBlur(そぼろさん作)を実験的に使わせて頂き、モーションへのブラーもさることながら、カメラワークによるブラー効果を有効的に使えるかどうかというのもありました。
 その為、クイックズームやスウィッシュパン(カメラを急にパンさせる)なども取り入れてみました。
 一瞬の事なので分かり辛いかもしれませんが…。
カメラワーク2
 このモーションブラーエフェクトは、MVToolでやるよりも高速で、かつMMDのレンダリング時に掛けられるというメリット、そしてシーンチェンジも(ある程度ですが)感知してくれるので非常に楽になりました。
 アルファ出力にも対応しているので、合成する場合にも使えそうです。
 まだ改善点があるらしく正式リリースはされていませんが、今から楽しみなエフェクトの一つです。

■ポストプロセス(色調加工・調整など)
 特にエフェクトらしいエフェクトは付けてないですが、色調加工を行いました。
 MMD+MMEで既にデフュージョンまで掛けている状態ではありますが、もう少しHDR(High Dynamic Range Image)的な感じにチャレンジしてみようとやってみましたが…まぁ上手く行きませんでした。
 結果としては、今まで通りの色調補正にプラスアルファをしたくらいです。
 逆に彩度を半分くらいに落としてミュージッククリップ的な質感にしてしまおうかとも思ったのですが、そういった印象を付けるような作品でもないので、今回は保留。

 その代わり(これはMMEでも出来るでしょうが)、ガンマを極端に小さくしたものを加算合成して、ハイキー部分を更に持ち上げる「ブルーム」効果を足しています。

色調補正(補正前)MMD出力

色調補正(ガンマ処理)ガンマ処理「0.10」

色調補正(加算合成後)MMD出力+ガンマ処理(加算合成)

 これは分かりやすくそのまま加算合成していますが、レイヤー自体の透過率を30%~40%くらいにして白跳びを若干抑えてます。
 また更に、最終的な調整レイヤーでカーブによるRGB調整とレベル調整(白を235でクリップ)、若干彩度を持ち上げたりと微調整を行っています。
 とはいえ、最終的にMP4にする時に潰れてしまうのではありますが…この辺りはエンコした後と比べて、また調整してエンコ、という作業を繰り返しつつ色調補正しています。

■ノイズ除去
 モーションもカメラワークも激しいですし、何よりデフュージョンやらオブジェクトルミナス、被写界深度エフェクトやらモーションブラーやらふんだんに使っているので、普通にエンコードしただけでは動画がかなり荒れます。
 ポストプロセス後はAVIUtlのプラグイン「NL-Means」フィルタなどを使ってノイズ除去し、出来るだけ無駄なデータを省きつつビットレートを稼げるようにします。
ML-Meansフィルタはかなり強力なもので、空間・時間それぞれに対して綺麗にノイズ除去を行ってくれます。
 その代り、エンコードよりも重い処理となりますので、フィルタを通すだけでかなりCPUパワーと時間を使う事になります。
ノイズ除去(除去後)【ノイズ除去前】
ノイズ除去(除去前)【フィルタ適用後】
 細かいノイズを除去すれば若干ではあるものの中間ファイル容量も軽減できますし、エンコード時に余計な負荷やビットレートが必要になったりしません。
 結果として同じビットレート割り振りをしても、画質の向上が図れます。
 特に光物系のエフェクトやブラー系のエフェクトを掛けた時には、このフィルタを掛ける事により画質劣化を抑える事ができます。


■まとめ
 こんかいのメイキングをこのような形式にしたのは、動画にするとやたら長くなるのと、流石にそこまで労力が避けられないといった事情があるので文章と図、そして各動画に分けてみました。
 ほぼ3年ぶり作った単体作品ではありますが、この間に培ってきた基礎と、ここ最近の技術を組み合わせたようなものになりました。
 モーションについては余り進歩が無いものの、Kinectのお蔭で変化は若干付けられたのではないか…と思っています。
 それでも相変わらず、理に合わないヘンテコ踊りさせて喜んではいますがw

 これらの記事も思い返しながら都度書いていったもので余りまとまっておらず、How to的な要素も薄いため、他の方の役に立つ情報かどうか微妙な所ではありますが…。

 それはともかく、今回の作品創りで学べた所などは今後に生かしつつやっていこうかと思ってます。

 複数にわたるエントリーを読んでいただきありがとうございます。
 また次回作などで…。

(終)

6DNS 解説 - 4章:レンパート

 仕上げが近づくにつれ、まったく考えてなかった背景などを考慮する必要が出てきました。
 最初はいつもの四角い部屋でいいかなと思ったのですが、リミックス曲ですしフリースタイル的なモーションでもあるので、少しだけクラブ的な表現をしてみたくなりました。
 そこで以前から使おうと思ってたカブッPの床が動くステージを選びました。
 セットアップに苦労したものの、何とか読み込める状態に。こういった大掛かりなステージセットは最初のセットアップで苦労しますが、一度組んでしまえば後は楽なので頑張ってみましょう。その苦労の甲斐はあります。
ステージセット
 床面はそのまま使うと横表示のスクリーン.bmpになってるので90度曲げて正面を向くようにしているので、昇降アクチュエーターが大変な事になってますw
 今回は昇降させないのでこれで。
 サイドのスクリーンも初期状態から場所を動かしつつ、やや縮小し、正面カメラの状態で半分ずつくらい映るような位置にしています。

 そしてそのスクリーンに映すものも別途作らないとならない事に。
 VJ用素材とリンの完成モーションのシルエットで編集したものをベースにしつつ、これも前から使ってみたかったマイゴットPのDJセットを使用。
 レン君にスクラッチプレイしてもらう事にしました。

 このスクラッチプレイ、最初はKinectでチャレンジしてみましたが、やはり細かい動きはキャプチャできず、また位置合わせなども大変な為に断念。
 適当な横揺れの状態をキャプチャし、それをリンと同じくグルーブボーンへ移植しつつ、他は手付。
 腕は腕IK化してコントロールしやすくし、4小節分だけモーションを作成。後はプロジェクトを使いまわししつつ、カメラワークだけを変えたものを、6種類程用意し、リンのシルエット映像と併せて編集したものをスクリーンに映し出しています。

 腕IKですが、IK化しただけでは関節がおかしな方向になったりするので、「腕切り腕IK」モデルを別途用意し、手首から先は別モデルでのモーションとなってます。
 元モデルと腕切IKモデルのバランスは、センターや肩ボーンの回転などで何となく合わせておけば、動きも激しいので誤魔化せてしまいます。
腕切り腕IK1腕切り腕IK2

 あとはMMEで味付けしてるだけです。



【次章へ】
プロフィール

かんな

Author:かんな
ニコニコ動画などでMMD動画をうpしてるしがないユーザーの一人。
ブロマガ版みくだん
連絡先:mikudan3939葱gmail.com
(葱を半角@に変換してください)

カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
Twitter
MMD関連物
カテゴリー
最近の記事
ブログ内検索
リンク
RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。