地に足。
2016年07月08日(Fri)
流転閑語、つづきをこっそりUPしています。

例によって本文はできてるから、整形でき次第UPしていこうかな、という感じです。果たしてどこの誰に需要があるのかもわかりませんが、少なくともやってる本人はそれなりに楽しんでいるので、まあ、いいかなと。
さて、Poser。
画面表示を整えたので、次は起動状態を設定しようかなと。おなじみ「Poserおじさんを消す作業」である。
インストール直後のPoserは、起動するたびに男性フィギュアを表示する。最近はマネキンのアンディ君になったから、Poserおじさんとは言わないんだろうけど。で、このデフォルトで読み込むフィギュアというのは、自分で設定することができる。というか、正確には「起動またはシーンを新規作成した時に、ロードされるシーンファイル」を指定することができる。起動するとおじさんが出てくるのは、「おじさんが一人ロードされている」というシーンを読み込んでいるからだ。
つまり、自分のお気に入りフィギュアやよく使う小道具・ライトセットなどを配置したシーンファイルを指定すれば、新規作成のたびにそれらをロード済みの新規書類を作ることができる。
とはいうものの、大抵の場合は「消すのがめんどくさい」「フィギュア番号が変わっちゃうし」という理由で、何もないシーンファイルを使用することになる。
まずフィギュアを消して、

General Preference(環境設定)で「Document(ドキュメント)」タブを表示、「Launch Behavior(起動ビヘイビア)」欄で「Launch to proffered scene(現在のシーンで起動)」を選択し、その下の「Set Preferred Scene(現在の状態を設定)」ボタンをぽっちり押す。

すると、Poserはその時点のシーンの状態を専用のファイルに記録する。で、起動のたびにそのファイルを参照しにいくわけだ。
自分はもしもの時の為に、この状態のシーンファイルをP*Boot.pz3という名前をつけて別に保存している。なのでハードディスクには歴代のブートファイルが残っている。

さて、ついでだから背景セットも消してしまおうかな(ここからが本題)。
いつからか知らないけど、背景にドームを読み込むのがデフォルトになったらしい。このドームは確かIDL実装された頃に基本小道具に追加された、Hemisphereって名前のやつだった気がする。これはこれで便利なんだけど、必要になったら小道具から読み込んだらいいしー。
ところが、削除しようとして気づく。シーンファイル上に小道具が存在しない。

なんでだろう、とよくよく触ってみるとこのドーム、GROUND(地面)という扱いになっている。今まで地面といえばシャドウキャッチャーが設定された四角い平面だったんだけど、その形状そのものが変更されたらしい。なのでこのドームはCommand+G(Ctrl+G)で表示/非表示を切り替えられたりする。なるほどなるほど、GROUNDのジオメトリ自体に別の任意の形状を指定することができるんだな。相変わらず自由度高いな~……って。
ちょっと待って。今までの地面はどこにいったの!
これまで自分はテストレンダや検証時、面倒を省くためにGROUNDのマテリアルに直接タイル模様を貼り付けたりしていた。それに、フィギュアだけレンダしたい時には、影だけ描画して背景を抜くシャドウキャッチな床はそれなりに手軽だったのだ。
普段から使うかと言われたら微妙だけど、まったく無くなってもらっては困るのである。
まあ、形状自体は簡単なものだから、そういう機能を持った地面小道具を作って、必要になったらドームを非表示にして小道具を読み込めばいいと言えばそれまでではある。しかし、うーん、なんか手間がかかる気がする。
ということで、まず以前のバージョンのシーンファイルから読み込んでこようかな、と保存してたブートファイルをP11で開いてみた。こういう時のための別名保存である。……っと、
ない! 床がない! 右も左もわからない! (><)
シーンファイルをエディタで開いてみると、そもそも以前のバージョンのPoserではGROUNDはジオメトリを読み込んでいるのではなかった。

そういえばそうだった。おそらくはGROUND自体が予約語で、システム内部でそういう形状を読み込んでいたのだろう。それが、今回(?)のバージョンからは他のオブジェクトと同じように、ジオメトリを外部ファイルから読み込む形になった。ということなんじゃないかな。
仕方ないので、どこかに元の地面が存在しないか探してみた。
ライブラリにあるSquare Groundplane HRは違う。なんか大きいし目が細いし。自分はもうあの見慣れた地面に着陸することはできないんだろうか……などと思っていたら、Geometriesフォルダにあった(ちなみに、Macで何も考えずにフルインストールした場合、Runtimeの中身はVolume/Users/Sharedフォルダ下のPoser 11 Contentの中に配置される)。

propsフォルダの中にground.obzとground20x20Lines.obzを発見する。Poserで拡張子の末尾がzのファイルはzipで圧縮したファイルなので、拡張子zipを追加して普通の解凍ソフトで解凍すればテキストファイルになる。objにしてテキストで中身を確認、何が違うのかと思ったら、20Linesの方はどうもY位置が低い。じゃあ使うのはgroud.objの方がいいかな。

というわけでここからは自己責任。
まずVolume/Users/(ユーザ名)/Library/Application Support/Poser Pro(またはPoser)/11/preferredState.pz3を複製する(Windowsの場合の所在地はわからないけど、そんな感じの名前で検索したら見つかると思う)。
複製したシーンファイルをエディタで開き、最初の「prop GROUND」の括弧の中身、読み込むジオメトリの記述部分を書き換える。

このままではパラメータやマテリアルなどの設定が元のドームのままなので、そのへんの情報を二番目の「prop GROUND」を検索して括弧内を書き換える。内容は過去に保存していたBoot.pz3の該当部分をコピー。

この改変したシーンファイルを元のprefferredState.pz3と差し替える。まあPoser上で開いて設定してもよし。で、シーンを新規作成してみよう。

よしよし、ちゃんと差し替わっている。
で、何気にレンダしてみたら……

そもそもSuperflyレンダはシャドウキャッチャーに対応してなかったという(それでかー)。
ここまでやって、「じゃあポーズファイルで両方に切り替えられるようにしたらいいんじゃ?」と思いついたので、折角だからPoseファイルにしてみた。

エレメントの指定がpropだとうまく動かないから、actorに書き換える。さらに、こういうPoseファイルはフィギュアが1体以上シーンに読み込まれていないとうまく機能しないから、適当なフィギュアを読み込んでから適用してみる。そういえばマテリアルコレクションファイル(拡張子: mc6)にすれば確かフィギュアが存在しなくても適用できた気がする。

動くには動いたけど、一度追加されたモーフチャンネルやマテリアルグループは削除されないし、まあ無理にやる必要はないかな、という感じ。
今更かもしれないネタでも、キニシナイ。