[TOHO MMD]DRUNK HERMIT
舌の移植
ぷれでたぁ様がセットアップされたモンテコア様の茨木華扇に、同じくモンテコア様の巡音ルカの舌を移植します。
華扇の舌も動きますが、ルカのほうが舌のモーフの種類が多いためこれを使用したいと思います。
まずルカの舌を取り出します。
材質で分かれていないので選択しづらいですが、カメラをうまく移動させて頭の中を覗きます。舌が見えたらどれか面を選択し CTRL+X を押すと舌だけが選択されます。
入り組んだモデルの場合は、どるる様のUVエディタ(http://bowlroll.net/up/dl15244)を使用すればUV展開図から頂点が選択できますので簡単かもしれません。
ルカのモデルから今選択した舌だけを残して削除します。
要するにこの頂点の選択状態を反転すれば良いのですが、PMXEditorに該当するコマンドが見当たらなかったのでスクリプトを書きました。
[PMDE]選択頂点を反転する
舌が選択された状態でスクリプトを実行すると、選択状態が反転されて舌以外が選択されますので、そのまま SHIFT+DELで削除します。
頂点は舌だけが残りました。あとはボーンや剛体、ジョイントなども不要ですので削除します。ただし、頭ボーンは舌がウェイトとして持っていますので残しておきます。モーフも舌に関係ないものは削除します。
結果として各オブジェクトはこのような風になります。これでルカの舌の準備は終わりましたので、モデルを別名で保存してPMXEditorを終了します。
次に華扇をPMXEditorで開き、ルカのときと同じように舌を選択します。この舌はルカの舌と置き換えることになりますので座標を覚えておきます。舌が選択された状態でオブジェクト操作パネルを開き、値指定タブで重1ボタンをクリックすると選択された頂点の中心座標が求まりますのでこの値をメモしておきます。
値を記憶したら、そのまま舌をCTRL+DELで削除します。
次に先ほど準備したルカの舌を追加読み込みします。
ルカは背が高いですので舌の位置が華扇とは合っていないのがわかります。追加読み込み時に同名ボーンのマージをすると自動で位置を調整してくれるかとも思いましたが、このあたりの仕組みはよく判りません。一度ちゃんと調べる必要がありそうです。
ここでは先ほどと同様に舌の位置を知ら得て、先ほど得た舌の座標との差分だけ移動します。
余談ですがPMXEditorの中身を調べていて気が付いたのですが、このオブジェクト操作パネルの移動や回転といったボタンをShiftキーを押しながら右クリックすると値を0に初期化してくれます。CTRLキーだと反転ですね。こういうのってどこかにマニュアルが書かれているのでしょうか?
移動の X, Y, Z に差の値を入力して移動ボタンをクリックすると華扇の元あった舌の位置に移動されました。
次は材質変更です。
ルカの舌を読み込みましたので、舌に割り当てられている材質は未だルカのもののままです。
材質リストに華扇本来の材質である「顔」と、追加読み込みしたルカの「顔」が登録されています。
モンテコア様のモデルの場合、顔のUVは共通であることが多いですので材質を結合するだけで対処できます。リストから両方の材質を選択し、右クリック>材質の材質の結合を実行します。
最後にモーフの結合です。
モーフを確認します。みると、もともとあった「あ、う、え、お」といったモーフと後から追加した舌のモーフが別々に登録されています。これはメニューから編集>モーフ>同名モーフのマージを実行してまとめて終わりです。
以上、舌についてはボーンを入れても良いのですが、モーションでは結局使わないことが多いですので舌はモーフだけでも十分かもしれません。
華扇の舌も動きますが、ルカのほうが舌のモーフの種類が多いためこれを使用したいと思います。
まずルカの舌を取り出します。
材質で分かれていないので選択しづらいですが、カメラをうまく移動させて頭の中を覗きます。舌が見えたらどれか面を選択し CTRL+X を押すと舌だけが選択されます。
入り組んだモデルの場合は、どるる様のUVエディタ(http://bowlroll.net/up/dl15244)を使用すればUV展開図から頂点が選択できますので簡単かもしれません。
ルカのモデルから今選択した舌だけを残して削除します。
要するにこの頂点の選択状態を反転すれば良いのですが、PMXEditorに該当するコマンドが見当たらなかったのでスクリプトを書きました。
[PMDE]選択頂点を反転する
舌が選択された状態でスクリプトを実行すると、選択状態が反転されて舌以外が選択されますので、そのまま SHIFT+DELで削除します。
頂点は舌だけが残りました。あとはボーンや剛体、ジョイントなども不要ですので削除します。ただし、頭ボーンは舌がウェイトとして持っていますので残しておきます。モーフも舌に関係ないものは削除します。
結果として各オブジェクトはこのような風になります。これでルカの舌の準備は終わりましたので、モデルを別名で保存してPMXEditorを終了します。
次に華扇をPMXEditorで開き、ルカのときと同じように舌を選択します。この舌はルカの舌と置き換えることになりますので座標を覚えておきます。舌が選択された状態でオブジェクト操作パネルを開き、値指定タブで重1ボタンをクリックすると選択された頂点の中心座標が求まりますのでこの値をメモしておきます。
値を記憶したら、そのまま舌をCTRL+DELで削除します。
次に先ほど準備したルカの舌を追加読み込みします。
ルカは背が高いですので舌の位置が華扇とは合っていないのがわかります。追加読み込み時に同名ボーンのマージをすると自動で位置を調整してくれるかとも思いましたが、このあたりの仕組みはよく判りません。一度ちゃんと調べる必要がありそうです。
ここでは先ほどと同様に舌の位置を知ら得て、先ほど得た舌の座標との差分だけ移動します。
余談ですがPMXEditorの中身を調べていて気が付いたのですが、このオブジェクト操作パネルの移動や回転といったボタンをShiftキーを押しながら右クリックすると値を0に初期化してくれます。CTRLキーだと反転ですね。こういうのってどこかにマニュアルが書かれているのでしょうか?
移動の X, Y, Z に差の値を入力して移動ボタンをクリックすると華扇の元あった舌の位置に移動されました。
次は材質変更です。
ルカの舌を読み込みましたので、舌に割り当てられている材質は未だルカのもののままです。
材質リストに華扇本来の材質である「顔」と、追加読み込みしたルカの「顔」が登録されています。
モンテコア様のモデルの場合、顔のUVは共通であることが多いですので材質を結合するだけで対処できます。リストから両方の材質を選択し、右クリック>材質の材質の結合を実行します。
最後にモーフの結合です。
モーフを確認します。みると、もともとあった「あ、う、え、お」といったモーフと後から追加した舌のモーフが別々に登録されています。これはメニューから編集>モーフ>同名モーフのマージを実行してまとめて終わりです。
以上、舌についてはボーンを入れても良いのですが、モーションでは結局使わないことが多いですので舌はモーフだけでも十分かもしれません。
ちょっとしたスクリプト
ちまちまとモデルを改造中。モデルはモンテコア様の華扇です。改造とは言っても、ぷれでたぁ様がセットアップされたモデルとマージしたり、ごにょごにょしたりですとかその程度ですが。さて、最近たいした更新もできていませんのでネタ埋めにモデル改造の中でちょこちょこと作ったスクリプトを幾つか掲載します。
[PMDE]材質名読み込みスクリプト
最近PMXEditorに移行したのですが、どういうわけかPMD形式のファイルを読み込んだとき、モデルと一緒に配布されている材質リストを読み込んでくれません。おかげで材質名が「材質~」となって不便ですのでスクリプトを書いてみました。CSScriptを開いて、簡易形式にぺたりと貼り付けて実行します。(なにが原因なんでしょう?)
[PMDE]指定した名前が含まれるボーンを削除
私がモデル改造をするとき、最初にするのは不要なボーンの削除です。特にアダルトな動画にスカートが要らない事が多いですので(折角作ってくれたモデラーさんスミマセン!)ごっそり削除してしまいます。もちろんスクリプトを書き換えればスカート以外にも使えます。
[PMDE]関連するボーンが存在しない剛体を削除する
ボーンを削除すると、そのボーンを参照していた剛体があれば不正な剛体となってしまいます。そんな剛体を削除します。
[PMDE]接続剛体のないJOINTを削除する
剛体を削除したのならその剛体を参照していたJOINTはそのままにしておくとVMDViewやMMDが異常終了してしまい、作業中のファイルが消えてしまうという恐ろしいことになってしまいます。不正なJOINTは忘れずに削除。または剛体やJOINTを触る前は忘れずにデータの保存が基本です。
恐らくPMDEditorでモデリングをするひとは同じようなスクリプトを書いたりしているのでしょうけど、公開とかされているのかな?
稚拙なスクリプトで恥ずかしいですが、ひとまずblogの穴埋めに……
gistの表示が変ですので、記事公開後にちょこちょこ弄ります。
[PMDE]材質名読み込みスクリプト
最近PMXEditorに移行したのですが、どういうわけかPMD形式のファイルを読み込んだとき、モデルと一緒に配布されている材質リストを読み込んでくれません。おかげで材質名が「材質~」となって不便ですのでスクリプトを書いてみました。CSScriptを開いて、簡易形式にぺたりと貼り付けて実行します。(なにが原因なんでしょう?)
[PMDE]指定した名前が含まれるボーンを削除
私がモデル改造をするとき、最初にするのは不要なボーンの削除です。特にアダルトな動画にスカートが要らない事が多いですので(折角作ってくれたモデラーさんスミマセン!)ごっそり削除してしまいます。もちろんスクリプトを書き換えればスカート以外にも使えます。
[PMDE]関連するボーンが存在しない剛体を削除する
ボーンを削除すると、そのボーンを参照していた剛体があれば不正な剛体となってしまいます。そんな剛体を削除します。
[PMDE]接続剛体のないJOINTを削除する
剛体を削除したのならその剛体を参照していたJOINTはそのままにしておくとVMDViewやMMDが異常終了してしまい、作業中のファイルが消えてしまうという恐ろしいことになってしまいます。不正なJOINTは忘れずに削除。または剛体やJOINTを触る前は忘れずにデータの保存が基本です。
恐らくPMDEditorでモデリングをするひとは同じようなスクリプトを書いたりしているのでしょうけど、公開とかされているのかな?
稚拙なスクリプトで恥ずかしいですが、ひとまずblogの穴埋めに……
gistの表示が変ですので、記事公開後にちょこちょこ弄ります。
頂点くっつけスクリプト
モデルの改造……挿げ替えですが……をしていて、メタセコイアで言うところの頂点吸着移動のような頂点移動がPMDEditorでも欲しくなったので書いてみました。標準機能かスクリプトで既にありそうですが探すより書いた方が早いこともありますので。何より息抜きになります。
頂点を別の頂点とくっつけたい。でもPMDEの選択頂点の結合を使用すると両方の頂点の位置が変わってしまう。そういう時に使用します。PMDEの近接頂点の結合機能に似ていますがちょっとだけ動作がが違います。繰り返し作業のとき、そのちょっとした違いが負荷になることが多いですのでコマメにスクリプトを作っておくと後々ラクになります。
事前にスクリプトファイルをPMDEのCSScriptに読み込ませておくか、ビルドしてプラグイン化しショートカット登録しておきます。
まずは移動させたい頂点を選択します。そしてスクリプトを実行します。
すると選択した頂点が、それぞれ一番近い頂点に引っ付きます。この時「絞り込まれている材質の頂点」「選択頂点以外」「いちばん近い頂点」に引っきます。ウェイトも引っ付き先に合わせます(ただしSDEFは未対応です)。また頂点は移動しただけですので、最終的には近接頂点の結合をしないと動かしたときにエッジが出たりすると思います。思った先の頂点に移動してくれない場合は、あらかじめ頂点を移動して近づけておきます(意味ないですね!)
Download
認証キー tracebox1010
頂点を別の頂点とくっつけたい。でもPMDEの選択頂点の結合を使用すると両方の頂点の位置が変わってしまう。そういう時に使用します。PMDEの近接頂点の結合機能に似ていますがちょっとだけ動作がが違います。繰り返し作業のとき、そのちょっとした違いが負荷になることが多いですのでコマメにスクリプトを作っておくと後々ラクになります。
事前にスクリプトファイルをPMDEのCSScriptに読み込ませておくか、ビルドしてプラグイン化しショートカット登録しておきます。
まずは移動させたい頂点を選択します。そしてスクリプトを実行します。
すると選択した頂点が、それぞれ一番近い頂点に引っ付きます。この時「絞り込まれている材質の頂点」「選択頂点以外」「いちばん近い頂点」に引っきます。ウェイトも引っ付き先に合わせます(ただしSDEFは未対応です)。また頂点は移動しただけですので、最終的には近接頂点の結合をしないと動かしたときにエッジが出たりすると思います。思った先の頂点に移動してくれない場合は、あらかじめ頂点を移動して近づけておきます(意味ないですね!)
Download
認証キー tracebox1010