[Blender 2.8] シンメトリーなオブジェクトを作るのに便利な、ミラーモディファイアーの機能と使い方のご紹介
今回の記事は、Blenderで左右対称のオブジェクトを作りたい場合に、凄く便利な『ミラーモディファイアー』についてです。
ある程度好きに動かせるようになったかな?と、Blenderのことが分かってきたような気がするのですが、念のため自分の中の知識と照らし合わせつつの確認も兼ねまして、まとめてみます。
誇張ではなく、モデリングするなら、覚えておかないと絶対損する機能だと思います!左右対称のオブジェクトを作成する際には、使うのと使わないのとでは作業の効率化が段違いなのは間違いありません!
個人的に是非とも!Blenderでモデリングするなら基本操作覚えた後すぐに知っておいて欲しい機能です!
埋め込んだツイートは、以前ふんだんに『ミラー』を使って作った作品です。
活動報告!
— ほろほろり (@_horo_horori) September 20, 2019
何、とは今はあえて伏せておきますが作ったものです!#blender pic.twitter.com/agQu51t8yt
※2019年12月10日 加筆修正を行いました。
※2019年12月11日 加筆修正を行いました。
※2020年2月13日 加筆修正を行いました。
※2020年2月16日 加筆修正を行いました。
目次
ちょっと難しい?でも便利!そもそもモディファイアーとは

『ミラーモディファイアー』の紹介の前に、そもそもの『モディファイアー』というものについて、ほんのちょっとご紹介します。
『モディファイアー』とは、各オブジェクト毎に設定して使うもので、使えると一気にやりやすくなる事が増えて効率化が図れる、便利機能の集合体です。
やりたい目的用にそれぞれの機能があり、その種類が豊富です。(私自身全部の機能は把握できてません。全部を一気には覚えられないと思います汗)
個人的にはプログラミングで例えると、
- 各オブジェクト … インスタンス
- モディファイアー … メソッド、または、関数
という感じな関係だと思います。
便利機能がほんとに沢山あるので、他にもご紹介したい機能があったりするのですが、今回はあくまで、『ミラーモディファイアー』に焦点を当てたご紹介をさせていただきます。
虚像にして実体?左右反転複製!ミラーモディファイアーとは

左側半分に[ミラー]を使った複製
人の顔や、葉っぱ、車など、なんでもかんでも左右対称なものであれば、最初に[モディファイアー]>[ミラー]を選択して、メッシュオブジェクトを『半分実体、半分[ミラー]の複製体』にしておくのがオススメです。
『(0, 0, 0)の位置にメッシュを追加 → 編集モードで半分消す → モディファイアーから[ミラー]を選ぶ → [ミラー]で対称の基準にさせたい軸を設定』という流れからモデリングを始めるのが私個人的な定番だったりします。
(私的に)定番な[ミラー]を使ったモデリング導入の流れ紹介
① (0, 0, 0)の位置にメッシュを追加

② 編集モードで半分消す

③ モディファイアから[ミラー]を選ぶ

④ [ミラー]で対称の基準にさせたい軸を設定

これで、強制的に左右対称になってくれるので、一方を編集すればもう片方を編集する手間は省けるし、一方を編集で微調整する必要がないしで、本当に編集がだいぶ楽になります。
今回使うモデルと[ミラー]モディファイアーの準備

まずは比較用に何も設定していないデフォルトの状態。このオブジェクトの基準位置の座標をあらかじめチェックしておいてください。(このオブジェクトの場合、(0, 0, 0)の位置)

[ミラー]の詳細設定項目一覧
- [軸(Axis)] …どの軸を基準とした線対称の複製メッシュを生成するのかを、[X], [Y], [Z]から選んで設定する(複数選択可)。
- [二等分(Bisect)] …[軸]で基準とした軸を二等分線として、メッシュと複製メッシュを表示し、軸に喰い込んだ部分は非表示にするかどうかを、[X], [Y], [Z]から選んで設定する。[軸]で設定されていない方向の軸は設定できない。
- [反転(Flip)] …[二等分線]での表示/非表示を反転させるのかを、[X], [Y], [Z]から選んで設定する。[軸]と[二等分]が共に設定されていない方向の軸は設定できない。
- [ミラーオブジェクト(Mirror Object)] …対称にするための基準の軸を、「他のオブジェクトの基準位置の軸から」に変更する。
- [オプション(Options)]
- [頂点グループ(Vertex Groups)] …頂点グループを作成した場合、ミラー部分と元々の部分で対称に、RとLに分けて設定するかどうか。
- [クリッピング(Clipping)] …軸の基準となる位置から、頂点がミラー側に喰い込まないようにするかどうか。
- [マージ(Merge)] …[結合距離]に入力した距離の分の頂点を結合させるかどうか。
- [結合距離(Merge Limit)] …頂点を結合させる距離を数値で具体的に設定する。[マージ]チェック時に設定可能。
- [テクスチャ(Textures)]
- [U軸反転(Flip U)] …[ミラー]で複製した方のオブジェクトのテクスチャマッピングをU軸方向での反転を行う。
- [V軸反転(Flip V)] …[ミラー]で複製した方のオブジェクトのテクスチャマッピングをV軸方向での反転を行う。
- [U軸のオフセット(U Offset)] …[ミラー]で複製した方のオブジェクトのテクスチャマッピングを、U軸方向にずらす。
- [V軸のオフセット(V Offset)] …[ミラー]で複製した方のオブジェクトのテクスチャマッピングを、V軸方向にずらす。
[軸(Axis)]、[二等分(Bisect)]、[反転(Flip)]
まず目に入る[軸]、[二等分]、[反転]という項目ですが、この項目は、各軸毎にセットになってます。
というのはどういうことかと言うと、
- [軸]で「どの軸を基準とした線対称の複製メッシュを生成するのか」
- [二等分]で、「基準とした軸を二等分線として、メッシュと複製メッシュを表示し、軸に喰い込んだ部分は非表示にするのか」
- [反転]で、「二等分線での表示/非表示を反転させるのか」
というように設定するので、[軸: X]をチェックしてない状態で、[二分化: X]のような事はできません。
とか言葉を並べ立てましたが、実際に3項目の設定を変えて比較した例を見てみた方が一目瞭然で分かりやすいかと思いますので、↓の各軸毎の比較をご覧ください。
※X軸とY軸では、変化を分かりやすくするために、少し基準位置より喰い込ませるような感じな位置に動かしてます。
[軸]はどこか一つにしか設定できないというわけではなく、複数設定出来ます。
それを利用して、例えば、こんなメッシュオブジェクトがあったとして、これに『ミラー』を使うと、こうなります。

- X軸のみ

- X軸とY軸

[ミラーオブジェクト(Mirror Object)]
ミラーオブジェクトは、対称にするための基準の軸を、「他のオブジェクトの基準位置から」に変更することができます。
位置情報だけを持つ『エンプティ』オブジェクトを使って説明してみます。追加した『エンプティ』オブジェクトの、”エンプティ”という名前(ややこしい)を登録するので、覚えておきます。

ミラーモディファイアーを付与しているメッシュオブジェクトを選択し、ミラーモディファイアーの[ミラーオブジェクト]の項目に、”エンプティ”と記入すると、ミラーのZ軸の基準位置が”エンプティ”の位置に変わります。

この[ミラーオブジェクト]の項目の具体的な活用方法としては、例えば人間のモデルが身に着けるリボンなどで頭の片方についている場合。普通に[ミラー]したら左右反転の複製体は、頭の反対の方に付きませんし、オブジェクトに傾きが付いていたりした場合に左右反転の複製の基準軸も傾いてしまうため、思うようにいかなかったりします。
そういった場合に、 今回使った[エンプティ]オブジェクトなどと共に設定すれば、オブジェクトの基準位置や傾きなどを変えずに、[ミラー]の左右反転複製ができます。
[オプション(Options)]
[頂点グループ(Vertex Groups)]
頂点グループをミラー部分と元々の部分で対称に、RとLに分けて設定します。
[頂点グループ]のチェック有無の比較のためのリギングとスキニング
分かりやすくするために(花びらに骨って変な感じかもしれませんが)[アーマチュア]を追加して説明してみます。
ちなみに、『アーマチュア』と『メッシュオブジェクト』を関連付けする作業を『スキニング』というのですが、その工程について書いた過去記事です。よろしければこちらも御覧ください。
[追加]メニュー(ショートカットキー[Shift+A])→[アーマチュア]で、新しい『アーマチュア』を追加して、RとLに枝分かれする形に組みます。

組み終わったらメッシュオブジェクトとボーンをペアレント(親子付け)します。今回は[自動のウェイトで]を選んで、パパッと各頂点にかかる各ボーンへの比重をBlenderに自動的に決めてもらいます。

ペアレントが出来たら、メッシュオブジェクトの方の[オブジェクトデータ]>[頂点グループ]を見ると、各ボーン毎のグループが出来ています。

モードを[編集モード]→[ウェイトペイントモード]に変えて各グループを確認すると、各ボーンへの比重の色分けが出来ているのがわかりやすく確認できるかと思います。




[頂点グループ]のチェック有無による変化比較
長々前準備してしまいましたが(やっと本題に入れる)、ここで、ミラーモディファイアーの[頂点グループ]のチェックを外してみます。

すると、『ミラー』部分と本物の方の『メッシュ』部分で頂点グループが分かれず、一緒くたにRの方に色が塗られているのが確認できるかと思います。


モデルがモデルなので分かりにくいですが、例えば人間のモデルなど、手足の左右で別々に動かしたい動きの扱いをしたい時には、[頂点グループ]のチェックは欠かさずに!


とは言っても、デフォルトで[頂点グループ]のチェックは入った状態のはずですし、弄らないままで特に支障はないはずです。特に何か「操作でチェック入ったままだと出来ない!」ようなことは現状思いつかないので、普段はこの項目に関しては完全にスルーで良いかと思います。
逆に、ボーンがRLで左右に分かれていて、ミラーモディファイアーを使っているメッシュオブジェクトの挙動が
「何故かボーンの左右とメッシュ左右で動きが連動しない!片方に偏る!」
という状況に陥った場合は、この[ミラーモディファイアー]>[オプション: 頂点グループ]にチェックが入っていないかもしれませんので、一度確認してみてください。
[クリッピング(Clipping)]
軸の基準となる位置から、頂点がミラー側に喰い込まないようにします。

人間のモデルで例えば顔とか、中央の境目に万が一にも裂け目を作りたくない部位には、この項目を有効にすると良いと思います。
[マージ(Merge)]、[結合距離(Merge Limit)]
[結合距離]に入力した距離の分の頂点を結合させます。
デフォルトでは[結合距離]は”0.001m”なのですが、ここでは”1m”にしてみました。

これに関してはデフォルトでチェック入ってて、[結合距離: 0.001]という状態から動かさないで良いのではないかと思います…(具体例が思いつかないです)
[テクスチャ(Textures)]
[ミラー]で複製した方のオブジェクトのテクスチャマッピングを、[U軸反転]、[V軸反転]させたり、ずらす事が出来ます。
[テクスチャ]でオフセット変化比較のためのテクスチャ用意
説明のために、テクスチャ用の画像を持ってきて、オブジェクトに貼り付けてみます。
まずは、テクスチャをメッシュオブジェクトに適用するためにUV展開したり、マテリアルのノードを弄ったりするので、エリア分割して、[UVエディター]や[シェーダーエディター]を表示させて、こんな感じに画面を分割します。

メッシュオブジェクトの頂点を全選択した状態で、 [UVマッピングメニュー](ショートカットキー[U])を表示させ、[展開]を選択します。

上手く展開出来たら、UVエディター(先ほどの画面画像で言う右上のエディター)にメッシュオブジェクトの頂点が、平面的に表示されます。

UVエディタの上部でマウスホイールを動かしたら、画像をセットできるこんなマークのところが出てきますので、そこを押して適当な画像を呼び出します。

適当な画像がない時はどこからかフリー素材を借りてくるか、自分で作ってみてください。

私の場合は、以前作ったノーマルマップを引っ張り出してきました。

ちなみに、ノーマルマップを作った時に参考にさせていただいた動画様です↓
[UVエディター]の方で画像をセット出来たら、その後に、[シェーダーエディター]に移ります。
[追加メニュー](ショートカットキー[Shift+A])を出し、[テクスチャ]>[画像テクスチャ]ノードを追加します。

[画像テクスチャ]ノードの左のこの部分を押して、先ほど[UVエディター]で呼び出した画像を選び、ノードこんな風になるようにつなぎます。



マテリアルをメッシュオブジェクトに割り当てすれば、[3Dビューポート]の表示はこんな感じになるはずです。

[テクスチャ]の各値による変化比較
まずは、U軸反転、V軸反転のチェックの有無による変化の比較です。UVどちらの軸反転かによって[ミラー]による複製部分(左半分)の模様が変化します。
- 何もしていない状態

- U軸反転(Flip U)

- V軸反転(Flip V)

- U軸・V軸反転

U軸反転・V軸反転のチェックボックスの下にある数値のバーを動かすと、細かくオフセットの値を決められます。
- 細かくオフセットの数値を調整

まとめ
- 左右対称なモデルを作るなら、まずは[ミラー]モディファイアーを追加する!
- [軸]、[二等分]、[反転]という項目は、各軸毎のセット。線対称にする基準となる[軸: ]を決め、[二等分]と[反転]で表示/非表示させる部分を変更できる。
- [ミラーオブジェクト]は、そのオブジェクトの基準位置や傾きなどを変えずに、[ミラー]の左右反転複製ができる。
- [頂点グループ]は、基本的に完全無視。ただし、ボーンのボーンの左右とメッシュ左右で動きが連動しないで片方に偏る場合は、チェックが外れていないか確認する。
- [クリッピング]は、軸の基準となる中央に裂け目を作りたくないオブジェクトには、この項目を有効にすると良い。
- [マージ]は、基本的に完全無視。
- [テクスチャ]は、[ミラー]モディファイアーで左右反転複製した部分のUVマッピングのオフセットを、[U軸反転]、[V軸反転]させたり、ずらす事が出来る。
あとがき
長い記事にお付き合い下さりありがとうございした。
どうしても、いつもすごくお世話になっている『ミラーモディファイアー』の魅力を、少しでも伝えたい!と思って書いていた結果、記事が中々長くなってしまいました。ここまで読んでくださった方、そうでない方も、長い記事にお付き合い下さりありがとうございした。
この記事をきっかけに、少しでも多くの人にBlenderでのモデリングを始めるきっかけや、またはどなたかの効率の良いモデリングをする一助となれば幸いです。
ご意見やご感想など、よろしければ当サイトのコメント欄やお問い合わせフォーム等からお寄せいただければ幸いです。m(_ _)m
モディファイアー関連の記事のご紹介
この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。
変更
- データ転送
- メッシュキャッシュ
- メッシュ連番キャッシュ