[Blender 2.9] 別のオブジェクトに張り付くように変形させるのに便利な、シュリンクラップモディファイアーの機能と使い方のご紹介
この記事は、Blenderの『シュリンクラップモディファイアー』についてです。
『シュリンクラップモディファイアー』を使用すると、オブジェクトを別のオブジェクトの表面に「縮小」出来ます。変更されるオブジェクトの各頂点を、指定されたメッシュの表面上の最も近い位置に移動します(使用可能な方法4つのいずれかを使用)。
メッシュ、ラティス、カーブ、サーフェス、テキストに適用できます。
調べてみたところ、『シュリンクラップモディファイアー』は、服などを作成するのに使われるようです。
ちなみにですが、服を作成する方法は、他にも『クロスシミュレ―ション』の「スプリング縫合」を使用するというものがあります。もしご興味湧かれましたら、下記記事の「[縫合(Sewing)]」という項目をご覧になってみてください。
※2020年9月4日 加筆修正を行いました。
※2020年11月12日 加筆修正を行いました。
目次
まず最初に
『シュリンクラップモディファイアー』を追加したいオブジェクトを選択しておき、[プロパティエディタ]>[モディファイアー]>[モディファイアーを追加]ボタンをクリックすると表示される一覧から、[シュリンクラップ]という項目を選びます。
追加されると↓のように表示されます。
[シュリンクラップ]の詳細設定項目一覧
[ラップ方法(Wrap Method)]
このセレクターでは、変更されたオブジェクトの各頂点について、ターゲットのサーフェス上の最も近い点を決定するために使用されるメソッドを指定します。一部のオプションは、パネルに追加の特定のコントロールを追加します。
ターゲットの頂点数が少ない時に、違いが特に顕著だと思われますので、ざっと比較してみました。
- [最近接表面の点(Nearest Surface Point)] …これを選択した場合、最も近いターゲットの表面にメッシュをシュリンクします。
- [プロジェクト(Project)] …これを選択した場合、選択した軸に沿って頂点が投影ターゲットに接触するまで頂点が投影されます。シュリンクターゲットに接触しない頂点は元の位置に残ります。追加オプションについて、詳しくは後述。
- [最近接頂点(Nearest Vertex)] …これを選択した場合、シュリンクターゲットの最も近い頂点に頂点がスナップされます。また、これを選択した場合に、追加のオプションはありません。この方法では、[スナップモード]の設定をサポートしていません。
- [ターゲットの法線で投影(Target Normal Project)] …これを選択した場合、[最近接表面の点]に似ていますが、大幅に遅くなる代わりに、遥かに滑らかな投影を生成します。最も近い点を見つける代わりに、補間された滑らかな法線が元の頂点の位置に向かって、または元の頂点の位置から離れている最も近い点を検索します。非多様体の境界辺は、法線を全ての垂直方向に放出する無限に近い薄い円柱として特別に処理されます。[フラットシェーディング]と[自動スムーズ]設定を無視します。
ちなみに、[フラットシェーディング]と[自動スムーズ]について、よくご存じない方は、詳しくは下記記事をご覧ください。
また、度々出てきた『法線』というものについても、よくご存じない方は、詳しくは下記記事をご参照ください。
[プロジェクト(Project)]で追加される特殊な設定項目一覧
[制限(Limit)]
この項目は、投影に使用される距離を制限します(“0″で無効)。距離がこの制限より大きい場合、頂点はサーフェスに投影されません。
[細分化レベル(Subdivision Levels)]
この項目により、包み込む計算をする前に、変更されたオブジェクトのジオメトリに(一時的な)カトマル・クラークサブディビジョンが適用されます。
完全に包み込む形の例の方が変化が分かりやすかったので、この項目だけ、違うオブジェクトを使用してご説明します。
モンキーとモンキーを覆う形でUV球を配置し、UV球に『シュリンクラップモディファイアー』を追加し、モンキーを包み込みます。
その状態で、[細分化レベル]の数値を変化させてみますと、実際にメッシュが細分化されているわけではありませんが、徐々に覆われていない部分が少なくなっていっているので、恐らく計算の精度を上げるための項目なのだと推測します。
[座標軸(Axis)]
変更されたオブジェクトのどのローカル軸に沿って投影が行われるかを選択します。これらのオプションは互いに組み合わせることが出来、投影の「中央軸」を生成します。何も選択されていない場合は法線方向が使用されます。
ちなみに、軸を複数選択することも可能です。
[負(Negative)]、[正方向(Positive)]
この項目により、選択した軸に沿った収縮の許容方向を選択できます。両方のオプションが有効になっている場合、両方の方法が評価され、最も近いヒットが選択されます。
[座標軸]を[Y]のみに固定した場合の例です↓
[面を間引く(Face Cull)]
ターゲットの面の「前面」(または各「背面」)からの投影を防ぐことが出来ます。面の「側面」は、その法線によって決定されます(「正面」は、法線が発生する側)。
memo: 面の前面/背面の確認方法について
単純な面の表裏の方向の確認方法についてご紹介します。
とは言っても、[Overlays]メニューにて、[ジオメトリ]>[面の向き]のチェックボックスにチェックを入れて、有効化するだけです。
有効化すると、面の表が青色、面の裏が赤色で表示されます。
ちなみに、下記記事の「『面の向き』とは?」で操作方法などについても含めて、詳しく書いておりますので、よろしければ合わせてご覧ください。
[非投影面を反転(Invert Cull)]
[面を間引く]が有効で、軸に沿った[負]の方向が許可されている場合、このオプションを使用して、負の方向の前面または背面の設定した選択を反転出来ます。これは、両方向に投影する場合に役立ちます。
[追加のターゲット(Auxiliary Target)]
投影する追加オブジェクト。
設定すると、2つのオブジェクトに投影できるようになります。
[スナップモード(Snap Mode)]
ほとんどの[モード]では、上記の方法で選択したターゲットポイントに頂点を移動する方法を制御する追加設定がサポートされています。一部のものは、[オフセット]が”0″でない場合にのみ異なり、”0″である場合には同じような結果になります。
- [サーフェス上(On Surface)] …頂点は常に移動されます。オフセットは、元の頂点と選択したターゲットポイントを元の位置に接続する投影線に沿って適用されます。
- [内側(Inside)] …頂点が既にターゲット内にある場合、頂点は移動されません。オフセットは、許可されたボリュームを投影線に沿って内側に向かって縮小します。
- [外側(Outside)] …頂点が既にターゲットの外側にある場合、頂点は移動されません。オフセットは、除外ボリュームを投影線に沿って外側に向かって拡張します。
- [サーフェスの外側(Outside Surface)] …[サーフェス上]と似ていますが、オフセットは常にターゲットの外側に向かって適用されます。
- [サーフェスの上(Above Surface)] …[サーフェス上]と似ていますが、オフセットはターゲットのスムーズな法線に沿って適用されます。
[内側]オプションと[外側]オプションは、非常に大まかな衝突検出に使用できます。内側と外側の決定は、ターゲットの法線に基づいて行われます。ターゲットメッシュ内で常に90度と鋭角に近いとは限りません。
[ターゲット(Target)]
収縮するターゲットのメッシュ。
[オフセット(Offset)]
ターゲットから保つ距離。
[頂点グループ(Vertex Group)]
頂点グループは、各頂点がそのターゲット位置に移動するかどうか、および移動する量を制御します。頂点がこのグループに所属していない場合、その頂点は変位しません(ウェイト”0″と同じ)。
『頂点グループ』そのものについて、または基本的な扱い方について等、詳しくは下記記事をご覧ください。
例えば、↓のような頂点グループを用意します。
用意した頂点グループを設定すると、割り当てられているウェイトが”1.0″(赤色)に近い程、ターゲットオブジェクトの近くに張り付く形に変形し、逆に、ウェイトが”0.0″(青色)に近い程、ターゲットオブジェクトから遠くに位置し、あまり元の形状から変形しなくなっています。
ちなみに、[反転([⇔]ボタン)]を有効にすると、頂点グループの影響を反転することが出来ます。
おまけ: 作ってみた物
作り方は↓の動画を参考にさせて頂きました。
- まずは『プロポーショナル編集』を使って、一方をZ軸方向に縮小、もう一方をZ軸方向に拡大したトーラスを用意します。
ちなみに、『プロポーショナル編集』については、下記記事をご覧ください。
- 『キャストモディファイアー』を使って指輪の形に近づけ、『サブディビジョンサーフェスモディファイアー』を使って思いっきり細分化させておきます。
『キャストモディファイアー』、『サブディビジョンサーフェスモディファイアー』について、それぞれ詳しく書いた記事がございますがので、よろしければ合わせてご覧ください。
- カーブオブジェクトを、トーラスより少し半径を余裕を持たせた大きさで配置します。
- 次に、平面オブジェクトを、X軸方向に細長めな菱形になるように編集し、『サブディビジョンサーフェスモディファイアー』を使用して楕円形にします。
- 楕円形の平面を、『カーブモディファイアー』を使って、先程配置したカーブに沿うように変形させます。
『カーブモディファイアー』について、詳しくは下記記事をご覧ください。
- 『シュリンクラップモディファイアー』を使用して、トーラスに貼り付けるように変形させます。
- 『ソリッド化モディファイアー』を使用し、トーラス側に厚み付けして、トーラスを貫通している状態にします。
『ソリッド化モディファイアー』について、詳しくは下記記事をご覧ください。
- トーラスに『ブーリアンモディファイアー』の[差分]を使って、楕円形のオブジェクトで穴を開けます。土台となるトーラスはとりあえずコレで完成です。
『ブーリアンモディファイアー』について、詳しくは下記記事をご覧ください。
- そこまで来たら、一時的に、楕円形の、『カーブモディファイアー』、『シュリンクラップモディファイアー』、『ソリッド化モディファイアー』の効果をビューポート上では非表示にし、平面に戻します。
- 楕円形の平面を型紙として、カーブオブジェクト等で、トーラスの穴開き部分に付ける装飾を作ります。
- 装飾が出来たら、楕円形の平面の一時的に非表示にしていたモディファイアーの効果をまた表示状態にし、装飾の方にも楕円形と同様に、『カーブモディファイアー』と『シュリンクラップモディファイアー』で変形します。この時、『シュリンクラップモディファイアー』の[ターゲット]がトーラスではなく、楕円形の方であることに注意してください。おまけで『サブディビジョンサーフェスモディファイアー』を使って細分化しています。
- ここまでで一応この状態です。
- 後はお好みでダイヤモンドなどを足せば完成です。ちなみに、『カーブモディファイアー』と『配列モディファイアー』を組み合わせてダイヤモンドを配置しました。
参考にさせて頂いたサイト・ページ一覧
- Shrinkwrap Modifier — Blender Manual
- BLENDER MESH DEFORMERS DISTRIBUTORS – YouTube
- Моделирование кольца для печати на 3D принтер – YouTube
- Blender Tutorial I Shrinkwrap Modifier – YouTube
モディファイアー関連の記事のご紹介
この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。
変更
- データ転送
- メッシュキャッシュ
- メッシュ連番キャッシュ
生成
変形
- アーマチュア
- スムーズ
- スムーズ(修正)
- スムーズ(ラプラシアン)
シミュレート
- コリジョン
- ダイナミックペイント