background

インジェクション

2008年02月29日(Fri)

Poserの自由度の高さの一つに、Poseファイルを本来の目的以外に利用できることがある。その例の一つがMATファイルだが、他にもPoseファイルはフィギュアのあらゆる情報を上書きすることできる。モーフチャンネルも例外ではない。内部名をきちんと指定すれば、目的のモーフチャンネルの値だけでなく、モーフデルタ自体も書き替えることが可能なのだ。

これを利用して、あたかも新しいモーフチャンネルが追加されたように見せかけるのがインジェクションである。見せかけるということは、つまり実際は追加されているわけではない。

  1. キャラクターファイルの該当バーツにモーフデルタが空のモーフチャンネルを用意する。外部名には適当な名前を付け、パラメータパレットに表示されないよう非表示にしておく。
  2. Poseファイルを用いて用意した空のモーフチャンネルの内部名を指定し、そのモーフデルタを上書きする。
  3. 同時にモーフチャンネルの外部名を分かりやすい名称に変更し、非表示から表示に変更する。

これがINJファイルが実際にやっている動作である。REMファイルの場合は2と3を逆に辿り、

  1. モーフチャンネルを表示状態から非表示状態に変更する。
  2. モーフデルタを上書きして空白にする。

を行っている。モーフデルタが入るべきチャンネルは既に用意されていて、その内容を書き替えているのである。この予め用意されたモーフチャンネルを空きチャンネルという。空きチャンネルは普段非表示状態になっているから、新しいダイアルが追加されたように見えるのだ。

古いINJファイルでは、モーフデルタを上書きする部分と表示/非表示を切り替える部分を分割して2回記述しているものがある。また、INJ/REMファイルの中には適用時に自動的にダイアルの値も変更するものがあるが、これも分割されていることが多い。おそらく、過去のバージョンではこれらの操作を同時に行うことができなかったか、Poserの動作が不安定になるなどの弊害があったのだろう。現在、少なくともP6以降ではまとめて記述しても問題なく動作する。

では、びっきさんを例にしてファイルの中身を見てみよう。

Victoria 3 SAE.cr2をテキストエディタで開くと、空きチャンネルが大量に用意されていることがわかる。モーフセットが入る名前のついたチャンネルの他にも、PBMDC~とかPBMCC~とかいう内部名の空きチャンネルがある。これらはキャラクターセットなどを使用するときに利用できるチャンネルである。DCがDAZ専用チャンネルで、CCがCommon(共用)チャンネルだ。

080229-1

この状態では非常に簡潔な記述しかされていないが、Poserにロードすると動作に必要なデータが付加される。ここに適当なモーフをインジェクションしてみると、

080229-2

このように、内部名と表示/非表示、そしてモーフデルタの部分が変更される。

DAZのモーフセットのINJ/REMファイルは、実際には "readScript" 命令によってモーフデルタ用の外部ファイルと表示切替用の外部ファイルを参照している。

080229-3

readScriptはロード時に外部ファイルを読み込む命令である。ファイルを細分化することで、(例えばAll Morph INJと個別のINJ等で)モーフデルタの記述が重複することを避けることが可能になる。ただ、これは同時にPoserのどうしようもない仕様によって、非常に面倒くさい問題を引き起こすことになるのだが……そのへんは、またいずれ。

インジェクションの登場で、まず第一にモーフの追加が容易になった。モーフの追加や削除の操作はそれほど難しくはないが、一度に大量のモーフを追加するとなると手間暇がかかる。Poseファイルを適用するという単純操作でこれを解決できるのだから、キャラクターセットの配布やモーフセットの販売に大きな弾みをつけたことは疑いないだろう。

またインジェクションはキャラクターファイルからモーフデルタを分離し、ユーザーが必要とする分だけを追加することを可能にした。モーフデルタは前回説明した通り、頂点の移動距離を示したものである。ユーザーがリアルさを追求し、フィギュアがハイポリゴンになればなるほど、頂点の数は増えモーフデルタの行数は飛躍的に増大する。モーフデルタのために費やされるディスク容量の増加はPoserが宿命的に抱える問題である。D|SをリリースするまでのDAZにとっては、このインジェクションが一つの回答だったのだろう。

ところで、インジェクションにはその発想からして根本的な問題がある。それは、あらかじめキャラクターファイル内に空のモーフチャンネルを大量に用意していなければならないという点である。また、チャンネル数が充分に用意されていたとしても、誰がどのチャンネルを使用するかはまったくの任意である。2つのキャラクターセットがあったとして、それが同じ空きチャンネルを使用していたら、先に適用した方が後から適用されたモーフで上書きされ消えてしまうのだ。このチャンネルのコンフリクト(衝突)を回避するのが、V4.1から導入されたExPである。

個人的には、使用されない空きチャンネルの容量も馬鹿にならないと思うのだが、DAZはそのへんはもう開き直ってしまったようである。そんなわけで、続きは次回。

スポンサーサイト





ひとつずつ。

2008年02月26日(Tue)

Read Meを読む限り、V4の主な新機能はExP、Morphform、JSM magnetの三つらしい。一つ一つ確認していこうと思う。

まず、ExPとは何か。

DAZによれば、ExPはExtensible Parameters(拡張可能なパラメータ)の略である。一度リリースされたベースフィギュアに対して、キャラクターファイル(.cr2ファイル)に直接の変更を加えなくとも、後からインジェクション用の空きチャンネルを追加できるようにしたシステムのことだ。

では、インジェクションとは何か。

インジェクションは和訳すれば「注入」という意味になる。その言葉通り、インジェクションはPoseファイルを利用してフィギュアにモーフを追加したり削除したりすることである。モーフを追加するのがINJectionファイルで、削除するのがREMoveファイルだ。そして空きチャンネルとは、このインジェクションを実現するために予めキャラクターファイル内に仕込まれた、中身を持たないモーフチャンネルのことだ。

では、モーフとは何か。

モーフ(Morphing)とは、オブジェクトの頂点を移動させて、別の形状に変形させることである。目的の形状(モーフターゲット:MT)になるために、各頂点がそれぞれどれだけ移動すればよいかを記録したものがいわゆるモーフの中身、すなわちモーフデルタ(差分情報)である。

では、頂点とは何か。

しょうがっこうにいって、せんせいにしつもんしてみよう。

どこまで遡ればよいだろう?

ポリゴンは各頂点の座標と、各面がどの頂点をどの順番で結び合わせるかという情報を持っている。Poserが使用しているWavefront OBJ形式では、「どの頂点」を識別するために頂点番号が用いられる。頂点番号は実際にファイル内で何番というナンバーが振られているわけではなくて、頂点の座標が記述された順番がそのまま頂点番号になる。

080225-1

モーフターゲットの作成では、頂点数および頂点順序を一致させる必要がある。頂点の数が一致していないと、元のどの頂点が移動先のどの頂点に対応するのかがわからない。また、頂点順序=頂点番号が変更されていると、まったく違う頂点の座標を移動先として認識してしまう。俗に爆発といわれる現象である。

モーフターゲットを作成すると、Poserファイル内にはモーフチャンネルが作成され、「どの頂点がどれだけ移動したか」という情報が保存される。

080225-2

この保存された値は、パラメータパレットでダイアルを1にしたときの値である。ダイアルが0.5なら当然頂点の移動量は半分だし、1.5なら1.5倍だけ移動する。値がマイナスならば逆方向に移動する。

080225-3

モーフでは曲線的な動きを表現できないというのは、モーフがそもそも何であるかを考えれば、ごく自然な結果であることがわかるだろう。曲線を表現したいなら、中間地点のモーフを複数作成してERCで順次切り替えるなどのテクニックが必要になる。

と、ここまではマニュアル書かれていることなので、Poserユーザー共通の知識である。インジェクションの仕組みからはマニュアルに書かれていないはずだ。てなわけで続きは次回。

……遡りすぎた気がしないこともなかったりして。



読めと言われるからには

2008年02月22日(Fri)

DAZの新インストーラの何が嫌かって、Read Meファイルがインストール前に読めなくなったことだ。「A4のインストールにはV4 Baseが必要だよ」とか、インストール完了後にしか開けないRead Meに書いてあってもあんまり意味ないと思うんだけど。まあ製品紹介ページにRequired Itemが記載されてることはされてるけど。

そういえば新インストーラでインストール先のランタイムが選べなくなっている件。この仕様はV4の新技術をPoserで使うためのちょっとした心遣いなんだろうが、多分一番簡単な解決方法はD|Sをインストールしておくことだと思う。D|Sさえ入っていれば、インストール先は普段Poserで使ってるどのランタイムでも選択することができるはずだ(当方Mac版なのでターゲットアプリの選択とかいう項目はナシ)。

080222

D|S自体の占有容量は使わなければ60MB未満なんで、そんなに気にするほどでもないと思う。それより前回インストールしたフォルダを記憶してくれなくなったのが非常に面倒くさい。そいでもってDAZの心遣いを足蹴にした分は、きっちりリスクを背負うことになるのでちゃんと自己管理しておこう。

そんなわけで、V4とA4をインストールしてみた。やっぱりこんだけリリースが続くと、そろそろ何かしなきゃいけないような脅迫概念に駆られるというか。M4が出てから慌てるのもなんだしな、みたいな気持ちで。

で、V4のRead Meを和訳しながら読んでいた。フィギュアはまだろくにロードもしていない(爆)

いやだって別にV4もA4もフィギュア自体に興味があるわけじゃないし~(ぉぃ)。それに、こんだけ検証を先送りにしてきたんだから、やる時はそれなりに姿勢を正して、という気持ちもある。マニュアルにしろチュートリアルにしろ、読めばそれなりに得られる情報はある。急がば回れある。

Read Meを読んで感じることは、DAZは単語を作るのが上手いよなー、ということだ。ExPにしろMorphformにしろ、やってること自体は従来の技術の組み合わせなのに、それに新しいレッテルを貼ることであたかも新機能のように錯覚させる。マグネタイズポーズにしたって、モノ自体はG2フィギュアがリリースされた時点であったはずなのに、名前を付けてユーザーに認識させたのはDAZの功績だ。絶対的なユーザー数が違うのも要因だろうけど、こういう戦術的な部分はやっぱり飛び抜けて上手いような気がする。

今回一番驚いたのは、服製作者向けのDeveloper KitのRead Meの中に、注意すべき点として「ERCの記述の中にフィギュア番号は含めないように」としっかり明記されていたということだ。これ、つい先日Forum3Dで話題になった、PoserとD|SでERCの互換性を保つための重要ポイントである。その時はD|SではERCの扱いが違うことが初めて広く話題にされたと思っていたのだが、なんのことはない。DAZは(少なくとも自分がDeveloper Kitを入手していたV4.1リリースの時点では)、もうとっくに解決方法を製作者に向けて提示していたのだ。

他にも、V4 BaseのRead MeからはV4は最初からP5以前のバージョンは動作保証外であること、Morphformなる新機能が単なるモーフと変形を組み合わせたもので、従来の拡大縮小を使用した時のコンフォームの制約からは逸脱できていないこと、ポーズファイルでそれらを保存するためe-frontier系フィギュアと同様ValueParmの代わりに空のTargetGeomを使用していること、またERCに対するDAZの姿勢のようなものも読み取れる。

DAZはERCを機能させる手順をクロストークを確実にするためと説明し、クロストークとはフィギュアのモーフの値を服の同名のモーフにコピーするものであるとしている。これ自体はもちろん間違った説明ではないのだが、裏を返せばDAZはPoserのERCを、この用途のためにしかサポートするつもりはないと明言しているようなものだ(穿ちすぎ?)。

てな調子で、ちびちびとV4系解析開始。



隙を見て

2008年02月19日(Tue)

Aさんの冬物セーターを作り直した。以前、半端に合の子DCフィギュアとして作ってたものの、結局扱い辛くて全面DCで行こうと思い直していたのだ。初出はちょうど2年前(ひえぇ)。

080219-1

襟の形を見直したりとか三角ポリゴンを六角ポリゴンから作成したりとか、UV貼ったりとかクロスグループの設定を見直したりとか、少しずつ変えているんだけど最終的にはあんまり変わらない感じになってしまった。第一UV貼ってもどのみちテクスチャ描くつもりないし(笑)

あと、前のに比べて多少ポリゴンの目は細かくなったけど、皺が細かく寄ってしまう辺りは相変わらず厳しい感じだ。

080219-2

まあ充分レタッチでどうにか出来る範囲だからいいけど。

ついでに髪部屋でもふもふにしてみたり。破綻箇所が隠れるのが有り難い(笑)。

080219-3

もこもこな感じも面白い。

080219-5

ただどうしても、今のこの設定では手描きっぽいタッチになってしまう。もうちょっとリアルっぽくするならマテリアル詰めて、もっと毛を細くして本数増やさないとダメなんだろうけど、そうするとシャドウマップの計算にマシンが鳴くほど負荷がかかってしまうわけで、あんまり追求できないような気もしたり。衣服は髪より面積広いからなぁ。生やすのは楽なんだけど。もっといい設定があるかもしれないので、また気が向いたらいじってみよう。


Forum3Dのお題でレンダで多重投稿に関する問い合わせを頂いた。スレッドとしての見解は既にポストした通りだ。個人宛にメールで頂いたことなので、具体的に誰からの問い合わせだったのかは伏せさせてもらったが(ハズレだし・笑)、多重投稿自体についてはいずれ広く議論されてもよいテーマではないかと思う。すぐに一方的な結論が出るような命題ではないと思われるからだ。

ただ、簡単には結論が得られないが故に、すでにある程度の共通解は出ているという感じもする。フォーラムに書くか迷ったけど、一言で言えば「それぐらい空気読んでよ」ということだ。他者の気持ちを思いやれば、どちらに傾くかはまあ簡単な話。ただそれも、あくまで傾向であって是非ではないわけで。

完全に個人的な考えでは、お題でレンダは元々ギャラリーの内に入らないから別になんとも思わないけど、違うところのちゃんとしたギャラリー(←定義曖昧)での多重投稿はちょっとなー、という感じだ。自分はさすがに全く同じファイルを投稿したことはないが、以前サイズ違いを別の場所に投稿した時には、正直あんまりいい気持ちはしなかった。どんなに素晴らしい作品だって、2度目に見かけた時には得したとも嬉しいとも思わない。ましてやそうでない作品については、だ。

レタッチのバージョン違いにしたって、作った時にはどちらも捨て難く思うけど、取捨選択できない時点で結局は作品としての軸がブレているわけで。そんなことにかかずらっているよりは、もっと目と頭を鍛えてマシなものを作り出す方が重要かな、と自分では思う。思うようにしている。

ま、これは自分自身に対しての考えであって、他者には関係のないことだ。人がやってるのを見かけたところで、私の抱く感想が「得したとも嬉しいとも思わない」以下であるというだけの話。

投稿についての考え方は、それがどんな結論に到達しているにせよ、上手い人ほど真摯であるような気がする。というかまあ真摯でなきゃ上達しないんだろうけど。あまりに真摯すぎて謙虚が行き過ぎているんじゃないかというか、自分がリスペクトする作家さんの中には、もっと外に作品を出して欲しいと思う方が何人もいらっしゃる。余計なお世話だからあまり主張はしないが、密かにファンである身としてはこれが結構切ない(笑)。

よいものを色々たくさん見られれば嬉しい。結局はそれだけなんじゃないだろうか。



主成分は愛(爆)。

2008年02月15日(Fri)

とりあえず、14日までにバレンタイン画を2枚仕上げたので自分的には良しとしよう。出来自体はまああれだけど(笑)。

080214-1

久々にシーンファイルから引っ張り出したあいこさん。残しといてよかった(笑)。

そんなこんなでぶいよんは引き取ってきたけど開封もしていない。そもそもモノ自体(カタチがどうとかモーフがどうとか)にはあんまり関心無くて、中の仕組みを自分の目で確かめてみたいだけだから、検証熱が引いている内は放置されてしまうかもしれない。できればアップデートで何が変わったのかも確認したいけど、ランタイム分けた方がいいかな。めんどいな(ぉ

080214-2

いかにも即席な板チョコ。

リボンぐるぐる巻きは本当はクリスマス前に考えてたネタだったけど、機会を逸してたので今の内。ギャラリーに上げた後でフと、「贈る側が自分にリボンを巻くシチュエーション」に思い至って暗澹としたキモチになったのはここだけの話だ(笑)。イヤそっちの方が普通にありがち(?)だとは思うけど、作ってる最中は「革拘束具ぐるぐる巻きよりメルヘンだよねー」とか考えてたんだもーん。野郎が自分自身にリボン巻いたりしたら、女としては延髄蹴りを喰らわせてしまうと思う。実際。

080214-3

モデリングしてないから空洞だし。



使い道。

2008年02月09日(Sat)

DAZで売られているSFブーツ。最初に見かけて以来「いいなー」と思ってたんだけど、如何せん女性用(びっきさんとあいこさんとV4用)しか無いので見送りモードだった。そしたら案の定、後から男性用(まいこーさんとでびっとさん用)がリリースされたのだが、残念なことにそちらのデザインはなんていうか、自分的にはちょっと趣味から外れてたんだな。同じデザインなら迷わず買ってたのになー。

そんなわけで初売りセール期間を逃して、もう買うこともないだろうと考えてたんだけど。この間のプラチナ祭りでDAZオリジナル半額クーポンを貰った時に、フと思い出してお買い上げ。結構なハイポリゴンだけにいい感じ。

080209-1

もちろん女性に履かせる予定などまるでないのである(笑)

当然のようにじぇーむずの骨を入れて、合わせるボトムに迷う。細身の方のバンツにジーンズテクスをあててみたけど、裾を出すにも中に入れるにもちょっと中途半端だし。結局勢いでBILLYさんのスリムジーンズもコンバートしてみたりして。

080209-2

まいこーさんのぷっくり太ももラインを消すのに四苦八苦(笑)。コンバート作業をすると、各フィギュアの形状の違いがよくわかる。まあ、見ただけでわかる部分もあるけども。

で、趣味ではないと言いつつ、ついでに男性用のSFブーツも入手したんだけど。

080209-3

こちらも当然のようにまっとうな使い道はされないのであった。

あ、ベルト忘れてるなー。



箸休め的に。

2008年02月06日(Wed)

明日になったらアレに言及しないといけないような気がするので(笑)、今のうちに。

雷華さんちで面白いサイトを見かけたので早速まねっこ。

ARHEIMの足りないものカード

もうね、元ネタ知ってるとしか思えないし(爆)
いや、人間味は……あるかな(笑)

近況。久々にShadeを立ち上げている。

080206

バージョンアップしても、使い道っていうかやることは結局あんまり変わんないんだよなー。10の話が出てるけど、UV回りとか本気でどうなんだろ。



うああぁぁ

2008年02月04日(Mon)

うはー、$CURRENTってactorなら動くのか。っていうかactorで小道具にアクセスできたんだ、そういえばなんかそんな事を聞いた記憶があるな。って元々マテリアルファイルがそういう構成だもんな、そりゃそうだわな。うわー、prop $CURRENTなら試したのに~。

というわけで(?)、以前長々と書き連ねた小道具のMAT。P5以降で超簡単な解決方法。

"actor $CURRENT" を使えば、ペアレントの有無に関わらず選択した小道具のマテリアルを変更することができる。

具体的には、こんな感じ。

080204

actorの{ }に続けてfigure {...}というようにフィギュア用のマテリアルを記述すれば、フィギュアのマテリアルを同時に変更することも可能だ。

"$CURRENT" はカレントと言うぐらいだから、今現在選択されているactor名(=パーツ名)を指し示す。いわば指示代名詞のようなものだ。なので、具体的な内部名がbox_1でもsquare 2でも何でも関係なく機能する。内容はマテリアルに関するものだけでなく、通常のポーズファイルのように軸回転を記述することもできるので、例えば「選択したパーツのX軸回転・Y軸回転・Z軸回転を0にするポーズファイル」なども作成することができる。あんまメリットないと思うけど。

その他、 "$CURRENT" を使う場合には次のような制約がある。

  • 複数の小道具を一括変更することはできない。その場合は小道具の内部名で必要分指定する。
  • $CURRENTが使われ始めたのがP5なので、P4以前では使用できない。

あと、P4で小道具を変更する場合、 "prop 内部名" ではなく "actor 内部名" と指定しないといけないらしい。試したことはないから未確認情報だけど。あと、ポーズファイルはシーン上にフィギュアが(1体以上)存在しないと適用できない。ペアレントされてなくても適用できるけど、フィギュア選択リストが「フィギュアなし」だと適用できないのだ。フィギュアがロードされてない状態で適用される可能性があるもの(背景小道具類など)では、使用を避けた方がいいだろう。

そんなわけで、ほとんどの場合は "actor $CURRENT" を使えば万事解決というわけだ。なんていうか、裏面ポリゴンの時もそうだったけど、散々調べて苦し紛れに長文書いた後でポロっと解決方法が見つかるんだよなー。ムダになったとは思わないけど、徒労感は否めないっていうか。

って、誰か知ってたんなら教えてよー(笑)

あ、TriaxialGateの展示会、今年は奇数月開催予定ですので。





Menu

Profile

Kyotaro

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

Categories

Calendar

01 | 2008/02 | 03
- - - - - 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 -

Comments

Archives

Track back

RSS feed

Links

Search

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

※Internet Explorer非推奨。