閉じる
閉じる
残したいユーザーブロマガ記事への投票はこちらです
えっと、今回は、PMXエディタ用プラグインとして、t0r0さんが製作された『ウエイト調整用フォーム』について、です。
***********************************
この記事を書くにあたり、t0r0さんから、アップデートの報告が来ています。
まずは、ar730258から、最新版を取得お願いします。
(本記事では、最新版に準拠した使い方を明記しています)
***********************************
このプラグイン、もとはといえば、ウエイト調整のときに
「ブレンダーみたいにできたら便利なのにね」
という発想でスタートしたものです。
ブレンダーでのウエイト設定は、手塗りもちろんできますが、
PMXEで塗るのとの大きな違いは、
・ポーズモードで変形させた状態で塗れるので、直したい部分を特定しやすい
・どのくらい塗ったらどのくらい移動するのか、変形した状態にすぐ反映される
・ウエイト値を現状より小さく設定して塗っても、別のウエイト値で補完される
という機能がある点でした。
もちろん、従来のPMXEでも、全く出来ない訳ではなかったです。
TransFormView上で頂点を選んで"Ctrl+X"の操作で、PmxViewにその選択頂点が反映されるので、それを使うテもあるのですが、操作手順が煩雑になるので、どうせならもっと手順を合理化してしまおう、ということになりました。
また、ウエイト値の増減方法についても、インジケータを、スライダとバーグラフにすることで、視覚的にもわかりやすく操作できるように、ということになりました。
ウエイト値は、ボーンの影響度がそれぞれ何%で、その合計が1.0(100%)になる必要があるため、バーグラフによる設定がわかりやすいと考えられました。
※PMXEでは、実際にはこの合計値を超えたり満たない設定も書き込めてしまいます。その場合「正規化されていない」ウエイト値として認識されます。
------
さて、このプラグインですが、実際に想定されているシチュエーションは、こんなです。

ちとわかりにくいかと思うんですけど・・・
例えば、この顔面、表情操作に自由度をもたせるためのボーンが組み込んであります。
こういう場合、
『各頂点に対して、どのボーンのウエイト値を、どれだけ設定するのがよいのか?』
というのは、設定作業の難しいところです。
MMDには、テッセレーションやスムージングの機能がありませんので、ポリゴンは表示されている状態がそのまま使われます。その全部の頂点に、動かすためのウエイト情報を入れる必要があります。
※だから、綺麗に見せるために、頂点を増やしていったら、それにも全部ウエイトを設定しなければならないのです。
-----------
前置きはこのくらいにして、実際の使い方を見ていきましょう。
TransFormViewでモーフとボーンを操作してみました。
非常に見えにくいですが、頂点が1個、選択されています。
いまこの部分、隣の頂点と、すごく接近しています。
こういう部分って、ポリゴンが折れ曲がって、エッジが表示されてしまい「シワ」がよってしまいます。
これを解消する必要があります!
こんなときに今回のプラグインを使います。
****************************************************
○操作手順
①TransFormViewで、頂点を選ぶ
②プラグインのフォーム上の、ボタン[1.頂点選択(転送)]を押す
③ボタン[2.頂点取得(取得)]を押す
ここまで操作したのが、上の画像の状態です。
選択された頂点の、インデックス、座標、ウエイト設定値が表示されています。
④ウエイトの設定値を、フォームのスライドバーで増減します。
※この時、他のウエイト値が自動計算され、相対的に下がるのが、バーグラフとスライドバーに表示されるので、わかると思います。
⑤ボタン[更新]を押す
ここまで操作すると、TransFormView上に、弄ったウエイト値が反映されます。
このとき、ポーズやモーフの動作状態は、全くかわりません。
まさに『ウエイトを弄ったことで、どう変化したのか』ということを純粋に表示しています。
基本的な使い方はこのくらいですが、応用方法はもっとあることと思います。
製作にあたり、直接のキッカケは、顔のボーン制御ですが、各関節やギミックなど、こういった調整が必要な場面は、結構多かったりします。
使う人の発想次第で、もっともっと可能性の広がるツールだと思います。

----------
実際に使ってみて、注意しておく必要がある部分があったので、Tipsとして書き加えておきます。
************************************
○同じ座標に複数の頂点が存在する!

例えば、このような状態です。
何の変哲も無い立方体のカド1箇所を選択しました。
すると、3つの頂点が取得されました。
何故か?
実はこのとき、PMXモデル上には、全く同じ座標に、頂点が3個、実際に存在しているのです。モデルフォーマットの仕様上、1つの頂点に対して、1つの法線、1つのUV座標 というのが基本になっているので、
例えばこの立方体では、カドでエッジが立っているので、そこに3つの法線情報が存在しています。これを再現するため、実は頂点が3つ存在しているのです。
また、カド以外の場合でも、テクスチャの継ぎ目にも、2つ以上のUV情報が存在するので、同様の現象がおこります。
さてこんなとき、どうするかです。
*******************************************
①取得されている頂点が、同じ座標であるか確認する

頂点座標は、上図の右側に示したところに書いてあります。
複数の頂点が取得された場合、どれとどれが、同じ座標のものなのか、ここで確かめましょう
②同じ座標にある頂点を全部選択する

取得頂点リストから、同じ座標の頂点を全部選びましょう。
このとき、個々の座標を示していた部分には『複数選択』と出ます。
③あとは通常の手順と全く同じ
です。
逆説的に、同じ座標のものでなくても、頂点の選択さえできれば、いくらでも同時に設定できます。
但し、いっぺんに操作された頂点は、全部同じ値に設定されますので、覚えて置いてください。
*************************************************
○いらん頂点まで選択してもうた!

例えばこんなケース。弄りたいのは、口の中の頂点だけなのですが、ほっぺの外側まで選択されちゃいました。
ここは弄りたくないんだよナア・・・
こういう場合は、PmxViewで、頂点の選択取捨をできます。
実はこのプラグイン、頂点を取得する段階で、2つの工程を処理しています。
・TransFormViewで選択した頂点を、PmxViewに転送する
↓
・PmxViewで選択されている頂点を、プラグインのフォームが取得する
ということです。
※このため、取得時にボタンを2つ押さなければならないのです。
で、具体的には
***********************************
①TransFormViewで頂点を選んでから[1.頂点選択(転送)]ボタンを操作
②PmxView上で、いらん頂点を選択から外す

③[2.頂点取得(取得)]ボタンを操作
④あとは通常の手順と全く同じ
です。
*******************************
これに限らず、実際には、PmxViewでのウエイト塗りも、すぐにTransformViewに転送する機能もフォームにあります。
いままで通り、ウエイトを塗ったら、フォーム右側のボタン[TransFormView更新]を操作することで、動かしてるTransformViewもそのままの動きでウエイトが反映されます。
---------
そんなこんなで、とりあえずだだっと書きましたが、
このプラグインによって、ウエイト微調整の手順を合理化して、やりやすくなったと思います。
基本的にはセットアップや改造をする人(特にキャラクターもの)にのみ、
それも「ブレンダーでもキーノートでもなく、PMXEでやっちゃう人」向けの
専用のツールですw
どのくらいの需要があるものかはわからないですが、
どうぞよろしくお願いいたします。
あと、
t0r0さん流石やで!!!!!
***********************************
この記事を書くにあたり、t0r0さんから、アップデートの報告が来ています。
まずは、ar730258から、最新版を取得お願いします。
(本記事では、最新版に準拠した使い方を明記しています)
***********************************
このプラグイン、もとはといえば、ウエイト調整のときに
「ブレンダーみたいにできたら便利なのにね」
という発想でスタートしたものです。
ブレンダーでのウエイト設定は、手塗りもちろんできますが、
PMXEで塗るのとの大きな違いは、
・ポーズモードで変形させた状態で塗れるので、直したい部分を特定しやすい
・どのくらい塗ったらどのくらい移動するのか、変形した状態にすぐ反映される
・ウエイト値を現状より小さく設定して塗っても、別のウエイト値で補完される
という機能がある点でした。
もちろん、従来のPMXEでも、全く出来ない訳ではなかったです。
TransFormView上で頂点を選んで"Ctrl+X"の操作で、PmxViewにその選択頂点が反映されるので、それを使うテもあるのですが、操作手順が煩雑になるので、どうせならもっと手順を合理化してしまおう、ということになりました。
また、ウエイト値の増減方法についても、インジケータを、スライダとバーグラフにすることで、視覚的にもわかりやすく操作できるように、ということになりました。
ウエイト値は、ボーンの影響度がそれぞれ何%で、その合計が1.0(100%)になる必要があるため、バーグラフによる設定がわかりやすいと考えられました。
※PMXEでは、実際にはこの合計値を超えたり満たない設定も書き込めてしまいます。その場合「正規化されていない」ウエイト値として認識されます。
------
さて、このプラグインですが、実際に想定されているシチュエーションは、こんなです。
ちとわかりにくいかと思うんですけど・・・
例えば、この顔面、表情操作に自由度をもたせるためのボーンが組み込んであります。
こういう場合、
『各頂点に対して、どのボーンのウエイト値を、どれだけ設定するのがよいのか?』
というのは、設定作業の難しいところです。
MMDには、テッセレーションやスムージングの機能がありませんので、ポリゴンは表示されている状態がそのまま使われます。その全部の頂点に、動かすためのウエイト情報を入れる必要があります。
※だから、綺麗に見せるために、頂点を増やしていったら、それにも全部ウエイトを設定しなければならないのです。
-----------
前置きはこのくらいにして、実際の使い方を見ていきましょう。
非常に見えにくいですが、頂点が1個、選択されています。
いまこの部分、隣の頂点と、すごく接近しています。
こういう部分って、ポリゴンが折れ曲がって、エッジが表示されてしまい「シワ」がよってしまいます。
これを解消する必要があります!
こんなときに今回のプラグインを使います。
****************************************************
○操作手順
①TransFormViewで、頂点を選ぶ
②プラグインのフォーム上の、ボタン[1.頂点選択(転送)]を押す
③ボタン[2.頂点取得(取得)]を押す
ここまで操作したのが、上の画像の状態です。
選択された頂点の、インデックス、座標、ウエイト設定値が表示されています。
④ウエイトの設定値を、フォームのスライドバーで増減します。
※この時、他のウエイト値が自動計算され、相対的に下がるのが、バーグラフとスライドバーに表示されるので、わかると思います。
⑤ボタン[更新]を押す
ここまで操作すると、TransFormView上に、弄ったウエイト値が反映されます。
このとき、ポーズやモーフの動作状態は、全くかわりません。
まさに『ウエイトを弄ったことで、どう変化したのか』ということを純粋に表示しています。
製作にあたり、直接のキッカケは、顔のボーン制御ですが、各関節やギミックなど、こういった調整が必要な場面は、結構多かったりします。
使う人の発想次第で、もっともっと可能性の広がるツールだと思います。
----------
実際に使ってみて、注意しておく必要がある部分があったので、Tipsとして書き加えておきます。
************************************
○同じ座標に複数の頂点が存在する!
例えば、このような状態です。
何の変哲も無い立方体のカド1箇所を選択しました。
すると、3つの頂点が取得されました。
何故か?
実はこのとき、PMXモデル上には、全く同じ座標に、頂点が3個、実際に存在しているのです。モデルフォーマットの仕様上、1つの頂点に対して、1つの法線、1つのUV座標 というのが基本になっているので、
例えばこの立方体では、カドでエッジが立っているので、そこに3つの法線情報が存在しています。これを再現するため、実は頂点が3つ存在しているのです。
また、カド以外の場合でも、テクスチャの継ぎ目にも、2つ以上のUV情報が存在するので、同様の現象がおこります。
さてこんなとき、どうするかです。
*******************************************
①取得されている頂点が、同じ座標であるか確認する
頂点座標は、上図の右側に示したところに書いてあります。
複数の頂点が取得された場合、どれとどれが、同じ座標のものなのか、ここで確かめましょう
②同じ座標にある頂点を全部選択する
取得頂点リストから、同じ座標の頂点を全部選びましょう。
このとき、個々の座標を示していた部分には『複数選択』と出ます。
③あとは通常の手順と全く同じ
です。
逆説的に、同じ座標のものでなくても、頂点の選択さえできれば、いくらでも同時に設定できます。
但し、いっぺんに操作された頂点は、全部同じ値に設定されますので、覚えて置いてください。
*************************************************
○いらん頂点まで選択してもうた!
例えばこんなケース。弄りたいのは、口の中の頂点だけなのですが、ほっぺの外側まで選択されちゃいました。
ここは弄りたくないんだよナア・・・
こういう場合は、PmxViewで、頂点の選択取捨をできます。
実はこのプラグイン、頂点を取得する段階で、2つの工程を処理しています。
・TransFormViewで選択した頂点を、PmxViewに転送する
↓
・PmxViewで選択されている頂点を、プラグインのフォームが取得する
ということです。
※このため、取得時にボタンを2つ押さなければならないのです。
で、具体的には
***********************************
①TransFormViewで頂点を選んでから[1.頂点選択(転送)]ボタンを操作
②PmxView上で、いらん頂点を選択から外す
③[2.頂点取得(取得)]ボタンを操作
④あとは通常の手順と全く同じ
です。
*******************************
これに限らず、実際には、PmxViewでのウエイト塗りも、すぐにTransformViewに転送する機能もフォームにあります。
いままで通り、ウエイトを塗ったら、フォーム右側のボタン[TransFormView更新]を操作することで、動かしてるTransformViewもそのままの動きでウエイトが反映されます。
---------
そんなこんなで、とりあえずだだっと書きましたが、
このプラグインによって、ウエイト微調整の手順を合理化して、やりやすくなったと思います。
基本的にはセットアップや改造をする人(特にキャラクターもの)にのみ、
それも「ブレンダーでもキーノートでもなく、PMXEでやっちゃう人」向けの
専用のツールですw
どのくらいの需要があるものかはわからないですが、
どうぞよろしくお願いいたします。
あと、
t0r0さん流石やで!!!!!
広告