このBlender 4.3で作成されたモデリングチュートリアルでは、Curveオブジェクトによって定義されたパスと長さに沿ってチェーンをモデリングする方法を紹介します。



動画の書き起こし

こんにちは!このBlender 4.3で作成されたモデリングチュートリアルでは、Curveオブジェクトによって定義されたパスと長さに沿ってチェーンをモデリングする方法を紹介します。より一般的には、ここで紹介するテクニックを使えば、任意のパスに沿って自動的に複製されるオブジェクトをモデリングしたりアニメーションさせたりすることができます。

まずはチェーンの最初の要素を作成します。このタイプのオブジェクトを作成する方法はさまざまありますが、ここではTorusを使って始めます。初期状態では頂点数が多すぎるので減らし、リングを回転させて2つのEdge LoopがY軸に沿って並ぶようにします。次に、Loop Cutツールを使って中央のY軸に沿ってさらに2つのEdge Loopを追加し、右半分全体をX軸方向に移動させます。これでチェーンリンクの基本形ができました。Edit Modeのまま、オブジェクトのOriginがオブジェクトの中心になるように、オブジェクト全体をシーンの中心に移動させます。

チュートリアルを進める前に、チェーンリンクを構成するEdge Ringを簡単にリサイズできることを紹介しておきます。Edit ModeでEdge selectモードに切り替えてEdge Ringを選択し、変形の基準をIndividual Originsに設定してから、Select Edge Ringsで全てのEdge Ringを選択し、スケールを調整します。この変形は、チェーンが完成した後でもリンクの見た目を変更するために適用できます。作業が終わったら、念のために変形の基準をMedian Pointに戻しておきます。

次に、シーンにCurveを追加します。Curveオブジェクトにはいくつかの種類がありますが、その一つにPathというものがあります。しかし、Pathは外部の制御点とウェイトシステムで動作するNurbsオブジェクトなので、私はBezier Curveオブジェクトを使用することを好みます。Bezier Curveを適切にスケーリング・回転させ、初期の制御点の一つがリンクのOriginと一致するように配置します。

その後、チェーンリンクを選択してArrayモディファイアを追加します。デフォルトでは、X軸方向に1ユニットずれた複製が作成されます。ただし、新しいコピーが元のオブジェクトと整列していないことにすぐ気づきます。これは、最初にTorusを10度回転させたためであり、この回転がArrayによって作成される新しいオブジェクトにも適用されるからです。この問題を修正するには、CTRL Aを押して、表示されるメニューからRotation and Scaleを選択して回転の変形を適用します。このオブジェクトのスケールはObject Modeでリサイズしていないため均一で、厳密にはScaleを適用する必要はありませんでしたが、問題にはなりません。

2番目のリンクを1番目のリンクの内側に配置するには、Relative OffsetのX軸のFactorの値を下げるだけです。しかし、ここで問題があります。Arrayの設定では回転の値を設定できないため、2番目以降のリンクをここから回転させることはできません。

この問題を解決するには、3つ目のオブジェクトとしてEmptyをシーンに追加し、最初のリンクのOriginと同じ位置に配置します。スケーリングは避けて、問題が起きないようにします。そしてこのEmptyをArrayモディファイアのObject Offsetに割り当てます。次に、このEmptyをX軸周りに90度回転させると、最初のリンク以降の全ての要素がそれぞれ90度ずつ回転されます。このようにして、Relative OffsetとObject Offsetの両方が有効になります。Relative Offsetはリンクのコピーをずらし、Object Offsetはそれらを回転させます。ArrayモディファイアのCountの値を増やせば、X軸に沿ってチェーンが作成されます。

次に、ArrayモディファイアのFit TypeをFixed CountからFit Curveに変更し、もちろんBezier CurveをCurveオブジェクトとして割り当てます。これで、ArrayはCurveオブジェクトの長さに合わせて自動的に十分な数のリンクを生成しますが、それでも直線上に配置され、最初の制御点から最後の制御点までまっすぐ続く形になります。

Arrayによって作成されたコピーをカーブに沿って並べるには、TorusオブジェクトにCurveモディファイアを追加します。モディファイアの順番は重要で、特にCurveモディファイアはArrayモディファイアの後に来る必要があります。それでも、正しい変形軸、つまりX軸を選択していても、結果はまだ正しく見えません。ここで、いくつかの設定を修正してこの挙動を直していきましょう。

まず最初に、CurveオブジェクトのOriginが実際のカーブから外れた位置にあります。正しい結果を得るには、Originをカーブの最初の制御点、つまり最初のチェーンリンクのOriginと一致する位置に置く必要があります。そこで、Edit Modeに入り、最初の制御点を選択してCursor to Selectedツールを使って3Dカーソルをその位置に配置します。次にObject Modeに戻り、Origin to 3D Cursorツールを使ってCurveオブジェクトのOriginをそこに移動させます。

これで少し良くなりましたが、最初のリンクが実際には最後の制御点に配置されていて、そこからチェーンがカーブの外側に向かって続いているのがすぐに分かります。これはカーブの向きに問題があることを示しています。Curveオブジェクトには方向があり、Edit ModeでCurve Edit Mode OverlaysメニューからNormalsの表示を有効にすることで確認できます。

カーブの開始点と終了点を入れ替えて方向を反転するには、Edit Modeでカーブの全要素を選択し、SegmentsメニューのSwitch Directionツールを使用します。ただし、それでも結果は完全には正しくなりません。

最後に修正すべきなのは、カーブの回転です。私は最初にこのカーブをY軸周りに180度回転させて向きを反転させましたが、これが実際の向きに混乱を引き起こしています。この問題を解決するには、CTRL AでApply Rotationを選び、回転の変形を適用します。Curveのスケールが1ではありませんが、今回はスケールを適用しません。スケールを適用すると他のパラメータの調整も必要になるため、ここではそのままにしておく方が良いです。とにかく、これで正しい結果が得られました。

これでCurveオブジェクトを選択してEdit Modeに切り替え、コントロールポイントを移動・回転・押し出しして、そうした変形がチェーンにどのように適用されるかを確認できます。チェーンのリンク数はカーブの長さに応じて自動的に変化し、コントロールポイントを移動または押し出すことで更新されます。

ただし、この結果を得るために使った3つのオブジェクトのうち、1つでも動かすとすべてが壊れてしまいます。Emptyを変形させると、Arrayモディファイアで作成されたすべてのコピーに影響が及び、CurveやTorusを移動させると、2つのオブジェクトの間にずれが生じてCurveモディファイアの結果がおかしくなってしまいます。

この問題を解決する最も簡単な方法は、Curveオブジェクトの最初のコントロールポイント、つまり最初のチェーンリンクをEmptyの位置に再配置し、CurveとTorusの両方をEmptyにペアレントすることです。ペアレントは複数選択で行い、最後に選択されたオブジェクトが他のオブジェクトの親になります。この場合、Emptyを最後に選択する必要があります。

その操作が完了したら、Emptyを移動させてチェーン全体の開始位置を決めるだけです。その後、Bezier Curveを選択してEdit Modeに切り替えることで、チェーンの見た目を編集できます。

チュートリアルを締めくくる前に、ちょっとしたおまけです。Curveをアニメーションさせたい場合は、Hookingというテクニックを使ってコントロールポイントにEmptyをリンクさせることができます。これを行うには、Edit Modeで1つまたは複数のコントロールポイントを選択し、Hook to New Objectツールを使用します。たとえば私は、Curveオブジェクトの最後のコントロールポイントのみに適用しています。新しく作成されたオブジェクトは別のEmptyで、混乱を避けるためにすぐにHook Emptyと名前を変更します。このオブジェクトは他のオブジェクトにペアレントする必要はありません。いずれにしても、この新しいオブジェクトにアニメーションのキーフレームを設定することで、チェーンのアニメーションの様子を確認できます。

ArrayモディファイアのFit TypeがFit Curveに設定されていると、今回のようなアニメーションには適していないかもしれません。なので、代わりにFixed Countを試してみることをおすすめします。ということで、今回のチュートリアルはここまでです!参考になったならうれしいです。また次回お会いしましょう!

チュートリアルを検索

フレーズ、または複数のキーワードをカンマで区切って入力してください。

Francesco Milaneseによる3Dモデル、チュートリアル、コンピューターグラフィックス関連の資料を掲載しています。3Dモデルの使用ライセンスは、各モデルのページに掲載されているリンク先の外部ストアで購入できます。ご利用には、適用されるライセンス条件が適用されます。 Francesco Milanese — イタリアVAT番号:06321250877。お問い合わせ:info@francescomilanese.com


プライバシー及びクッキーの使用に関する拡張情報の通知