4.5の新機能として、インスタンスというものがあります。これはオリジナルとなるオブジェクトと全く同じジオメトリとマテリアルを持ったコピーを作成する機能です。同じオブジェクトをもう一つ配置する(区別するためにデュプリケートと呼びます)のと違い、インスタンスはこれらのデータについてオリジナルを参照します。そのため、インスタンスをたくさん配置しても、PCのメモリを圧迫することはないという利点があります。この特性から、インスタンスは地面に木をいっぱい生やしたり、町並みを組み立てたり、群集を並べたりといったことに使われることが多いです。今回はインスタンス活用のとっかかりとしてインスタンスの作り方をご紹介し、そしてデュプリケートとの違いを検証してみたいと思います。■インスタンスの作り方インスタンスを使ってオブジェクトをコピーするのは簡単です。使う上でのコツなどがありますので、一緒に書いていきたいと思います。(1)Sceneタブでコピーしたいオブジェクト(オリジナルと呼びます)を選択します。この時、衣服を着用したフィギュアなど複数のオブジェクトをまとめてコピーしたい場合は、グループノードを作成し、それにペアレントして下さい(グループノードについてはリンク先の記事をご参照下さい)。(3)オプションダイアログが出ますが、そのままAcceptします。(4)原点位置にインスタンスが作成されます。だいたいの場合オリジナルに重なって表示されるので、横に避けて下さい。インスタンス作成時の注意点などは次の通りです。・アンドゥはできません。・インスタンスを作成したノードの子ノードも全てコピーされます(設定で変更可)。フィギュアが持った小道具なども一緒にコピーできるということです。・カメラやライトのインスタンスを作成することはできません。・インスタンス(1ノードのみ)のインスタンスを作成することもできます(意味はなさそう)。・インスタンスを削除しても、レンダリングすると出てしまいます。完全に削除するには、シーンを一度保存して読み込み直して下さい。一度に複数のインスタンスを作成することもできます。(1)Sceneタブでコピーしたいオブジェクト(オリジナル)を選択します。この時、衣服を着用したフィギュアなど複数のオブジェクトをまとめてコピーしたい場合は、グループノードを作成し、それにペアレントして下さい。(3)オプションダイアログが出ますので、作成したいインスタンスの数を入力してOkします。(4)オリジナルを先頭にして、Z-方向へインスタンスの列が並びます。複数のインスタンスを作成する場合、インスタンスは上から見ると次の画像のように並べられます。・インスタンスは隣と重ならない間隔が保たれて配置されます。・一列のインスタンスの数は5・7・7・9・9・11と規則的に決められています。・X座標は小さい範囲でランダムに前後します。・Y座標は0固定です。・Z座標は列ごとに同じです。Box)が基準となるので、フィギュアなどはポーズを取らせた上でインスタンス作成する方が良いです。作成したインスタンスはParametersタブやユニバーサルツールを使って操作することができます。インスタンスそれぞれに独自の変形パラメータを持ちますので、移動させたり、回転させたり、拡大縮小させたりすることができます。※インスタンスのスペキュラが消えていますが、ソフトウェアレンダリングには影響ありません。インスタンス作成後にオリジナルに変更(ポーズ、マテリアルの変更や、パーツの追加など)を加えると、即座にそれがインスタンスに反映されます(ビューポートにマウスカーソルを持って行かないと更新されない場合もあります)。フィギュアのインスタンスにそれぞれ別のポーズをとらせたり、別のマテリアルを適用したりすることはできません。オリジナルの変形パラメータが初期値でなかった場合でも、インスタンスの変形パラメータはリセットされた状態になっています。Childなど)を適用した状態でGenesisノードを選択してインスタンスを作成すると、巨大な(Scale100%の)子供が出現します。特殊なケースとしては、ジオグラフィティングを使ってオリジナルのメッシュを一部置換した場合でも、それがインスタンスに反映されます。ParametersタブでサイドメニューInstancingをクリックすれば、そのインスタンスの設定を表示・編集することができます。どのノードを参照するかを変更する。他のインスタンスを指定することも一応可能。Mode」で指定されたノードのみをコピーする。オフにするとビューポートに表示しない。レンダリングでは描画される。複数のインスタンスをグループ化して1つのノードにまとめるメニューもあります。ある2つのメニューです。兄弟の(同じ親を持つ)インスタンスを1つにグループ化する。インスタンスのグループ化を解除する。Sceneタブが煩雑にならないように表示を簡略化するためにあるメニューかと思われます。■プレビュー表示を軽くするインスタンスをいくつ作成してもメモリ使用量はほとんど増えないのですが、ビューポートのプレビュー表示にはたくさんのオブジェクトが表示されることになりますので、当然のごとくに表示が重くなります。マシンおよびビデオカードのパワーにもよりますが、私の環境では衣服つきのフィギュアを20体もインスタンス作成すれば、マウスカーソルへの反応まで時間差が出ます。表示の重さはポリゴン数に大きく影響されているようです。そこで、たくさんのインスタンスを作成する必要が出た場合に、プレビュー表示を軽くする方法をまとめてみました。(A)インスタンスのプレビューをオフにする。(B)ビューポート操作中の描画スタイルを変更する。(C)ビューポートの描画スタイルを変更する。(A)は先ほどの項であった、Parametersタブでの操作です。オフにしたインスタンスがプレビューでのみ非表示になります。(B)はビューを回転させたりしている最中の表示を切り替えます。Settingsタブで設定できます。Box(スムースシェードの外接直方体)」のどちらかに変更して下さい。どちらでも、操作中インスタンスは非表示になってしまいます。(C)はビューポート自体の描画スタイルを変更してしまいます。ビューポート右上隅の描画スタイルアイコンをクリックするとメニューが出ます。Box」のどちらかでないと重さはほとんど変わりません。こちらもインスタンスは非表示になってしまいます。(D)はGenesisフィギュアなどのSubDのかかったオブジェクトの場合に有効です。Levelを0にしてしまいます。この設定はソフトウェアレンダリングには影響ありませんのでご安心を。インスタンスのみの描画スタイルを変更できればそれが一番良いのですが。■デュプリケートとインスタンスの比較ここではインスタンスがどのくらい有効なのか、デュプリケートと比較してみたいと思います。※DS4.5にはデュプリケートのコマンドがないので、同じものを一つずつ読み込んでいます。検証用に3シーン用意してみました。Suitと、それに加えていろんなシェイプに変形するSupersuitの2種類の全身スーツがセットになっています。その上たくさんのマテリアルプリセットやキャラクタープリセット、シェーダープリセット(53種も)が付属していて、簡単にヒロインやヒーロー、戦闘員などのボディスーツを作れるスグレモノの製品です。Genesisにピッタリフィットするスーツが販売できるのは、Genesisと同じベンダーであるDAZ3Dならではですね。マスクから顔が覗いているので、中にもフィギュア入ってます。Controlのせいだとわかりました)、Supersuitに付属していた直立ポーズのままです。Cityこのシーンでは街の1ブロックをそのままコピーしているので、繰り返しが目立ってしまっています。工夫して90度回転させたり、ビルごとにインスタンスを作って好きに並べれば立派な街並みができあがります。C奥への通路のみをインスタンスで長くしてみました。シャッター込みでインスタンスを作成しているので、それぞれ順番に閉めたりはできません。それぞれのシーンについて、同じオブジェクトを複数配置した場合(デュプリケート)と、インスタンス機能で増やした場合の使用メモリ量(ワーキングRAM)とコピー時の増加メモリ量、レンダリングでの最大使用メモリ量、そしてレンダリング時間を計測しました。64bitで、DS4.5起動時の使用メモリ量は209MBです。3分27秒インスタンスで増加する使用メモリ量は微々たるものです。デュプリケートは増やした分だけ使用メモリ量も増大します。1のフィギュアはやはりポリゴン数がダントツに多いので、デュプリケート時の使用メモリ量がかなり多くなります。レンダリング時の使用メモリ量はレンダリング前からの増加量を考えると、デュプリケートとインスタンスでそんなに差はありません。元の使用メモリ量が多い分、デュプリケートの場合は多くのメモリが必要になります。レンダリング時間はシーン1を除けば、デュプリケートとインスタンスでほぼ同じ時間です。インスタンスとはいえ、光の当たり方や影のでき方は違ってくるので、描画が省略できるわけではないですよね。レンダリング結果にも差はありません。フィギュアのインスタンスについて、今度はV4フィギュアを使ったシーンでも検証してみました。その他の条件はシーン1とほぼ同じです。2分52秒やはりレンダリング時間はそんなに差が出ないようですね。Genesisの場合はかかっているサブディビジョン・サーフェスが影響しているのかもしれません。■インスタンスまとめインスタンスの特性をまとめるとこんな感じでしょうか。(1)アプリケーションの使用メモリ量はほとんど増加しない。(2)プレビューの重さはデュプリケートの場合と変わらない。(3)レンダリング時の使用メモリ量は(1)の分少なくて済む。(4)レンダリング時間はデュプリケートの場合とほとんど変わらない。DS4.5の標準機能ではとりあえずインスタンスで増やす、ということしかできません。複数インスタンスを作成する際の並べ方を変えられたり、凸凹の地形に接地させる機能があれば使いやすくなるでしょう。作成した複数のインスタンスを操作するツールなども欲しいところです。地形オブジェクトを作成し、そこへ小道具を配置する機能を持つInfinitoというプラグインがありますが、インスタンスへの対応はバージョン2.0からになるそうです。*...麗らかなり...*.。