====== 本棚を作る ====== \\ \\ ==== イントロダクション ==== このチュートリアルでは、RailCloneを使用してプロシージャルに家具を作成する方法を紹介します。規則的に繰り返すパターンを持つものや、構造の一部としてモジュール性を持つものは、RailCloneスタイルにうってつけです。プロシージャルに家具を作成することで、シーンに正確にフィットする任意の寸法のモデルを、わずかな労力で生成することができます。下の画像は、このチュートリアルで作成したスタイルを3種類の設定で示しています。 \\ {{youtube>jsWQdUAaydM?large}} \\ このチュートリアルを完了すると、次のことが可能になります * A2Sジェネレータのすべてのセグメント入力を使用する * 修正パネルから簡単に調整できるようにパラメータをエクスポートする * Mirrorオペレータを使用する * 複数のジェネレータを使用する * プロシージャルにシェルフやキャビネットを作成する \\ [[https://www.itoosoft.com/download.php/railclone_tutorial_bookshelf.zip|チュートリアルファイルのダウンロード]] \\ ==== ジオメトリの準備 ==== 本棚のジオメトリは、RailCloneのA2Sジェネレータを使用して簡単に再構築できるように分割されています。スタイルの構築を容易にするために、ピボットはすべてZ軸上に配置されています。 \\ A2Sジェネレータは、境界の要素をターゲットにし、規則的に配置された垂直線と水平線の要素を対象とした行と列のセグメントを作成します。下の画像は、この本棚が個々の繰り返し可能なセグメントにどのように分解されたかを示しています。 \\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_components.png |}} \\ \\ A2S配列のモデリングでは、個々の行の高さがその行の最も高いセグメントによって決定されることを覚えておくことが重要です。高さが不均一なセグメントを使用する場合、配列にギャップが現れる可能性があります。このスタイルのように、不均一な高さのセグメントを使用する必要がある場合は、スタイルをいくつかのジェネレータに分割するのが最も簡単な解決策です。 \\ \\ ==== スタイルを作成する ==== \\ このスタイルをより効率的にするために、外側部分、水平の棚部分、垂直の仕切りの部分3つの異なるジェネレータを作成します。 \\ 時間を節約するために、セグメントは既にスタイルに追加されており、最初のジェネレータが作成されています。すべてのセグメントの **Properties > Alignment > Z**の値が**[Pivot]**に設定されているため、セグメントは正しく整列されます。 \\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_zalignpivot.png |}} \\ ==== ステップ1:外側部分を作成する ==== - シーンから**RailClone001**を選択し、スタイルエディタを開きます。\\ \\ - A2Sジェネレータを選択し、**Properties> Transform> Translation> Y** に値を90を設定します。\\ \\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_segmentsetadaptive2.png |}} {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_segmentsetadaptive2_02.png |}} - 新しい**Spline**オブジェクトを作成し、それをジェネレータの**X Spline**入力に配線します。スプラインノードのプロパティから、シーンの「SPL_shelf」を選択します。\\ \\ - ジェネレータを右クリックし、**Export parameters> Y Size**にチェックを入れOKをクリックします。{{ :itoo:rc:tute:bookshelf_03.png |}} \\ {{ :itoo:rc:tute:bookshelf_01.png |}}\\ **Y Size**入力を新しい**Numeric**パラメーターに接続し「Height」と名前をつけます。 **Properties > Type** を **Scene Units**に設定し、修正パネルのParameterロールアウトから**Value**を**1.7m**に設定します。\\ \\ {{ :itoo:rc:tute:bookshelf_02.png |}}\\ {{ :itoo:rc:tute:bookshelf_04.png |}} \\ \\ - 「Top」セグメントをジェネレータの**Top**入力に接続します。\\ \\ - 「Bottom」セグメントをジェネレータの**Bottom**入力に接続します。\\ \\ - 「Sides」セグメントをジェネレーターの**Start**入力に接続します。\\ \\ - 右側にも同様に追加するには、新しく**Mirror**オペレータ({{:itoo:rc:tute:mirror.png}})を作成して「Sodes」セグメントを接続します。Mirrorオペレータをジェネレータの**End**入力に接続します。 - 「Top Corners」セグメントをStart Top入力に接続します。前の手順と同様に、「Top corners」セグメントを新しくMirrorオペレータを追加し接続して**Start End**入力に接続します。\\ \\ - 「Bottom Corners」セグメントをEnd Top入力に接続します。前の手順と同様に、「Bottom Corners」セグメントを新しくMirrorオペレータを追加し接続して**Bottom End**入力に接続します。\\ \\ - 最後に、本棚に背板を追加する為に「Back 1」という名前のセグメントをDefault入力に接続します。\\ \\ - 外側部分が完成したら、ベーススプラインと高さパラメータを変更して寸法を簡単に制御できます。次のステップでは、調整可能なシェルフを追加します。\\ \\ ステップ2:水平の棚部分を追加する - 既存のジェネレータを選択し、**[CTRL]+[C]**を押してコピーし、 **[CTRL]+[V]**を押してペーストします。X SplineとY Sizeを除くすべての入力を外します。\\ \\ - 新しいジェネレータを右クリックし、**Export Parameters から X Evenly Distance**および**Y Evenly Distance**にいチェックを入れて[OK]をクリックします。\\ {{ :itoo:rc:tute:bookshelf_05.png |}} \\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_exportyxevenly.png |}} \\ \\ - 新しい**Numeric**パラメータをX Evenly Distanceに接続します。「Verticals Width」と名前を付け、**Type**を**Scene Units**に設定し、 ParametersロールアウトからValueに**0.5m**を割り当てます 。\\ \\ - 新しく**Numeric**ノードを作成し「Shelf Height」という名前をつけます。**Type**を**Scene Units**に設定し、これを **Y Evenly Distance**入力に接続し、Valueを**0.35m**に設定します。\\ \\ - 「Shelf」という名前のセグメントを2番目のジェネレーターの**Y Evenly**と**Bottom**の入力に接続します。\\ \\ - 台座部分があることで、底の棚が低くなっています。これを修正するには、「Shelf」セグメントを選択し、 **Properties > Transform > Fixed > Translation > Y**の値を**0.14m**に設定します。\\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_fixedytransform.png |}}\\ \\ - シェルフが完成しましたが、垂直の仕切り部分を収めるためのスペースを空けることができます。これを行うには、**X Evenly** 入力に新しい空のセグメントを追加し、**Left Padding**を0.11mに設定します。シェルフの両側から押し出して同一平面ポリゴンが全く存在しないことを保証するために、同じセグメントを**Left**および**Right**入力に接続します。\\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_set_padding.png |}}\\ \\ \\ これで水平の棚部分ができました。次に別のジェネレータを使用して垂直の仕切りエレメントを追加します。これは、垂直の仕切りエレメントの高さが棚の厚さによって制限されるのを避けるためです。以前のスタイルの一部として作成した場合、セグメント数が大幅に増え、ポリゴン数が増え、シームレスなテクスチャを使用するのが少し難しくなります。 \\ \\ ==== ステップ3:垂直の仕切り部分を作成する ==== - 前の手順で作成したジェネレータをコピーして貼り付け、すべてのSegmentノードの接続を解除します。\\ \\ - 「Upright」セグメントを**X Evenly**入力に接続します。前のステップで開たされた棚のスペースに垂直の仕切りを作成する必要があります。\\ \\ - セグメントが棚の下部分にきちんと接地するように、「Upright」セグメントの**Properties > Transform > Fixed > Translation > Y**の値を **0.162m**に変更します。\\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_upright_translation.png |}}\\ \\ - シェルフとセグメントが上に移動したため、高さが正しくありません。これを修正するには、新しい**Constant**オペレータ({{:itoo:rc:tute:constant.png}})と新しい**Arithmetic**オペレータ({{:itoo:rc:tute:arithmetic.png}})を作成し 、Arithmeticノードの**Operation**を**Subtract**に設定します 。「Height」パラメータと新しい「Constant」パラメータの順にArithmeticノードに接続し、その後、棚と仕切りのジェネレータにArithmeticノードを**Y Size**入力に接続します。\\ \\ - Constantの値を調整することで、外側部分から独立してシェルフの高さを下げることができます。ここでは**0.182m**に設定します。 \\ {{ :itoo:rc:tute:tutorial-creating-parametric-shelving_3colourssmall.jpg |}} \\ 完成したスタイルは、幅と高さのブックシェルフを作成するのに使用でき、シェルフの高さと間隔を簡単に制御できます。他の棚のスタイルや他の家具にも同じ原則を簡単に適用できます。