配布可能な形式とは?
配布可能な形式とは?
自分で使う分には、ファイルをまとめたり、FBMにしたり、ライブラリの各所に登録したりとファイルの形態も結構幅広いPoserですが、そうやって作成されたものを他の人も使える形にして公開するとなるといろいろ規制がでてきます。
まず押さえておかなければならないのが、「他の人が作ったものには著作権が存在する」ということです。
人体フィギュア、服や小物、モーフなどあらゆるものにそれはついてきます。
個人の作成されたものについてはRead meや作者さんのサイトなどに記述があると思います。自分で1からモデリングしたものに関しては以下の通りではありませんので、ここでは既存のものを利用する場合の問題点についてあげておきます。
大手販売会社のモデルを利用する場合には、以下の規約にも目を通して理解しておくことは義務でしょう。ここには購入したアイテムの他人への譲渡禁止など結構重要なことも記載されています。
Content Paradise(Smith Micro)
Terms of Service
私も繰り返し何度も読んだのですが、ではどういう形のファイルが著作権に抵触するのか?という具体的なことは書いてありません。非常に頭を痛めました(ーー;)
そこで過去のさまざまなFORUMなどからひろいあげて見て行くと
直接原型が再現できてしまう。
というのが一番の問題のようです。極端な話をすると、例えばV3の頭をobjで吐き出してモデリングソフトで変形したものがあるとします。
このobjファイルをそのまま配布したら、V3のメッシュも再配布することになりますよね。
実際にV3を持っていなくてもその形状が再現できてしまうというのは大きな問題です。
この場合、自分で変形した部分、つまり元のメッシュからの移動した方向や距離などの情報部分だけを配布しなければならないのです。
で、そういった情報はどのように記述されるかというと、Poserファイルの中身は基本的にテキスト形式になっています。CR2とかpz2とか各ファイルを開いてみると記述があります。
例えばこれは自作モーフのpz2の中身ですが、dから始まる数字の羅列がずらずら続く部分があります。

これがdeltas情報と呼ばれる部分で形状に関する移動距離や位置等を記しているようです。
objファイルやcr2には他にもそのモデルの形状の生情報が詰め込まれている形になるのでそのまま配布はできません。
「RTEでエンコード」という方法で手を加えた部分だけを抜き出すようですが、私は実際この方法を試したことがないので今回は触れません。キーワードとして調べてみてください。
幅広く使われている形式としては
INJファイル形式 :変形情報のみを追加で埋め込む形式。(REMファイルでその部分をリムーブするものとセットになることが多い)pz2など。
PMD外部モーフファイル形式 :P6以降のモーフ情報を別保存したファイルを利用する形式。cr2などに付属。
FC2形式 :顔部分のみのfc2というファイルを利用した顔モーフ。
などがあげられるでしょう。今回はこれらについてキャラクターモーフとして検証、実行してみました。
しかし、これらのファイルも1通りではなく、既存のモーフを利用した場合にはモーフそのものにも著作権があるということを忘れてはいけません。
マグネットやモデリングソフトなどで自分でモーフそのものを作成した場合と、DAZで販売されているモーフキットを利用して変形されたものではまた取り扱いが変わってくるというわけです。
ややこしいですがこのへん重要になるので押さえておきましょう。
このへんが私が理解できた範囲です。間違いがあったら突っ込み御願いします。
要するにそのファイル単体で、ベースとなった形状が再現できてしまうものはだめということですね。
以降実際に配布可能な形式のキャラクターモーフファイルを作成して行く例を紹介していきたいと思います。
配布ファイルのお約束
配布ファイルのお約束
実際にはPoserのバージョンによる違いというのが結構あって、どのバージョンでも使える形態にするというのはなかなか大変だと思います。
私は現在Poser8英語版(Mac)しか使っていないため、他の環境での動作は検証できません。
そのうえで気づいたことですが、私がよくやるミスで大事な事
ファイルパスの区切りには「:」を使うことと、パスは「Runtime」から指定!
MATポーズのテクスチャファイルへのパスやobjファイルへのパスなど古い形式では「/」を使っていたり、Windowsの「Program」からのパスになっていたりで読み込めないことがしばしばありました。
また作成する時にきちんとパスを指定したはずなのに、一部だけ記述がおかしくなっていることなども多々ありましたので、最終チェックを怠らないよう、配布前にファイルに記述されているパスの確認を丁寧にされることをおすすめします。

また、この辺を覚えておくと、今まで読み込みがうまくいかなかったファイル等の直し方がわかると思います。
cr2.pz2などの該当部分をチェックしてみて下さい。
PMD編(CR2Builder利用)
PMD編(CR2Builder利用)
P6から導入されたというPMDファイルを使って、フェイスキャラクター(顔のみ)を配布できる形にする紹介です。体型含む場合も基本は同じような感じですので。
Poserのバージョンが限られてくるところはありますが、ファイルの作成手順としては比較的簡単で、元々モーフ部分のみを抜き出して保存されたファイルということでわかりやすいです。
以下のサイト様を参考にさせていただきました。感謝。(ー人ー)
たをるじ日記inBlogさんより「こんどこそ大型企画・pmdを使ってINJもどきを作る」シリーズ
Nerd3Dさんより「Poser 6 PMD Injection」
今回は、既成のDAZのモーフキットを利用して、モーフキットを持っている人だけが使えるキャラを作った例です。特定のモーフダイヤルの数値を引き出す方法の紹介になっています。
1 - 環境設定を開き、「その他」で「モーフの対象に外部バイナリを使用」にチェックがはいっていたら、ここをはずします。

2 - この状態でファイル化したいキャラクターを作成したものを、Poser上で「ライブラリ>フィギュア」に保存します。
そうするとPMDファイルのない、モーフ情報まで含んだcr2ファイルが作成されるのでこれをコピーしておきましょう。
3 - ここからの作業は私は kim99さんの作成されているWin専用の編集ツールCR2builderを利用しています。(「3 Minutes Poser」より)
以下の例ではCR2Builder02mを使用しております。
1.さっそく左メニューの「Open」をクリックしてCR2を選択すると、おおっ!読み込めました。 |
2.次に、上部メニューより「LeftPage>TreeView>Remove 0 TargetGeom ALL」を選択。
|
|---|---|
3.もにょもにょーっと最下段に実行中の様子が表示され。。。Done!! 調べてみると、これで数値をいれてなかった余計なモーフパラメータ達がきれいにいなくなってました。

これを一応名前を変えて保存します。

4.そしてこのファイルをPoserの中の「Libraries>Character」の中に入れます。(※この時上記で作ったcr2を別途保存しておきます)
Poserを立ち上げて今度は環境設定で外部バイナリにチェックをいれます。(最初のベースを作る段階ではここのチェックをはずしてあるはずです。)

5.そして、余計なモーフをCR2Builderで削り取ったCR2を呼び出します。無事読み込めました。v(^^)

これを改めてフィギュアメニューで保存しなおすと、PMDファイルにファイル情報が移管されているはず。ライブラリ内のファイルはこんな感じになってると思います。

6.このpmdファイルはバイナリ形式のため、そのままでは使えません。このpmdを呼び出すためのファイルが必要になります。「3」で作った外部バイナリのチェックをはずしてパラメータ0を削ったcr2ファイルを利用します。
groupとtargetGeomだけ残して余計な部分はすべて削除していきます。今回は目もいじってるので、actor headとleftEye,rightEyeのみ残しました。
1.先頭のバージョン情報を残す
2.Objへのパスになっているところをpmdへのパスに変更。(pmdファイルはどこに置いてもいいのかもしれませんが、インストール時にわかりやすいようにpz2ファイルと同じところにしてみました。)
「injectPMDFileMorphs runtime:libraries:pmbファイルのパス:pmdのファイル名」
3.actor head,leftEye,rightEyeのモーフ部分だけ残して後は削除。

7. 念のため中身をテキストエディターで確認してみる。ふむ、無駄はなくなったようだ。
※Win環境がなくて、CR2builderが使えない場合は、こういう形になるようにテキストエディタで修正していくか、クラシック環境ならMaconstractorというCR2編集ツールを利用することになるでしょう。

8.ファイル拡張子を「.pz2」として保存。
これでINJ形式のポーズファイル完成。同じように冒頭の「inject」を「remove」に変えてREMファイルも作成。

ちなみにREMの記述はこれだけでOK。単純にpmdの呼び出したものを削除するだけの内容になります。

9.Libraries内の「Pose」フォルダに放り込んで動作確認してみましょう。
この場合はYoungteen Laura3を呼び出してMATと髪型を適用したものに、ポーズメニューから先ほど作成したpmdINJを適用したものです。顔が変化すれば成功です。

PMDを利用した場合は、後述するReadscriptを記述した場合と同じ形式になるようです。モーフダイヤルが読み込まれてそこに数値がはいった状態になります。
pmdとpz2ファイルをセットにして配布する形になります。
※ご注意
私は読み込みの負担とファイルサイズそのものを軽減するために、k 0 0 を省いた数値の入っているモーフのみを読み込む形式をとっております。
そのため、INJ前になんらかの表情系やモーフに関するダイアルなどをいじっていたフィギュアに適用すると、その分も加算されて狙ったものとは違った顔になってしまう危険性も秘めております。
それを回避するためにはk 0 0のダイヤルも含めたINJを作成してあらかじめリセットするようにするか、ノンモーフ状態のフィギュアに適用するよう注意書きをつけておいたほうがいいかもしれません。
INJ.pz2編(既製モーフ使用例)
INJ.pz2編(既製モーフ使用例)
この説明は、DAZの第三世代のV3やM3などをターゲットに記述してあります。
また、第三世代までのDAZのフィギュアでモーフキットを利用した場合、「Injection Pose Builder」を使うとめちゃくちゃ簡単にできます。
まずはINJ.pz2というファイルが、どんな構造になっているのか再チェック。PMDの時にもpzファイルは作ったが、PMDを使用しない場合はモーフのScript呼び出しが増えます。
1.Poser ver宣言
2.(どんなツールを使って作成されたか、ベースは何かなどのメモ)
3.Call Script(既成モーフキットの場合、実際のモーフが入っている個別pzファイルへのパス)
readScript":Runtime〜以降のファイルまでのパス"という書式。
例えばDAZの第三世代のフィギュアの場合、これらのモーフキットのファイルは
Libraries>!DAZ>キャラクタ名>Body or Head>ChanVis or Deltas
に あります。
例えばM3だと、Chanvisのフォルダには「Hide/Unhide」Deltasのフォルダには<「INJ/REM Deltas」系のファイルがはいってます。(第四世代は仕様が変わってもっとややこしくなってますが。。)
内容を見ると、実際のモーフ情報は「Deltas」フォルダの方ですが、「Hide/Unhide」で hiddenを制御しているのでこの2つを対にして記述するようです。
INJファイルの場合(モーフを適用)
Deltas - readScript ":Runtime:libraries:!DAZ:Michael 3:Head:Deltas:InjDeltas.〜pz2" |
|
|---|---|
ChanVis - readScript ":Runtime:libraries:!DAZ:Michael 3:Head:ChanVis:Unhide.〜pz2" |
つまり指定のモーフをインジェクトして、見せる。(隠さない)
REMファイルの場合(モーフを削除)
Deltas - readScript ":Runtime:libraries:!DAZ:Michael 3:Head:Deltas: RemDeltas.〜pz2" |
|
|---|---|
Chanvis - readScript ":Runtime:libraries:!DAZ:Michael 3:Head:ChanVis:Hide.〜.pz2" |
つまり指定のモーフをリムーブして隠す。
4.CR2のモーフ適用部分
actor内のchannnel以下のgroupも不要で、TargetGeomのみのシンプルな構造。TargetGeom内もただkeysの数値のみ。
actor〜 |
|
|---|---|
{ |
|
cannnels |
|
{ |
|
targetGeom〜 |
|
{ |
|
keys |
|
{ |
|
k x x |
|
} |
|
} |
5.閉じ
と、まぁこんな流れになっているようです。実際の作業としてはPMDのときにやったのと同じような流れでCR2builderを利用させていただきました。
1.actor head,leftEye,rightEyeのモーフ部分だけ残して後は削除。
2.上部メニューより「LeftPage>TreeView>Remove 0 TargetGeom ALL」を選択で値が0のモーフも削除。
3.あとは間にある不要部分の記述もさくさく削除
ちなみにCR2Builderでの削除は「Delete」。まとめて複数の行を削除する場合は、一行をクリックした後、目的の最後の行を「shift」を押しながらクリックで範囲選択できます。(その間ずっとshiftを押し続ける必要もなし)
手作業でやる人は、モーフ呼び出しの形式は決まっているので、最後のファイル名だけ省いたフォーマットを用意しておくといいかもしれない。こんな感じであとは最後のファイル名だけコピペすればいいように。。。
// --- M3 Deltas Includes ---// |
|
|---|---|
readScript ":Runtime:libraries:!DAZ:Michael 3:Head:Deltas:InjDeltas." |
|
readScript ":Runtime:libraries:!DAZ:Michael 3:Head:Deltas:InjDeltas." |
|
readScript ":Runtime:libraries:!DAZ:Michael 3:Head:Deltas:InjDeltas." |
|
// --- M3 ChanVis Includes ---// |
|
readScript ":Runtime:libraries:!DAZ:Michael 3:Head:ChanVis:Unhide." |
|
readScript ":Runtime:libraries:!DAZ:Michael 3:Head:ChanVis:Unhide." |
|
readScript ":Runtime:libraries:!DAZ:Michael 3:Head:ChanVis:Unhide." |
Head:Deltas:InjDeltas〜やHead:ChanVis:Unhide〜以降の最後の〜.pz2のファイル名は基本的に全て一致します。
なので実際にはひとつの項目のパスを埋めたならば、その部分をコピーして、「全て置換」でその前のパスを変更してやったものをはりつけていけば、テキストエディタでも早いでしょう。
<異なる箇所>
<INJ>
Deltas:InjDeltas
ChanVis:Unhide
<REM>
Deltas:RemDeltas
ChanVis:Hide
この部分を。。。

そうするとほら、一気に入れ替わりました。

こうやってできたファイル構造はこんな感じになります。これはINJの場合。

REMの場合は上記のパスが変わるのと、actor以下のKeysの数値が全て
k 0 0 (つまりモーフダイヤルが0の状態)
となるだけです。
ここも上記のファイルを作る際に、CR2BuilderでREM用に0にしたものを一緒に吐き出しておけば楽です。
完成したファイルに適当に名前をつけて、拡張子の「cr2」を「pz2」に変更して保存。これをPoseフォルダの適当な位置につっこむ。pngも作成してつけといた方がいいのは言うまでもないでしょう。


形式的にはPMDと一緒で、チャンネルに数値がそのまま読み込まれた状態ででてきます。
※ご注意
私は読み込みの負担とファイルサイズそのものを軽減するために、k 0 0 を省いた数値の入っているモーフのみを読み込む形式をとっております。
そのため、INJ前になんらかの表情系やモーフに関するダイアルなどをいじっていたフィギュアに適用すると、その分も加算されて狙ったものとは違った顔になってしまう危険性も秘めております。
それを回避するためにはk 0 0のダイヤルも含めたINJを作成してあらかじめリセットするようにするか、ノンモーフ状態のフィギュアに適用するよう注意書きをつけておいたほうがいいかもしれません。
fc2編(既製モーフ使用)
fc2編(既製モーフ使用)
fc2とは何かというと、日本語Poserではライブラリメニューで「表情」と表示される項目に対応するファイル形式です。
この訳語のせいで、ずっとExpressionに関するものだと思っていたのですが、喜怒哀楽等の表情だけではなく、実際には輪郭や顔の変形、キャラクターモーフなどにも使える「顔」全般の動きに対応するものでした。
配布されているキャラクターでも、顔だけのキャラはこのINJ.fc2形式のものも結構出回ってます。
ファイルの記述内容を見ると、あきらかにINJ.pz2とまったく同じ感じですね。
1.Poser ver宣言
2.(どんなツールを使って作成されたか、ベースは何かなどのメモ)
3.Call Script(既成モーフキットの場合、実際のモーフが入っている個別pzファイルへのパス)
4.CR2のモーフ適用部分
5.閉じ
つまるところ「Pose>ファイル名pz2」のとこを「Face>ファイル名fc2」にすればそのままいけるんでない?と思って試してみました。
INJpz2で作ったファイルの拡張子をfc2にしてFaceフォルダにつっこんでみただけですが、案の定問題なく適応できました。
Poser上で登録したfc2ファイルも、そのまま流用する方法があるというので試してみました。
まずはモーフを適応した状態のキャラを「表情」メニューの中にシングルフレームで登録します。

生成されたファイルの中身をみると、モーフ情報のkeyの数値のみが記入されたとてもシンプルな構造。

無駄な情報がないので、これをそのまま配布するということもできるらしいです。おそろしいほど簡単な方法ですね(汗)。
ただし、対応するモーフチャンネルが存在しないと当然変形しません。
そのため適応する前にモーフを読み込んでおかねばならないのですが、例えばfc2ファイルの方で軽くしようとk00の項目を省いたとします。
しかしどの項目が必要なのか、全てread meなどに記載していっこいっこ入れさせるというのはめんどくさい作業なので(やらされるほうも嫌だろうw)、必然的にHead Allという感じになるでしょう。
当然不要なモーフも読み込まれてしまうということに。このall Headの読み込みは正直いって結構重いんですよね。
all HeadMorphs 適用→表情メニューよりfc2の読み込み
という使用手順になることを明記することと(実際には逆でも同じように変化はしますが)、上記の不要モーフ問題さえなければ超お手軽配布形式であることは確かです。ファイル作成の際の記述ミスもないですし。
ちなみにM3RRはほぼ同じモーフがすでにセットされた状態ですので、事前モーフ呼び出しなしで流用できます。
そのまま表情メニューから適用すれば、ほぼ再現できるので、軽いベースで使い回ししたい時には便利です。
(とはいえポリゴンが異なるので、細かい部分は再現できません)

今回の場合はちょっと対応していない箇所も生じてしまった為、(老け顔系かな?)やや違う感じになってしまいましたが、一応形的には似た感じになったようです。若かりし日のおやじ?
オリジナル自作キャラ編
オリジナル自作キャラ編
まずはキャラを自作します。
モデリングソフトで作成してもいいですし

マグネットなどを使って変形させてもいいでしょう。

いずれも一度obj形式で書き出して、モーフタッゲットとして読み込み、モーフダイヤル「1」にして変形を適用させます。
書き出す時に、もしDAZのモーフッキトなども組み合わせていたら、そちらはいったんメモしてはずしておいて、モーフターゲット適用後に別に適用させます。
モーフターゲットのやり方は、同じくTips内の「フェイスモーフの作成」の最後にある”Poserにモーフとして読み込む”あたりを参考にしてください。
モーフターゲット込みのフィギュアをcr2にします。
モーフターゲットとして読み込んだキャラを、ライブラリの「フィギュア」に登録します。(pmdと分散させないように、環境設定で「モーフの対象に外部バイナリを使用」のチェックをはずしておいて下さい。)
アプリケーションの、「Runtime>Libraries>Character」を開いて、保存したファイルを探し出し、テキストエディタで開きます。

とても大きなファイルになっているので、自分でつけたモーフターゲット名の項目を検索します。

「deltas」という記述以降の英数字の組み合わせが、モーフとして動かした頂点の記録になります。
少し手前の「targetGeom〜」からこのdeltasの表示が終わって閉じるところまでをコピーして(かなり長いですから注意)、新規ファイルとしてペーストしたものを保存します。
※記述が長いので、誤って余計なモーフまでコピーしてないか確認。最後に「targetGeom」で検索をかけてみて下さい。指定した名前以外のものが引っかかったら取り除いてくださいね。
ファイルを書き換えていきます。
この記述をモーフとするには、空きチャンネルに押し込む必要があります。一般的には「PBMCC」というチャンネルを利用します。
M4で01〜70くらいまであるので、あまり人が使わなそうなところを狙って番号を決定します。(万が一他に読み込んだカスタムモーフなどと番号がかぶると、上書きされる恐れがあります)

さらに、先頭に以下のような記述を書き足します。ここからは「INJ.pz2編」とほぼ同じ。

全体的なファイルはこのようになります。
構文的に閉じ忘れがないかチェックしましょう。これは一例ですが、それぞれの色が対応しているところがセットになります。

INJしたキャラファイルを取り除くREMファイルを作成する時には、この数値を変えます。
この時、deltas情報の数値は入力する必要はありません。

それぞれわかりやすい名前をつけて、作成したファイルの拡張子を「pz2」として保存します。

ポーズフォルダのなかに放り込んで、動作を確認してみましょう。
適用が成功したら、対応パーツのパラメータのところで「INJection Channels」の「Community」のところに数値が入った新しいパラメータが出現するはずです。

テクスチャを適用するMATポーズの作り方は「マテリアル関連」の「MAT Poseの作成」の項目を参考にしてください。




