いまさら始めるDSON Importer
2017年02月07日(Tue)
去年何年か振りにPoser界隈をチェックして驚いたのは、G2とかG3とかいう略語がDAZのGenesisの世代を表す言葉になっていたことだ。そりゃあ、イーフロフィギュアは流行ってなかったから仕方ないけど、寂しい話だなあぐらいには思った。さらに驚いたのは、そんなDAZからDAZ Studioでしか使えないはずの、GenesisフィギュアをPoserに読み込むツールが出ていたことだ。
だけどまあ、正直な感想としては「どうでもいいや」だった。
楽しみ方は人それぞれだ。自分なりの妄想世界を作り上げているユーザーにとって、大切なのは脳内にいるキャラであって使っているフィギュアそのものじゃない。イメージにより近くて、それなりに服があって、そこそこ使いやすければなんだっていい。そりゃ脳内で肌色が組んずほぐれずしてることが多いという人なら、関節の破綻の少なさも大事だろうけども。
だから新しい機能が使えますよ、とかツールを駆使すれば簡単にコンバートできますよ、とか言われてもイマイチ響かない。現状維持が一番楽なことに変わりはないからだ。響くとしたら使いたい服、もっと言うと「ウチの子にどうしても着せたい」とまで思わせる服が出た時だろう。しかしカタログを数年分遡って、出た結論は前述の通りだった。
だけど、そんなつむじ曲りのユーザーも振り向く一言がある。
「○○○○さんの新作背景、いいですよね」
ここにStonemasonさんやJack Tomalinさんの名前でも入れれば高確率で振り返る。ふぁんたじースキーならFaveralさんやMerlinさんも急所だ。Neftisさんの髪だって大好きだ。
フィギュアや服に興味がなくても、クオリティの高い小道具や髪はやっぱり魅力なんである。というわけで、今回は画像過多注意。
1. 概念とか
DSON ImporterはDAZ Studio形式のファイルをコンバートするPoserのPythonライブラリだ。ここでいうライブラリは専門用語で、プログラムの塊みたいな意味である。つまりDAZが提供してはいるけどPoserの拡張機能のようなもので、当然Poser側にインストールする。インストールするとPoserのスクリプトメニューに”DSON Support”の文字が現れる。

じゃあコイツで読み込みたいDAZ形式のファイルを探して開いてやればいいんだな、と素直に考えるところだけど、残念ながらちょっと違う。ここがめんどくさいところである。
DAZ StudioでPoserのRuntimeに相当するコンテンツライブラリは、こんな感じになっている。

Runtimeフォルダを丸ごと内包する形で、ジオメトリやモーフ情報はだいたいdataフォルダに、テスクチャはPoserと同じRuntime内のTextureフォルダに、アイテムそのものは適当な分類でごちゃっと配置されている。Photoshopで言えばブラシもシェイプも同じ拡張子で用途ごとにフォルダ分けされているような感じだ。Runtime内のLibrariesフォルダ下にはCharacterやPoseフォルダがあるけど、後方互換のために作られたもので最近のものは入っていない。
DAZ StudioはPoserのRuntimeをPoserランタイムとして登録することができるし、Poserもコンテンツライブラリ内のRuntimeを外部ライブラリとして登録できる。しかしPoser上ではPoser形式のファイルしか表示されないので、そのままでは空のフォルダが存在するだけだ。そこで登場するのがPoserコンパニオンファイルと呼ばれるファイル群である。

めんどくさいので以下コンパチファイルと呼ぶことにする。コンパチファイルはRuntime外のDAZ形式ファイル一つごとに下記の4点セットの形で存在し、Runtime内の適切な位置に保存されている。
- DAZ形式の実体ファイル
- Poser形式のダミーファイル
- DSON Importerを呼び出すPythonスクリプト
- PNG形式のサムネール
まず、Poser形式のファイルとサムネールが存在するので、Poserのライブラリ上でアイテムが表示される。アイテムをダブルクリックするとPoser形式のファイルは内部からPythonスクリプトを読み込む。PythonスクリプトはPoserにインストールされているDSON Importerを実行してDAZ形式の実体ファイルをコンバートさせる。……という仕組みである。Poser形式のファイルはPythonを読み込むだけのダミーだ。まれにマテリアルの記述も入ってるけど。

メンドクサイネ(笑)。
コンバートが実行されたら、DSON Importerはジオメトリファイルを生成して保存する。場所は設定を変更していなければデフォルトランタイム(だいたい共有ユーザー内のPoser 11 Contents)下のDSONフォルダである。Poser上に出現したアイテムは、そのままライブラリに保存すればちゃんと中身を持ったPoser形式のファイルとして保存される。
したがってコンパチファイルが用意されているアイテムは、そのままPoserで読み込むことができる、というわけだ。用意されているかどうかは、DAZの商品ページに書いてある。

こういうアイテムは購入すると「Poser CF」と書かれたファイルが付属している。CFはコンパチファイルの略である。(ホントはCompanion Filesだから間違って覚えないように。)
では用意されていないアイテムは無理なのだろうか。幸いなことにコンパチファイルはDAZ Studio上で作成することができる。ベンダーが予め用意していないアイテムでも、だいたいのものは持ってこれるのだ。マテリアルの再現性は低いけどテクスチャは概ね読み込んでくれるので、素直な造りのアイテムならサクっと組み直せる。
ていうか元々マテリアルに手を入れずにレンダすることなんてまずないから、手間は変わらないよね(※個人の感想です)。
ホントはコンパチファイルがなくても直接DSON Importerを呼び出すDSON Loaderというスクリプトもあるんだけど、ややこしいから忘却する。
2. 準備とか
というわけで、何かDAZ Studio用のアイテムを読み込んでみよう。まずはDSON Importerを用意する。Poser側の対応バージョンは9/Pro2012のSR3以降なんだそうだ。DAZのサイトにログインして、適当なページのフッタから商品ページに飛ぶ。リンクがなかったら検索するといいだろう。

普通にフリーアイテムを買う感じで決済。買ったアイテムはアカウントページのProduct Libraryに一覧がある。なんかベータ版とそうでないのがあるけど、ベータ版の1.1.3.49の方がいいっぽいので自分のOSに合うやつを一応両方落として1.2.0.12でない方をインストールすることにする。

ダウンロードだけの青いボタンと、インストールもやってくれそうな緑のボタンがあるけど、緑のはDAZインストールマネージャーという別のややこしいソフトが必要なので今はパス。Poser 11のディレクトリを認識してくれなかったし。というわけで手動でインストールする。

なんかすごい懐かしい画面。
使用許諾に同意して、インストール場所を自分で選択、アプリケーションフォルダ内のPoserフォルダを指定して先に進む。

たぶん特に問題なくインストールが完了すると思う。一応ちゃんと入ってるか確認してみた。

次にDAZ Studioをインストールする、ための、DAZインストールマネージャーをインストールする。DAZ Studioのインストール自体は手動でもできるけど、さすがに今後のことも考えると入れておいた方がいいだろう。うーん、インストールがゲシュタルト崩壊しそうだ。
サイト内のあちこちにDAZインストールマネージャのインストーラのダウンロードリンクが貼られているので、適当なところから落としてくる。アカウントページの下の方にもあるはず。

これは普通にアプリケーションなので、アプリケーションフォルダにインストールする。32bit版しかないぽいので、Windowsならx86とか書いてあるプログラムファイルフォルダかな。インストールが完了するとソフトを起動するか確認されるので、チェックを入れて終了。続けてDAZインストールマネージャが起動して、DAZのアカウントを尋ねてくるので素直に入力する。

すると自分のアカウントページで使用許諾書(EULA)に同意しろと言ってくるので、ボタンをクリックしてDAZのサイトに飛ぶ。

状況によっては言ってこないこともあるかもしれない。

「同意します」にとチェックを入れて送信。

ようやくDAZインストールマネージャーが起動。このソフトはDAZに接続して、そのアカウントが購入したアイテムの一覧を表示する。ちょっと数が多すぎて心臓に悪いので姑息にボカしておく(笑)。で、まずは右上の歯車アイコンをクリックして設定を確認する。

Downloadsタブでは自分が使うソフト用のアイテムだけ表示するように設定する。PoserとDSONインポーターとDAZ Studio 4.5+とPhothshopと……よくわからなかったら、逆に「確実に使わないもの」だけチェックを外したらいいんじゃないかな。

あと、Installationタブでコンテンツライブラリの場所を指定する。DAZ Studioは基本的にPoserと同様共有ユーザのディレクトリにフォルダを作ろうとする。自分はコンテンツ関係は外付けのHDDに入れてるので、Poser用のランタイムの隣に新しい空のフォルダを作って指定した。同じランタイムをPoser側でも外部ライブラリに登録すれば、どちらからも参照できるという話。
こんな感じにする予定。

ようやくDAZ Studioのインストール。とりあえず右上の検索窓でDAZ Studioとか入れると、商品名に該当の検索ワードが含まれているアイテムが抽出される。ちなみにこの検索条件、ブラウザから変更しようとすると保存するか聞いてくるので、そういう時はNO(保存しない)を選ぶといいと思う。

本体の中から環境に合うものをチェック。Default Resourcesはたぶん基本のシェーダ(マテリアルファイルに相当)なんかが含まれてるんだと思う。シーンビルダーとかいうやつはよくわからないけど軽かったのでとりあえずチェックした。今もって何をするものか調べていない。
Start Queueボタンをクリックすると、データのダウンロードと続けてインストールが始まる。たぶんここで、OSのシステム管理者の権限を尋ねられると思うので、パスワードを入力するなり許可をするなりする。
あと、一応Starter Essentialsをインストールしておいた。

女性フィギュアからチェックが外れてるのが笑いどころ(今気がついた)。
Starter Essentialsにはベースフィギュアといくつかの髪や服が入ってる。GenesisとGenesis 2にはPoserCFと書かれたファイルもある。これがコンパチファイルだ。一通りブツをインストールしたのでDAZ Studioを起動。

するとPostgreSQLの接続が確立できなかった、と言われてしまう。ぽすぐれなんちゃらはデータベース管理システムの一種で、DAZ Studioはこれを利用して、ソフト内からサイトの購入履歴を照会しつつライブラリを表示したりするっぽい。とりあえずインストールマネージャーから該当ファイルを検索してインストール。

今度こそDAZ Studio起動。またDAZアカウントを尋ねてくるので登録しておく。

「パスワードを記憶」と「自動ログイン」のボックスにもチェックを入れておく。ちなみにアカウントを登録しなくてもソフト自体を使う事は可能だ。ただ、たぶん後々めんどくさいと思う。

成功した時より、何故か失敗した時のダイアログをしっかり作りこんで欲しいんだけどね……。

あと、DAZ Studioが強制終了した時にDAZに情報を自動送信するか聞かれる。お好みで。
3. コンパチファイルを作る
これでようやく環境が整った。ぜえぜえ。あとは、肝心の「Poserに持ってきたいアイテム」を入手してインストールしておこう。DSON Imperterを試すだけなら、さっきインストールしたStarter Essentialsにコンパチファイルが付属しているので、次のステップへ。
今回持ってくるのはStonemasonさんのトスカーナ。商品ページで確認した通り、コンパチファイルがないので自分で作る必要がある。
まずは、画面のどこかからライブラリを探す。どこか、というのは今回新規インストールしたにもかかわらず旧バージョンのUIを引き継いでいるらしくて、別のWindows機にインストールした画面と配置が異なっていたからだ。なのでたぶん画面右側にあると思うけど、人によって違うかもしれないので画面を出せない。似たようなタブがアチコチに並んでる中から探して欲しい。

正式名称はContent Library、縦を向いていたり横を向いていたりする。ウィンドウメニューから選択して反応したやつがあったら、たぶんそれだ。
探し出したら、とりあえずPoser Formatsのアイコンを右クリックしてPoserのRuntimeを登録しておく。自分自身の内包するPoser Runtimeも別物として登録しないといけないっぽい。

ついでに元々Poserで使ってるランタイムもいくつか登録したけど、たぶん使うことはないだろう。

で、読み込みたいアイテムをコンテンツライブラリの中からがんばって探す。StonemasonさんのアイテムはProps直下のベンダー名のついたフォルダに商品ごとに分かれてるみたい。
その状態で、コンテンツライブラリのたぶん左上の方にあるオプションメニュー(横線が並んでる小さいアイコン)をクリックして、リストから「Create Poser Companion Files...」を選ぶ。

するとファイル作成の設定ダイアログが表示される。

まずは元ファイルの情報。違うものが選択されてないか一応確認。「全部作る」のラジオボタンは複数に分かれた小道具などのコンパチファイルを作るときに使う。
次に、保存先の情報。Base Pathから登録したランタイムを選択する。あと、ファイル形式はDAZのメタデータを参照して自動認識してくれるらしいけど、イマイチ不安なので自分で指定する。今回のトスカーナは親子関係を持つ複数の小道具で構成された小道具ファイルだ。

保存場所を確認したら実行。これでコンパチファイルが作成できたのでDAZ Studioを終了する。
4. インポートする
Finder上でランタイムを覗いたら、ちゃんと4点セットが作られているのがわかる。

ここで晴れてPoserを起動。まだRuntimeを登録してなかったら、まずライブラリを追加しておく。で、小道具を表示すると、ちゃんと出力先フォルダにアイテムが入ってるのが見える。

いよいよインポートだ。普通にダブルクリックや追加ボタンでロードできるはず。

生成するジオメトリやテクスチャの数が多いと、その分インポートに時間がかかる。たとえばモーフ情報が分かれているフィギュアなんかはエラく待たされる。ひたすら待とう。

やったー出てきたー。

階層エディタで見ると、ちゃんと親子関係も維持できてるみたいだ。早速レンダ……の前に、ここはぐっとこらえて保存しておこう。毎回待たされるのイヤだしね。

ちなみにこうやってインポートされたアイテムは、内部にDSON Importerが閲覧する情報を持っている。その情報があると保存したファイルをロードするたびにDSON Importerが起動して、ゴソゴソと動作する。自分は毎回スクリプトが実行されるのがキモチよくないので、直接小道具ファイル内のカスタムデータ部を削除している。よくわからないならやらない方がいいと思う。

とりあえず水面だけ設定して、無限光1灯にパノラマHDRI。まだ全然手を入れてないからこれからマテリアル見直しだけど、まあまあいい感じかな。ロンドンではたまにジオメトリの生成でポリゴンの裏表が反転したりUVが歪んでることがあったけど、DAZファイルのせいなのかコンバートのエラーなのかは調べてない。StonemasonさんはWavefront OBJ形式のファイルを別に用意してくれてることが多いから、余力があったら差し替えるといいかもしれない。
そんなわけで、慣れたソフトでサクっとレンダリングできる幸せを噛み締めたりなんかして。