Quartz Composerにどっぷり!
もっとCubeがいっぱい

今回のテーマ

今回のテーマは、リプリケートです。リプリケートを使ってCubeを画面にいっぱい描画します。

推奨環境 この解説は、以下の環境を前提に作成し、動作確認等を行っています。ご確認ください。

改版履歴

リプリケートって?

以前 Iterator を使って Cube を沢山描画する方法を解説しました。Iterator は、処理の繰り返しを行うためのパッチですので、図形を沢山繰り返し描くだけでなく、オーディオメータのようなものにも応用が可能でした。今回扱う Replicate in Space パッチは、図形を立体空間に沢山繰り返し描くための専用のパッチで、グラフィック用の設定が用意されているため使いやすく派手なところが特徴です。

Replicate in Space パッチもマクロパッチで、自分の中にある子供の描画を繰り返し行います。設定項目は沢山ありますが、基本的には、ちょっとずつ座標を動かしたり、ちょっとずつ回転させたりしながら、繰り返し描画をしていきます。設定項目が多いので、図を用いながら解説をしていきます。

設定項目もいっぱい

Replicate in Space をダブルクリックして中に Cube パッチを1つ置きます。Width, Height, Depth はすべて 0.2 にしておきます。これは沢山の Cube を描くためです。3つの軸が表示されていますが、これは理解をしやすくするために置いているCubeです。

Copies = 3 として、描画回数を 3 回にします。そして、 Final Translation X = 1 にします。Final Translation X は、最初の位置から移動して最終的に X 軸の方向にどれだけ移動するかを指定するものです ( Final Translation Y / Z も同様です )。

次に、Origin Z = 0.4 に変えます。Origin Z は、繰り返しの描画を始める前に Z 軸方向にどれだけ移動しておくかを指定するものです ( Origin X / Y も同様です )。Z 軸方向に 0.4 移動してから、X 軸方向に 1 移動しながら 3 回描画しているのがわかります。

さらに Final Orientation Y = 60 に変えます。Final Orientation Y は、描画している物体を Y 軸を中心にどれだけ回転させるかを指定するものです ( Final Orientation X / Z も同様です )。移動しながら、Y 軸を中心に Cube が回転しているのがわかります。

Final Orientation Y = 0 に戻してから、Final Rotation Y = 90 に変えます。これも Y 軸の周りの回転なのですが、空間全体が回転します。ですので、Cube は、Y 軸の周りを回るように描画されます。

Final Scale = 2 に変えます。これは、物体の大きさを最終的にどれくらい拡大するかの比率を指定するものです。2 とした場合は、2 倍の大きさになります。

さて、最後にあわせ技です。Copies = 60 と描画回数を増やし、Origin Z = 0.2 で最初の位置をちょっと原点から離して、 Final Translation Y = 0.8 で Y 軸方向に移動しつつ、Final Rotation Y = 720 で空間全体を 2 回転させています。数字をちょっと変えるだけで急に派手な絵になります。

これでそれぞれの設定の意味が分かったと思います。後は、これに Interpolation とか LFO を使って、ぐるぐるアニメーションを作ってみましょう。

サンプル
Quartz Composerのファイル

再生には QuickTime 7.0 以降が必要です
リプリケートの中のリプリケート

Replicate in Space パッチの中に、Replicate in Space を入れると、さらに派手派手な描画になります。ここまで来ると、何が起こるかはやってみてのお楽しみかもしれません。

サンプル
Quartz Composerのファイル

再生には QuickTime 7.0 以降が必要です
霧を使って遠近感を出す

沢山の物体を描画しているときにより遠近感をだすために霧の効果を使ってみましょう。Fog パッチを使うと霧の効果を作り出すことが出来ます。遠くにあるものが霧によってかすむようになります。Fog パッチは、Lighting パッチと同様にサブパッチに対してのみ効果を適用します。ですので、Fog パッチを作ってダブルクリックで中に入り、その中に霧に包まれたいパッチを配置していくことになります。

Fog パッチの中に沢山の Cube を描いてどのように霧の効果が出るのかを試してみましょう。Replicate パッチを 2 階層ネストして X 軸方向と Z 軸方向に Cube を複製します。効果を確認しやすくするために、Trackball パッチも置いておきましょう。つまり、階層構造としては、Fog - Trackball - Replicate - Replicate - Cube という風になります。

Fog パッチのデフォルト状態では以下のようになります。

ちょっと効果が薄いので Type を Linear から Exponential にしてみましょう。こちらの方が霧の効果が強くなります。さらに、Exponential Density で霧の濃さを 0.3 まで上げてみます ( Exponential Density は、Type が Exponential と Exponential2 のときのみ有効です )。すると、以下のようになります。

さて、先程「霧の効果を作り出す」と書きましたが、もともと何もないところには変化はありませんよね。何もないところに霧が描かれるわけではなく、何か図形を描画する際に描画する図形に Fog パッチに指定されている Color の色を距離に応じてをかぶせて描画するというのが表現としては正確なところでしょう。ですので、Fog の色と同じ色を Clear パッチを使って背景を塗っておくのが一般的な使い方になると思います。

ちょっと注意したいのは、霧が一番薄くなるのは Z = 0.0 のところで、それよりも手前のものは霧が濃くなってしまいます。ちょっと困った仕様ですが、Z がプラスになる場所に描画をしないように工夫をする必要があります。

霧の設定

霧の設定の主なものを見ていきます。Type には、Linear, Exponential, Exponentila 2 の 3 つがあります。Linear は、距離に比例して霧が濃くなっていくものです、Exponential は、より急に霧が急に濃くなります。Exponential 2 は、さらに急です。Color は、霧の色です。黒にすると闇を表現するのにも使えます。

Linear Start と Linear End は、霧の効果が出始める距離と霧の効果が 100% に達する距離の指定になります。Liner を選んだ時のみ有効です。

サンプル
Quartz Composerのファイル
クイックリファレンス