background

小道具-MAT=?

2008年01月14日(Mon)

MATポーズを小道具に適用させるには、

  • その小道具がフィギュアにペアレントされていること
  • figure~ではなくprop~の該当マテリアルを変更すること
  • その小道具の内部名を正確に指定すること

の3つの条件が必要である。

ペアレント設定を持つ小道具は、そのファイル内にペアレント先フィギュアのフィギュア番号を記録している。それは本来、ライブラリからロードされた時にペアレントされるフィギュアとは関係ないはずである。なぜなら新しいペアレント先は、ロードしたその時点で選択していたフィギュアになるからだ。ところがPoserは、元々のペアレント先フィギュア番号を参照して、シーン上のその番号を持つフィギュア内に同名のオブジェクトがあれば勝手に名称を変更してしまう。

と、ここまでが前回までの話。

一つの解決策として、ロードした時に内部名が変わらないようにするために、元々のフィギュア番号を非常に大きくとる、という方法がある。元々のフィギュア番号が2番や3番なら、該当するフィギュア番号を持つフィギュアが存在する確率は高い。しかし、それが10番だったりあるいは100番だったりすれば、100体フィギュアを読み込まなければ「そのフィギュア番号を持つフィギュア内に同名のオブジェクトがある可能性」は限りなくゼロに近くなる。

もう一つ、もう少しだけスマートな解決策がある。フィギュア番号にNullを使用するのだ。

Nullはまあプログラミング用語なのだが、ゼロとは異なり、値そのものが存在しないことを指す。フィギュア番号は必ず1番から始まるが、実はキャラクターファイルや小道具ファイルでは、Nullを使うすなわちフィギュア番号を指定しないことが可能なのだ。(ちなみにNull番でも連動記述を使うことはできる。フィギュア番号についての過去記事参照のこと。)

前回使用したファイルをエディタで開き、フィギュア番号の部分 ":1" を削除してみよう。

080114-1

で、前回同様これをロードしてみる。まずはフィギュアにペアレントされている場合。

080114-2

そんで、自動ペアレントの設定が施されている小道具の場合。

080114-3

このように内部名の変更は起こらない。法則を当てはめてみよう。小道具をロードした時、Poserはフィギュア番号Nullのフィギュアがシーン上に存在していないかを探す。しかし、フィギュア番号は必ず1番から始まるため、該当するフィギュアが存在することは決してない。だから、内部名が変更されることもないというわけだ。

従ってMATファイルの適用が想定される小道具を作成する場合は、ペアレント先のフィギュア番号をNull(空白)にすればよいことになる。もちろんあらかじめ小道具をペアレントしているフィギュアの場合は、フィギュア自体のフィギュア番号も同じNullにしなければならない。一つのフィギュア内でフィギュア番号が異なったりすると、ロードしたときにえらいことになってしまうので要注意。

さて。これで万事解決……と言いたいところだが、どうしても解決できない点がある。実はこの手段、一度ライブラリに保存したフィギュアには使えないのだ。元にNullを使っていようが100番を使っていようが、一旦ロードしてしまえばその小道具には新しいペアレント先のフィギュア番号が付く。当然、ライブラリにも新しいペアレント先のフィギュア番号で登録されてしまうのだ。

この影響が最も頻繁に現れるのが、小道具型の髪を装着したフィギュアをライブラリに登録したときだろう。髪にはフィギュア型と小道具型の2種があり、小道具型の髪には通常のタイプとDHタイプの2種が存在する。この小道具型の髪(拡張子hr2またはhrz)は "figureHair" という固有の内部名を使用し、ロードされるとペアレント先の同名の内部名を持つオブジェクトを削除する(つまり原則的にフィギュア一体につき一つしかペアレントできない)という、特殊な性質を持つ小道具の一種である。モノ自体は小道具なので、外部名と内部名には小道具の識別番号の命名規則が適用される。

小道具型の髪を装着したフィギュアをライブラリに登録し、2~3人呼び出してMATファイルを適用してみよう。二体目以降のフィギュアにMATが適用できないというケースが頻発するはずだ。キャラメイクをする時は最初にフィギュアをロードするケースがほとんどだろう。ならば、ライブラリに登録されたフィギュア番号は1番である。すると、二体目以降の髪の内部名は "figureHair" ではなく "figureHair 1" になってしまう。

また、以前「大型熱帯低気圧接近中。」で触れた「2体目以降に読み込んだフィギュアの外部バイナリモーフに保存されたモーフが効かなくなる」という現象も、これが原因だと思われる。この不具合はP7E(SR2)では修正されているが、おそらくそれまでは外部バイナリ内に保存されたモーフと髪を結びつけるのに、髪の内部名だけを使用していたのだろう。


小道具の名前が読み込みの度に(一定条件で)変わってしまう以上、MATポーズのようなポーズファイルで小道具にアクセスする方法はやはり万全とは言い難い。V4のマグネタイズポーズのように、小道具の内部名が変わるたびに適用するファイルを変更する、という対策はMATポーズでは無理があるだろう。アイテム制作者側がフィギュア番号にある程度の配慮をしたのなら、あとは使用者側が、再保存の際に起こりうるこれらの現象を把握しておくこと。そして可能ならば、MATファイルはやはり自己責任の技術なのだからと、大人しくマテリアルコレクションファイルを使用するようにユーザー全体がシフトしていくこと。Poserが抜本的に仕様を変更しない限り、ユーザーが取りうる道は限られているような気がする。

うーん、あまり解決にならない結び方になってしまった。

《2008.02.05追記》
条件付きだけどかなり楽に解決できる方法がわかりました。詳しくは2008.02.04付けの記事を参照下さい。



Comments

MATポーズ

個人的な意見ですがMATポーズはなかなか消えないヤカンが…
つーのも現時点ではD|Sってのがあって、これがマテリアルコレクションを…ゴニョゴニョ…

Name
ほげほげ #-
Site
URL
Post Date
2008-01-14
Post Hour
15:21:54

Edit

今回のMAT記事でこれも以前買ったDAZのドレス(これは恥ずかしくないヤツ)の小道具がMATポーズがまともに使えず、自分で張替えしていたんですが、ようやく使えるようになりました。使える事は使えたんですがモヤモヤしていました、もう大丈夫です(^^
とても気にっていたドレスだったので良かったです、有難うございます(^^

Name
sannzi #u2lyCPR2
Site
URL
Post Date
2008-01-14
Post Hour
21:06:25

Edit

何てややこしい・・・
検証していただいて、わかりやすく書いていただいて、ありがとうございます。
やっぱりmc6の方がいいのかなぁ・・・

Name
ぱいん #WzzJX4NY
Site
URL
Post Date
2008-01-15
Post Hour
19:36:34

Edit

結論はなかなか出ず…

>ほげほげさん
難しい問題ですねー。D|Sはそもそも小道具の内部名は変わらない仕様なんですよね。V4のマグネタイズボーズがD|Sの場合は一種類しか必要でないと聞いていますし、もちろんその方が良いんでしょうけども……。でもD|Sは専用マテリアルを用意してることも多いですし、そのうちD|Sとmc6の二本立てがメインになる日が……来ませんかねぇ(笑)
 
>sannziさん
お役に立てましたでしょうか。「こういうことが起こるんだ」って認識しておくだけでも、随分安心してアイテムを使うことができるようになるのではないかと思います。
あ、今度は恥ずかしくないドレスなのですか。ちっ(コラ)
 
>ぱいんさん
こうやって突き詰めて考えて行くと、Poserって便利なようで面倒くさいことが多いですね(^^;
とりあえず、配布する側としては再保存した後の事を保証外にするならMATでも良いとは思います。現状がほぼそうなってますし。
ただ、mc6を使ってもらうメリットというか、これからP6を使う人が増えてきて、シェーダ類を利用したマテリアル(たとえば反射設定とか)の需要が増えてきたら、mc6の方が可能性は……あるんじゃないかなと……(弱気)

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2008-01-15
Post Hour
21:59:58

Edit

ふむふむ

小道具って結構ややこしいのですね。またひとつ勉強になりました。
そういえば以前、モーフをPMD保存していたキャラを呼び出したらまったくモーフが動作しなくなったということが頻発してましたがこれかな。。(服、髪、小道具などごと)。うーん、小道具はMATにしないでmcファイルにした方がわかりやすそうですね。(バージョン限られそうですが)

Name
aachan #7RsvQPjg
Site
URL
Post Date
2008-01-18
Post Hour
16:20:27

Edit

>aachanさん
ややこしいですねー。特にペアレントのあたりとかが本当にややこしいと思います。
pmdファイルが効かなくなってしまうこと、自分も時々起こります。それまで普通に使えていたはずなのに、急に使えなくなるんですよねー。アクセスする時にファイルを破損してるんじゃないかとか疑ったり……。
小道具は、最初からフィギュアに含まれていない限り、色違いの数だけ小道具ファイルを用意するのが一番確実なような気がします。実際その方法を取っているものが多いですし、ジオメトリを外部参照にしてしまえば容量もそんなにかさばりませんし。
他の方が作成されたアイテムの色替えは、mc6ファイルを用意した方が確実だと思います。

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2008-01-18
Post Hour
18:56:29

Edit

なるほどー。色の分だけファイルというのがわかりやすいかもしれませんね。objファイルがつく小道具とない小道具の違いがよくわかってなかったのですが、ジオメトリ一個でファイル何種類か使いまわすような時には1ジオメトリで容量削減できていいのですね。すっきりしました。そういえばDCのテクスチャはなんでMaterialばかりなんだろうと思っていたらあれも小道具だからか。(手抜きかと思ってしまいましたw)

Name
aachan #7RsvQPjg
Site
URL
Post Date
2008-01-19
Post Hour
02:34:59

Edit

>aachanさん
小道具はファイル内にジオメトリを含むのがデフォルトの動作なのですが、もちろんフィギュアのように外部参照にすることもできます。逆にフィギュアのパーツも内部に含むことができるのですが、あまりメリットはありません(笑)
小道具のジオメトリを外部参照にする方法は、このブログの過去記事を「外部参照。」(←。付きで)検索すると出てきます~。

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2008-01-19
Post Hour
23:57:34

Edit

Post Comment

管理者にだけ表示を許可する


Trackback

※このブログにトラックバックを送信する場合、お手数ですが本文中にブログ該当記事へのリンクを含めてください。

トラックバックURL:http://rutenshikai.blog63.fc2.com/tb.php/287-dced694a



Menu

Profile

Kyotaro

確定名:Kyotaro
ネタを探しているらしい。

Categories

Calendar

06 | 2017/07 | 08
- - - - - - 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 - - - - -

Comments

Archives

Track back

RSS feed

Links

Search

※2011年4月6日のサーバ障害の為、エントリのアドレスが以前のものからズレています。当Blogのエントリにリンクを張っておられた方は、お手数ですがアドレスのご確認をお願い致します。

※Internet Explorer非推奨。