2ntブログ

神子モデルの改造2:顔IK追加

アダルトモーションを作成する上で欠かせないのが顔IKです。前回の上半身3はこのIK作成のために行っています。顔と上半身。一見関係ないように見えますが……。


1.ボーン構造の確認
多くのMMDモデルでは首から頭先に向けてボーンが一直線に伸びていると思います。神子もだいたい標準的な構造のようです。この構造のモデルであれば同じステップで顔IKの設定が可能だです。
blog20130816A001.jpg

2.顔ボーン・鼻ボーンの追加
頭先ボーンを複製し、顔ボーンを作成。頭ボーンを作成複製し、鼻ボーンを作成します。顔ボーンと鼻ボーンはお互いが親子関係になるように親ボーン、表示先を設定します。
結果、設定は以下のようになります。
blog20130816A002.jpg


それぞれのボーンの座標はX軸は動かさず、Y軸とZ軸のみを動かして、おおよそ図の位置に設定します。
blog20130816A009.jpg

3.顔IK追加
これら顔、鼻ボーンを入れただけではさして意味はありません。次に顔IKを追加します。
この顔IKに限りませんが、私がIKを作成するときの手順は大きく以下の通りです。

・IKのリンクにしたいボーンの複製を作成する
・複製したリンク用ボーンの親子関係を設定する
・複製元に回転付与を付ける


一般的なIK作成プラグインで作成するパターンとは異なるかもしれませんが、捩りボーンなどを無視して作成できるので汎用性は高いようです。

作成される顔IKの構造イメージは下図のようになります。
blog20130816A010.jpg

上半身3から鼻までのボーンを複製します。複製したボーンは名前の末尾に+を付けて識別します。複製したボーンは親子関係を複製したボーン同士になるよう設定しなおします。ただし上半身3+の親は複製したボーンがありませんので上半身2になります。
変形順序の問題がありますので複製したボーンのリスト位置は、複製元より前に移動します。これに限らずボーンの追加などをした場合はPMXデータの状態検証を行い、変形順序におかしなところが無いか確認します。
blog20130816A006.jpg

複製元のボーンの回転付与を設定します。付与親は対応する複製ボーンです。
blog20130816A007.jpg

新規ボーンを追加し性能をIKにします。IKのLinkに、複製したボーンのうち鼻+を除く上半身3+、首+、頭+、顔+をを追加します。鼻+ はTargetにします。IKの座標位置は鼻と同じです。座標をひとつひとつコピーするのは面倒ですが、「位置」と書かれた場所で右クリックをすると「ベクトルコピー」が選択できますので、これを使用すると便利です。ほとんど隠し機能ですよねこれ。IKの親はセンターにします。
blog20130816A008.jpg

TransformViewで顔IKを左右に振ってみると面白い動きをすると思います。
顔IK(ボーンのみ)

4.ウェイト変更と関連ボーン変更
顔IKとしてはこのままは不完全です。使えないことはないですが、もう一歩踏み込んで調整します。
ウェイト対象ボーン置換プラグインを使用し、今まで頭、もしくは頭先にあったウェイトを顔ボーンに変更します。
blog20130816A004.jpg
blog20130816A005.jpg

次に親ボーンが頭、もしくは頭先となっているボーンの親を探し、顔ボーンに変更します。神子の場合ですと、前髪元、左後髪I~N,央後髪O,右後髪I~N、右目、左目、両目が該当します。
そして剛体も関連ボーンが頭、もしくは頭先になっているのを顔ボーンに変更します。神子の場合だと、頭 だけですね。

ボーンの変更と剛体の変更は面倒ですので、以下のCSScriptを実行する事で同じことができます。
/* 親ボーン・剛体書き換え */
IPXBone kao = null;
foreach(IPXBone b in bone){
if( b.Name == "顔") {kao = b; break; }
}
foreach(IPXBone b in bone){
if( (b.Name != "顔" && b.Name != "頭先" && b.Parent != null )
&& ( b.Parent.Name == "頭" || b.Parent.Name == "頭先")) {
b.Parent = kao;
}
}
foreach(IPXBody b in body){
if( b.Bone != null && (b.Bone.Name == "頭" || b.Bone.Name == "頭先" )) b.Bone = kao;
}
connect.Pmx.Update(pmx);
connect.Form.UpdateList(UpdateObject.All);


TransformViewで確認するとこんな感じの動きになります。

顔IK(ウェイト入れ済み)左右
IKを左右に動かすと、そのIKが向いている方向を顔が捉えます。その時、上半身3が微妙に動いて無理のない体制をとります。

顔IK(ウェイト入れ済み)上下
上下に動かしても同様に顔がIKの方向を捉えます。20フレーム以上、頭の動きが止まるようであればこの顔IKを少し位置をずらしてフレームを打つだけで上半身の揺らぎを作ることができます。

顔IK(ウェイト入れ済み)前後
前後に動かすとこういう動きをします。どこかで見た動きですよね。そういうモーションに使用します。

顔IK(ウェイト入れ済み)ツイスト
上半身を回転させても顔は同じ方向を向き続けます。なぜかセンターを動かしたときは向いてくれませんが、センターを多段化したりフレームを打ったりすると顔の方向を残したまま動いてくれたりします。このあたりの法則の調査は課題です。



このように対象物に顔の位置を合わせたり、ピストン運動などに翻弄される頭を表現するのに使用したりとアダルト表現には欠かせません。先にアップしてしまいましたが、ディーの動画は7割がたはこの顔IKを動かしているだけのモーションです。長尺に使用するには扱いが難しくて大変ですが、ちょっとしたお遊びのアダルト動画を作成するぐらいであれば有用なのではないかと考えています。

コメントの投稿

非公開コメント

No title

更新お疲れ様です。
技術面や知識には毎度驚かされます
早速参考にしてみよう

Twitterはじめたんですね
自分あまりよくわかんないですけどフォローしても構いませんか?

Re: No title

コメントありがとうございます
> 技術面や知識には毎度驚かされます
あまり技術方面は追いかけてなかたったので間違っている部分もあるかもしれませんが
参考にしていただければ幸いです

> Twitterはじめたんですね
> 自分あまりよくわかんないですけどフォローしても構いませんか?
twitterに関しては更新程度しかツイートしないかも知れませんが
それでも宜しければお願いいたします

No title

自分の理解が足りないのか、導入がうまくいかない
手順通りに試しているんですが・・・

>twitterに関しては更新程度しかツイートしないかも知れませんが
>それでも宜しければお願いいたします
わかりましたフォローしておきますね

Re: No title

試していただきありがとうございます。
> 自分の理解が足りないのか、導入がうまくいかない
> 手順通りに試しているんですが・・・
画像は全ての手順について貼っているわけではないので、説明が足りない部分もあるかもしれません。
読み直すと、例えば複製元のボーンの回転付与の下りで上半身3についてしか画像は貼っていませんが、これは首頭顔鼻にも行う必要がありますが誤解のある記述かもしれませんね。
また、CSScriptの部分で一部コピペミスがあったのかエラーとなるようです。これは修正いたしました。
どういったところでうまくいかないようでしょうか。

No title

>どういったところでうまくいかないようでしょうか
顔IKのターゲット先の鼻がIKの種類になっててTransformViewでは顔IKを動かすとIKのアイコンだけが動いてしまう
ほぼ序盤あたりでつまってます
すいません

Re: No title

> >どういったところでうまくいかないようでしょうか
> 顔IKのターゲット先の鼻がIKの種類になっててTransformViewでは顔IKを動かすとIKのアイコンだけが動いてしま説明で「頭ボーンを作成し、鼻ボーン」となっていますが誤記ですね。
正しくは「頭ボーンを複製し、~」です。
もしこれでひっかかっているようであれば申し訳ありません。
説明は全ての手順を書いているわけでは無いため、もしかしたら肝心なところが抜けているかもしれません。
(いちおう一通り確認はしてはいますが)
ただ、ボーンの種類は意図的に設定しなければIKの種類になることはないので、
どのステップでそうなってしまうのか少し説明を見直してみます。
ありがとうございます。

No title

TransformView上では顔IKのアイコンのみが動いて
MMD上ではそれに関連するボーンが動いている?感じです
editorが悪い可能性なのか、手順が多少間違えてても動く仕様なのか・・・
使っているvirsionはPMDエディタ0.1.3.9です

Re: No title

> TransformView上では顔IKのアイコンのみが動いて
> MMD上ではそれに関連するボーンが動いている?感じです
アイコンのみが動いて体が付いてこないのは
ボーンの変形順序が正しくないか(PMXデータ検証で確認できます)
回転付与が設定されていない事が考えられます。
記事中7枚目の画像では、上半身3についてしか画像がありませんが、他のボーン、顔、頭、首、鼻についても
同様の設定がひつようになります。
しかし、いずれも動く/動かないといったTransformViewとMMDの差はありませんので、
これが原因と言えるかは判りません。

> editorが悪い可能性なのか、手順が多少間違えてても動く仕様なのか・・・
> 使っているvirsionはPMDエディタ0.1.3.9です
私はPMDE138かPMXEを使用していますが、このあたりは変わらないと思います。

No title

ちょっと日が空きましたが質問です
ボーンの複製にObjectEditerを使いボーンをリネームしてたんですが
ウェイトの設定せずにボーンのリネームであってますか?
間違ってるとしたらそこくらいなんですよね
しつこく質問しておきながら申し訳ないですが
返答お願いします

Re: No title

> ボーンの複製にObjectEditerを使いボーンをリネームしてたんですが
ObjectEditorは使用したことがないのでちょっとわかりませんが一度試してみます

> ウェイトの設定せずにボーンのリネームであってますか?
> 間違ってるとしたらそこくらいなんですよね
試されているモデルはなにになりますでしょうか
モデルによっては変形順序が影響する場合があるようですので
調整が必要になる場合があると思います(PMDX検証で指摘されるとは思いますが)

No title

>試されているモデルはなにになりますでしょうか
ttp://www.dlsite.com/maniax/work/=/product_id/RJ117312.html
このモデルです
PMX検証では剛体の名称重複が2箇所指摘されただけでボーン等には問題ありませんでした

Re: No title

> >試されているモデルはなにになりますでしょうか
> ttp://www.dlsite.com/maniax/work/=/product_id/RJ117312.html
> このモデルです
> PMX検証では剛体の名称重複が2箇所指摘されただけでボーン等には問題ありませんでした
むちむちるのさんですか
私も持っていますがモンテコア様の標準的な作りのボーンですね。
基本的に神子と同じ手順で対応可能だと思います。
どこが説明抜けているのか気にはなりますが、近いうちに導入手順をスクリプト化したものをUploadしようと思いますので、
可能なようでしたらスクリプトの結果と比較して確認していただければと思います。

No title

>どこが説明抜けているのか気にはなりますが、近いうちに導入手順をスクリプト化したものをUploadしようと思いますので、
>可能なようでしたらスクリプトの結果と比較して確認していただければと思います。
お手数ですがお願いします

No title

比較の報告に遅れてすいません
ボーンの座標等同値にしてみても変化はありませんでした
ボーンは動いてはいるんですが体が動かない

Re: No title

> 比較の報告に遅れてすいません
> ボーンの座標等同値にしてみても変化はありませんでした
> ボーンは動いてはいるんですが体が動かない
わざわざ確認とご報告ありがとうございます。
おそらく回転付与かなとは思いますが説明を見直してみます。
プラグインで実現できるようであれば別に良いようにも思いますが念のため
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Twitter