元記事:
BlenderDev-ArrayModifier - BlenderWiki
Array モディファイア
はじめに
多次元配列のモーションブラーのかかったアニメーション
ideasman氏の提案を元に、私(訳注:
Artificer氏)は、
DanielDunbar氏のモディファイアスタックに適合した、Array モディファイアを実装しました。このモディファイアは、ベース Object のコピーの配列を作成し、それぞれのコピーごとにひとつ前の物とのオフセットを、複数の方法で与えます。
隣接したコピーの Vertex はマージされます(マージの距離(Limits)を元に、SubSurf のフレームを生成できます)。
このモディファイアは、タイルのように並べることのできる Mesh を組み合わせ、大きなシーンをすばやく構築する時に便利です。また、複雑な繰り返しのある形状の作成にもいいでしょう。動的に更新されるので、ベース Object への編集結果がリアルタイムで反映され、非常にスムーズなワークフローを構築できます。
(この原文の項目は Artificer氏 13:44, 1 February 2006 (CET))
現時点の機能
右の図のように、Array モディファイアのインタフェイスは、オフセット計算、長さ計算、Vertex マージの三つのセクションからなります。
オフセット計算
このセクションは、あるコピーから次のコピーへのオフセット計算をコントロールします。ここにはこの計算を行うための三つの別々の成分があり、すべて独立して有効/無効にできます。最終的なオフセットは、これらの個々のオフセットの合計です。 |
|
Array モディファイアインタフェイス
|
- Constant Offset: オフセットに定数成分を加えます。X、Y、Z の定数成分が指定可能です。
- Relative Offset: それぞれの軸に沿って、Object の大きさに倍率を掛けて、オフセットに加算します。X、Y、Z の倍率が指定できます。下の画像がサンプルです。
- Object offset: ある Object からの行列(現在の Object の行列との相対量)をオフセットに加算します。下の画像がそのサンプルです。
長さの計算このセクションでは、配列の長さをどうやって決めるかをコントロールします。ポップアップメニューボタン(Length Calculation メニュー)で3つのうちの一つを選択します。適切なパラメータ入力ができるよう、その選択に従ってボタンが変更されます。
- Fit To Curve Length(カーブの長さに適合):
コピーの数を、与えられた Curve Object の長さに収まるよう計算します。
注意:この Fit To Curve Length は Object を Curve に合わせて曲げてくれたりはしません。単に Curve に沿った長さに適した長さにするだけです。Curve モディファイアを Array モディファイアの後に使用し、自動的に Curve を埋める一つの Object を得るという考えです。これは私のモディファイアスタック改良が一旦完成すれば、適切な動作をするでしょう。
- Fixed Length: 与えられた長さに収まるよう、コピー数を計算します。
- Fixed Count: 与えられたコピー数で生成します。
Vertex マージこのセクションは、Vertex のマージ機能をコントロールします。従来の Mirror モディファイアの方法と似た動作をします。
- Merge Verts: ONであれば、それぞれのコピー内の Vertex は Limit 内にある次のコピーの Vertex とマージされます。
- First to Last: ONであれば、最初のコピー内の Vertex と最後のコピー内の Vertex がマージされます。円状の形状に便利です。下の画像をご覧下さい。
First to Last マージサンプル
SubSurf の切れめが最初と最後のコピーの Vertex をマージしていないことにより発生。(First to Last が OFF)
| |
SubSurf の切れめが最初と最後のコピーの Vertex をマージすることにより消失。(First to Last が ON)
|
- Limit: マージの距離をコントロールします。
将来追加されるであろう機能
マージされた Face の削除SubSurf Mesh の生成には、すべての Vertex がマージされた Face の削除をするオプションがあると便利でしょう。例えば、あるコピーと次のコピーとの境界の Face など。これにより、異質な内部 Face により生じた SubSurf の歪みを防ぎつつ、端を閉じた Mesh を生成できます。
スキニングあるコピーからその次への、対応する Edge の間に Face を生成する能力があれば、このモディファイアを旋盤(回転)もしくはパスにそって Extrude するツールとして使用することができ、非常に便利ではないかと思います。これは Curve Object の BevOb フィールドに似ていますが、Curve Object の代わりに Mesh Object が使用できます。
サンプル画像
橋
並べられる Mesh から橋を作成。
注意: 今のところ、モディファイアスタック中で Curve モディファイアを Array モディファイアの後に配置することはできません。
この橋の画像の場合、Curve を追加する前に Array モディファイアを適用(要は "Apply" ボタンを押下)しました。私は近いうちにモディファイアスタックを改良し、この制約をなくしたいと思っています。
チェーン
歯車
クランクシャフト
フラクタル図形フラクタルなシダの画像。二つの Array モディファイアと、1つの Mirror モディファイアを Cube に適用
有機物
1 Object単位のオフセットの SubSurf した Cube 配列と、4つの Cube。スキニング効果を得るため、高い Vertex のマージ Limit を設定
二つの Array モディファイアと一つの SubSurf モディファイアを Cube に適用し、二つのらせんを作成。上記のように、Vertex マージの閾値を非常に高く設定し、スキニング効果を得ています
サンプル Blend ファイルパッチとサンプルファイル
最新のパッチ
最新のパッチは
Patch Trackerにあります。パッチは bf-blender cvs に、2006年3月1日コミットされました。
サンプルファイル
Dev-ArrayModifier-Chain01.blendDev-ArrayModifier-Cog01.blendDev-ArrayModifier-Cog02.blendDev-ArrayModifier-Crankshaft01.blendDev-ArrayModifier-Fractal01.blendDev-ArrayModifier-Spiral01.blendRetrieved from "http://mediawiki.blender.org/index.php/BlenderDev/ArrayModifier"
This page was last modified 06:01, 11 July 2006
元記事:
BlenderDev-ArrayModifier - BlenderWiki