ジャンル雑多なゲーム・ゲーム制作関連の色々な情報を取り扱っているブログ。最近はBlenderについてが中心。
[Blender 2.8] 1つのオブジェクトから何倍もの大量複製 [配列モディファイアー]

[Blender 2.8] 1つのオブジェクトから何倍もの大量複製 [配列モディファイアー]

[Blender 2.8] メッシュオブジェクトを大量複製できる、配列モディファイアーの機能と使い方のご紹介

今回の記事は、Blenderでオブジェクトを複製する方法の中で、一度に大量に作る場合に便利な『配列モディファイアー』についてです。

以前も”複製”という点で似ている 『ミラーモディファイアー』という機能について取り上げました。

ですが、『ミラーモディファイアー』はあくまで左右対称のオブジェクトを作る時に真価を発揮する機能です。シンメトリーを実現するのには向いていますが、反転させたりせず、しかも“大量”のオブジェクト複製には向きません。

ですが、この『配列モディファイアー』は、その“大量”のオブジェクト複製が簡単に実現できるんです!

更に、この『配列モディファイアー』の便利なところは、使い方によっては、複製体を“等間隔”に、“円形状”に配置することもできたりもします!

Blender 配列モディファイアー マージ 等間隔 円状

そういう詳しい使い方も含め、今回は、大量のオブジェクトを一度に”複製”“等間隔”に並べるような方法を、『配列モディファイアー』に備わっている色々な機能についての説明と共に取り上げさせていただきたいと思います。

※2019年12月6日 加筆修正を行いました。
※2019年12月10日 加筆修正を行いました。
※2019年12月11日 加筆修正を行いました。
※2020年1月10日 加筆修正を行いました。
※2020年2月13日 加筆修正を行いました。
※2020年2月16日 加筆修正を行いました。
※2020年11月23日 加筆修正を行いました。
※2020年12月27日 加筆修正を行いました。

目次

Memo: 複数の『モディファイアー』の順序設定

Blender ミラー 配列 Array モディファイアー 3DCG モデリング
モディファイアー一覧

ちなみに、今回も花びらのモデルを使うのですが、花びらのモデルにはあらかじめ『ミラーモディファイアー』も使用されています。

勿論、モディファイアーは、一つのオブジェクトに複数個使用することが可能です。『ミラー』と一緒に『配列』のモディファイアーも共存できるのですが、そのようなモディファイアーが複数個存在する場合、1点気を付けて欲しい事があります

モディファイアーの”優先順位“についてです。

例えば今回は、『ミラー』の後に『配列』を付け足した場合、↑の画像のような感じに表示されます。

恐らくは、違和感なく、思い通りに表示されているかと思わます。

ですが、もし、『配列』と『ミラー』の順番を逆に追加した場合には、違う風に表示されます。

『モディファイアー』は基本的には、追加した順番に優先順位が決定されるので、おそらく想像していたのと違う見た目になったかと思います。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
複数のモディファイアー 優先順位によってオブジェクトの表示が変わる

こういった場合には、『モディファイアー』の優先順位を変更する必要があります。そのための方法もちゃんと用意されてますので、一度全部削除して、また付け直す必要はありません。ご安心ください。

優先順位を変更するには、各『モディファイアー』の右上辺りにあるこの[▲][▼]ボタンで操作できます。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
モディファイアーの優先順位を変更する上下ボタン

[配列]の詳細設定項目一覧

[適合する種類(Fit Type)]

ここで設定した種類によって、複製される個数が決まります。

ただし、[定数で指定]以外の場合、[一定のオフセット]、[オフセット(倍率)]、[オフセット(OBJ)]の値によって、複製される個数が影響を受けます。

[定数で指定(Fixed Count)]

複製体の個数を指定します。

下の入力欄は[数]となります。

このタイプで指定した場合は、オフセットや本体のオブジェクトの形状などによる影響を受けません。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
[適合する種類: 定数で指定]

[長さに合わせる(Fit Length)]

複製体を作成する範囲を指定します。

下の入力欄は[長さ]となり、その範囲内で配置できる限りの複製体が作成されます。

このタイプで指定した場合、オフセットや本体のオブジェクトの形状などによって、作成される複製体の個数が左右されます

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
[適合する種類: 長さに合わせる]

[カーブに合わせる(Fit Curve)]

複製体を作成する範囲をカーブオブジェクトで指定します。

下の入力部分は[カーブ]となります。※カーブオブジェクトは、スカラー値の入力の扱い。

このタイプで指定した場合、オフセットや本体のオブジェクトの形状などによって、作成される複製体の個数が左右されます。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
[適合する種類: カーブに合わせる]

この[カーブに合わせる]を使う場合、『カーブモディファイアー』を併用すると非常に便利で効率的なモデリングをすることが出来ます。

Blender カーブモディファイアー 3DCG モデリング カーブ 城壁
[カーブに合わせる]と『カーブモディファイアー』の併用例

詳しい使い方については、下記記事の「おまけその1: おすすめの使い方」をご覧ください。

オフセット

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
[一定のオフセット]と[オフセット(OBJ]を使った一例

最終的なオフセットは、次の3項目の合計値となるようです。

[一定のオフセット(Constant Offset)]

X, Y, Zにそれぞれ小数点数・整数値で、1つ前の複製体(または本体)の基準位置から、次の複製体までのオフセットを、定数で指定します。

[オフセット(倍率)(Relative Offset)]

X, Y, Zにそれぞれ小数点数・整数値で、 1つ前の複製体(または本体)の基準位置から、次の複製体までのオフセットを、倍率で指定する。そのため、オブジェクトの形状に比例します。

[オフセット(OBJ)(Object Offset)]

3Dビューポート上に存在する他のオブジェクト名で、 1つ前の複製体(または本体)の基準位置から、次の複製体までのオフセットを「本体のオブジェクト→入力したオブジェクト」のベクトルとして指定します。

また、ここで入力したオブジェクトに与えた回転・拡大縮小の値も複製体に反映されます。

(0, 0, 0)あたりに、『エンプティオブジェクト』を用意し、花びらのメッシュに追加している『配列』モディファイアーの [オフセット(OBJ)] の項目に設定しました。

エンプティオブジェクトを回転したり、拡大縮小したら、『配列』モディファイアーで複製したメッシュもそれに比例して、位置や大きさが変更されます。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング スケール
[オフセット(OBJ)]を拡大縮小
Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング 回転
[オフセット(OBJ)]を回転

ちなみに、ただ単純に同一円周上に並べる場合、『Spin』というツールを使った方が断然手軽で簡単です。

『Spin』というツールにつきましては、他の記事で詳しく書かせていただきましたので、その記事を関連記事としてご紹介させていただきます。

マージ

複製体同士で設定した[距離]以内で接している頂点をマージ(結合)します。

マージに関連する項目は以下の3つです。

この内の[ループ]、[距離]は、[マージ]にチェックを入れていない状態では設定することができません。

今回、[マージ]と[ループ]の比較のため、UV球を『配列』で7つ複製したものを、[オフセット(OBJ)]に設定したエンプティオブジェクトを回転させて一周するように配置しました。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング 頂点の結合
マージとループなし

[マージ(Merge)]

0以上の小数点数・整数値で、 [距離]で入力した範囲内の隣接する頂点同士を結合します。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング 頂点の結合
マージのみ

他の部分はマージ(結合)されていますが、オリジナルと最後の複製の境目はマージ(結合)されていません。

[ループ(First Last)]

0以上の小数点数・整数値で、[距離]で入力した範囲内に、最初(本体)と最後の複製体の隣接する頂点がある場合のみ、頂点同士を結合します。

※[マージ]にチェックを入れた上でないと設定できません。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング 頂点の結合
マージとループあり

こちらは、オリジナルと最後の複製の境目もマージ(結合)され、すべての境目が結合されています。

[距離(Distance)]

[マージ]や[ループ]での頂点の結合を実行する距離を指定します。

Memo: [マージ]と[ループ]の違い

[マージ]は、[距離]で入力した範囲に入る次の配列の要素との頂点を結合するため、最初(本体)と最後は直前と直後の関係ではないため、結合されません。

そこで、 最初(本体)と最後を結合するために[ループ]を使うわけです。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング 頂点の結合
マージとループの違い マージは本体と最後の複製がつながっていない

ちなみに、Blenderでの各種『マージ』機能について、別の記事で書かせていただきましたので、よろしければ合わせてご覧ください。

[UV(UVs)]

複製体のテクスチャマッピングに影響を与えます。

  • [U軸のオフセット(U Offset)]
  • [V軸のオフセット(V Offset)]

[U軸のオフセット(U Offset)]

複製体のテクスチャマッピングの、U軸のオフセットを設定できます。

複製の個数のカウント(要素数)が大きくなる程、オフセットの倍率が高くなります。

[V軸のオフセット(V Offset)]

複製体のテクスチャマッピングの、V軸のオフセットを設定できます。

複製の個数のカウント(要素数)が大きくなる程、オフセットの倍率が高くなります。

[U軸のオフセット]、[V軸のオフセット]を使ってテクスチャマッピング

テクスチャを使わなければ変化が良くわからないので、適当なテクスチャを用意し、そのテクスチャを使ったマテリアルを、前項で使ったUV球のオブジェクトに割り当てます。

Blender テクスチャ uvエディター 3DCG モデリング
今回使用したテクスチャ画像

[U軸のオフセット][V軸のオフセット]のそれぞれの値を動かすと、複製の個数のカウント(要素数)が大きくなる程、オフセットの倍率が比例して高くなるようで、バラバラな柄になります。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング uv テクスチャ マッピング
テクスチャマッピングのU軸、V軸オフセット変更

コピーした別オブジェクトを追加

それぞれの入力欄に、入力した別オブジェクトの複製体を、それぞれの位置に配置します。

[始端(Start Cap)]

3Dビューポート上に存在する他のオブジェクト名を入力し、設定されたオフセット分、 本体の前方の位置に、入力したオブジェクトの複製が作られ、配置されます。

[終端(End Cap)]

3Dビューポート上に存在する他のオブジェクト名を入力し、設定されたオフセット分、一番最後の複製体の後方の位置に、入力したオブジェクトの複製が作られ、配置されます。

Blender ミラー Mirror 配列 Array モディファイアー 3DCG モデリング
始端、終端にオブジェクトを追加

UV球の『配列モディファイアー』の[始端]に、花のオブジェクト(花びらを『配列』で複製した物を含め、同じテクスチャを割り当てたオブジェクト)を設定し、[終端]にも同じく花のオブジェクトを設定したものです。

Memo: プログラミングでの『配列』についての小話

大量生産 生産ライン マシーン 工場
配列とは? イメージ

プログラミングの経験がおありの方であれば、ピンとくるかと思われます。

ざっくりと説明すれば、

Q.『配列』とは?

A.「ある一定の規則的なデータを大量に保有している、データの集合体」

と言えます。

言語によって記述の方法に違いがあったりもするのですが、大体、↓のような感じになります。

int a[] = { 3, 5, 11 };

この場合は、整数という形が決まっているデータが沢山入っている訳ですね。こういった形でデータが一か所に纏めて保管されていれば、いざ扱う時に同じような処理をしたい場合、まとめて変化を加えられるので、大量のデータを管理するのに優れています。

同様に、Blenderでの『配列モディファイアー』も、大量に同じ形のオブジェクトを生成、管理するのに向いている複製方法なわけです。

ちなみに、『配列』について触れている以前の記事です。ご興味湧かれた方は合わせてご覧ください!

おまけ

UV球に『配列』モディファイアーを使って複製体をつなげたメッシュオブジェクトに、花のオブジェクト(花びらメッシュに『配列』で複製体を円を描くようにつなげたオブジェクト)を[始端: ][終端: ]に設定し、エンプティオブジェクトを[オフセット(OBJ)]に設定したものを2個用意します。

そして、そのエンプティオブジェクトをただ回転させるという単純なアニメーションとなっております。

参考にさせていただいたサイト・ページ一覧

モディファイアー関連の記事のご紹介

この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。

生成

Blenderに関する記事や作品をまとめたページ作りました!

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください