====== Frond generator ====== {{:frond.jpg?100 |}}The Frond generator creates a mesh that lies along a branch spine. The following sections detail each of the Frond generator's properties. >**Note:** Fronds must be placed on a branch generator to create a mesh. If you don't want to see the branch, set its **Skin:Style** property to **Spine only**. ===== Generation ===== Refer to [[generation_properties|Generation properties]]. ===== Random Seeds ===== Refer to [[random-seeds-properties|Random seeds properties]]. ===== Forces ===== The properties in this group control the behavior of [[kcforces|forces]] on this generator. ==== Align ==== In addition to influencing the frond’s shape, forces can also influence its original orientation. Each force has an **Align** strength in addition to its main strength. This strength causes the original orientation to be affected by the force. >**Note:** Only forces enabled on this generator will influence alignment. === Amount === The alignment strength of each enabled force is multiplied by this amount before being applied. ==== Forces ==== Each [[kcforces|force]] in the scene has an entry here. Check the box next to the name to enable the force for this generator. The value set here is multiplied by the strength of the force before being applied to the branch. The profile curve controls how much force is applied along the branch. >**Note:** Click on the force name to edit the force's properties. ===== Materials ===== The properties in this group control the material assignments and mesh resolution. ==== Frond ==== Applies a [[kcmaterialspbr|material]] to the frond mesh in this generator. Use the button controls to add [+] or remove [-] materials per geometry type. >**Note:** Fronds will use the mesh assigned to the material if it exists. If the material does not have an assigned mesh, a simple ribbon will be generated. === Material === Specify a named material from the [[toolmaterialsassetsbar|Materials Asset Bar]], or use a material set from the [[toolmaterial_sets|Material Sets Bar]]. Materials are chosen based on their weights and [[kcseasons|season]] settings. === Mesh === Use this property to choose a particular mesh from the material asset or allow it to pick a random mesh from the asset (Any), the first mesh on the asset (Primary), or any mesh but the first (Not primary). === Weight === Sets the probability that a node will receive this material index (this weight ÷ the sum of all weights). ====Flip==== When enabled, randomly selected nodes are flipped over the y-axis. ====Two sided==== When enabled, the frond mesh geometry is duplicated for the reverse side. If you are looking to reverse the material and not the geometry, check the two-sided box in the Material Assets Bar instead. >**Note:** Keep in mind that on a two-sided mesh, the frond will have overlapping geometry if wind is enabled. ====Mesh==== === Index === When set to a value other than zero, the mesh currently assigned will go up or down in mesh resolution ("High," "Medium," or "Low" detail on the mesh asset). Use this property (especially in conjunction with its parent curve) to adjust mesh resolution throughout the model. >**Note:** **Index** requires meshes assigned in at least two of the three [[kcmeshes|mesh asset]] LOD slots. === Resolution === This curve sets which mesh version ("High," "Medium" or "Low" detail on the mesh asset) is used based on the active resolution. =====Shape===== The properties in this group control how the mesh is manipulated when computing the frond. ==== Unification ==== This property lets you maximize the number of outward facing frond meshes. Parent spine rotations can often cause the frond mesh to face inward. With unification enabled, the initial orientation of frond meshes will be adjusted so that they face out relative to the selected anchor position. Choose from the following anchor positions: ^ **Property** ^ **Description** ^ | **Global** |The anchor point is located where the node's highest ancestor hits the ground.| | **Deep** |The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.| | **Intermediate** |The anchor point is somewhere in the middle of the node's ancestors.| | **Local** |The anchor point is very near where the node is attached.| | **None** |No anchor point is computed, and no unification is done.| | **Origin** | The anchor point is at the origin of the model. | ====Height==== Displace the frond geometry based on the height map of the assigned material. ===Amount=== Increase or decrease the amount of displacement. ===Offset=== Shift the displacement. ==== Gravity ==== Pulls the edges of both sides of the frond mesh toward the ground. A negative value will pull the edges of the frond up towards the sky. ====Fold==== Folds each side of the frond toward each other (much like folding a piece of paper). ====Curl==== Curls both of the outside mesh edges in towards the spine. ====Roll==== Rotates the mesh around the parent spine. ====Boundary==== The properties in this group control where the frond starts and stops on its parent. ====Start==== Controls where the frond begins on the spine (0.0 corresponds to the beginning; 1.0 corresponds to the end). ====End==== Controls where the frond ends on the spine (0.0 corresponds to the beginning; 1.0 corresponds to the end). ====Left-Right Variance==== The properties in this group control how much the left and right sides of the frond differ in their deformation. ===Amount=== Adding this variance amount causes the two sides of a mesh to react independently to the amount of **Curl**, **Fold**, and **Gravity**. ===Seed=== Vary this value to change how the variance is computed. ====Scale==== The properties in this group scale the width and height of the mesh. The length is always controlled by the parent spine. ===Width=== Scales the width of the mesh. This scale corresponds to the x-axis of the mesh asset. ===Height=== Scales the height of the mesh. This scale corresponds to the z-axis of the mesh asset. ====Section Variance==== Add variance to the shape of individual sections of the mesh. Create sections by painting the mesh in the [[toolcutout_editor|Cutout Editor]]. For more information, refer to [[manipulate-mesh-sections|Manipulate mesh sections]]. ===Favor Outliers=== When applying a range of variance, prefer extreme over median values to create more drastic variation. ===Gravity=== Pull the edges of both sides of the section toward the ground. A negative value pulls the edges towards the sky. ==Amount== Add variance to the gravity applied to the mesh section. ==Offset== Shift the applied variance by a set amount. ===Fold=== Fold each side of the section toward each other (much like folding a piece of paper). ==Amount== Add variance to the fold applied to the mesh section. ==Offset== Shift the applied variance by a set amount. ===Curl=== Curl both of the outside section edges in towards the spine. ==Amount== Add variance to the curl applied to the mesh section. ==Offset== Shift the applied variance by a set amount. ===Roll=== Rotate the section around the parent spine. ==Amount== Add variance to the roll applied to the mesh section. ==Offset== Shift the applied variance by a set amount. ===== Lighting ===== The properties in this group modify the vertex normals to change the lighting behavior of the frond. ====Style==== Choose an approach to edit the vertex normals for this generator. The Lighting group properties differ for each option. ^ **Property** ^ **Description**^ | **Global** | Edit this generator as part of a larger group with [[lighting-leaves-and-fronds|global lighting properties]]. | | **Local** | Edit this generator individually with local lighting properties. | ====Local lighting properties==== ===Alignment=== This value causes the vertex normals to point in the direction of the parent spine's growth. ===Spread=== This value causes the vertex normals to point away from the parent spine. === Smooth === Use this property to compute smooth normals based on the average face normals at each vertex after the deformations have been computed. A value of 0.0 means no smoothing, a value of 1.0 means completely smoothed normals. The other lighting adjustments in this group are applied after smoothing. === Parent Puffiness === ==Amount== Value scale that controls how much the normals on each individual leaf should face “out” depending on the assigned anchor point. A value of 1.0 makes each normal line up with the vector that goes from the anchor through the vertex. ==Anchor== This property picks a spot on one of the node’s ancestors according to the following options: ^**Property**^**Description**^ |**Global**|The anchor point is located where the node's highest ancestor hits the ground. | |**Deep**|The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.| |**Intermediate**|The anchor point is somewhere in the middle of the node's ancestors.| |**Local**|The anchor point is very near where the node is attached.| |**None**|No anchor point is computed, and no parent puffiness is added.| |**Origin**| The anchor point is at the origin of the model. | |**Surface X**|The normals align with the x-axis of the parent where the node attaches.| |**Surface Y**|The normals align with the y-axis of the parent where the node attaches.| |**Surface Z**|The normals align with the z-axis of the parent where the node attaches.| === Adjustments === Make final adjustments to the vertex normals. == Up == Rotate the vertex normals around the local x-axis. == Right == Rotate the vertex normals around the local y-axis. == Out == Rotate the vertex normals around the local z-axis. =====Segments===== The properties in this group control polygonal resolution when no mesh is assigned to the frond material. ====Accuracy==== Sets the number of segments in each rib of the frond infrastructure. Rib spines are computed for each side of the frond at each length segment of the parent spine. The final frond mesh is mapped to these ribs. >**Note:** Changing accuracy may drastically affect the shape of your spines. Set this value to the maximum desired fidelity early to avoid design losses. Higher values result in slower compute times. ====Width==== The properties in this group combine to set the number of width segments. Length segments are controlled by the parent spine. ===Absolute=== The minimum number of segments across the frond. ===+ Relative=== Segments are added to the **Absolute** value based on the length of the parent to arrive at the total number of segments across the frond. >**Note:** You must have vertices running up the center of your frond to avoid deformation artifacts (e.g., the frond separating from the spine). For fronds that don't use a mesh, favor even numbers of segments where possible. ===== Season ===== The properties in this group provide the mechanism by which assigned materials can change with the [[kcseasons|Seasons]] slider. ==== Start offset ==== Determines when the branch will start to transition. The default value of zero means it will start immediately (higher values delay the start, lower values make it start sooner). ==== Time scale ==== Controls how long it will take to complete its transition. The default value of 1.0 means one year. ===== Collision ===== The properties in this group influence how fronds in this generator interact with the [[toolcollision|collision]] system. ==== Style ==== Use this property to set how the fronds behave during collision computations. ^ **Property** ^ **Description** ^ | **Everything** | Fronds in this generator collide with each other and all other leaves.| | **Ignore siblings** | Fronds in this generator ignore siblings but collide with everything else.| | ** Knock out others only** | Fronds in this generator can’t be removed, but they can eliminate leaves in other generators.| | **Nothing** |These fronds don’t participate in collision computations.| ==== Weight ==== When fronds collide, the one with the higher weight wins. Use this property to set the weight. ==== Pivot threshold ==== Sets how far away from the pivot (as a percentage of size) a collision has to happen in order to count. Use this property to eliminate unwanted removals of fronds anchored near each other. ==== Also remove descendants ==== If a frond is eliminated during collision computations, checking this box will ensure that any of its children (and their children and so on) are also eliminated. ===== Wind ===== The properties in this group influence how fronds are animated in wind simulations. There are separate settings for VFX, Games, Legacy UE4/Unity, and Lumberyard. ====Weight==== Use this property to scale how much the nodes move during wind simulations. The amount and frequency of motion are set on the [[fan|Fan]] object. The left-hand side of the profile curve corresponds to the pivot point. The right-hand side corresponds to the vertex farthest away. >**Note:** The left-hand side of the profile curve must be zero to avoid disconnecting from the parent. ====Cross==== Influences the amount of motion as the frond grows from the parent spine to the edge. ==== Boost ==== Adds extra weight to the wind as an absolute value. The left side of the curve corresponds to the base of the frond and the right side corresponds to the tip. ==== Ribs ==== Fronds are constructed along “ribs” growing perpendicular to the parent branch. These properties control the motion of those ribs. === Apply branch wind === Adds wind to the ribs at one level higher than that of the parent branch. For more information about wind levels, see [[windvfx||VFX wind]]. === Weight ==== Control how much wind is added to the ribs. ===== Growth ===== The properties in this group control how the model behaves during animated growth. In general, you create the model in the fully grown state and use these properties to control how it gets there. ==== Speed scale ==== The speed at which a frond will grow is set on the [[tooltimeline|Timeline Bar]]. Use this property to scale that value. The profile curve scales the speed relative to the fronds' total growth time. For example, ease in and out of the growth animation by using an s-curve. ==== Transitions==== === Gravity === Adds additional gravity to the frond at the start of the growth. The profile curve sets how much of the additional gravity is added during the growth cycle of the frond. === Curl === Adds additional curl to the frond at the start of the growth. The profile curve sets how much of the additional curl is added during the growth cycle of the frond. === Fold === Adds additional fold to the frond at the start of the growth. The profile curve sets how much of the additional fold is added during the growth cycle of the frond. === Roll === Adds additional roll to the frond at the start of the growth. The profile curve sets how much of the additional roll is added during the growth cycle of the frond. =====Dynamic LOD===== The properties in this group control the [[kcgameslod|LOD]] behavior of the fronds. ==Weight== Increases or decreases the likelihood that fronds in this generator will survive the LOD process (vs. fronds in other generators). Use the parent curve to target specific areas of the model. ==Mesh== Controls which [[kcmeshes#Mesh LOD|mesh LOD]] (if present) is used for each LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD. >**Note:** **Mesh** requires meshes assigned in at least two of the three [[kcmeshes|mesh asset]] LOD slots. ===== Vertex Color ===== The properties in this group control how vertex colors are computed. >**Note:** **Vertex colors** must be enabled on the [[tree_generator#Compute Flags|Tree]] generator for these properties to work. ====Red==== The properties in this group control how the red component of the color is computed. ===Style=== This property controls how the red portion of the color is computed. ^ **Property** ^ **Description** ^ | **Set** | Sets the color using the **Value** property (parent colors are ignored). | | **Offset from parent** | The **Value** property is added to the vertex color inherited from the parent. | ===Value=== This property adds to, subtracts from, or directly sets this color component. === Cross === Multiply the vertex color along the length of the rib. For example, use the **Linear growth** curve to make colors brighter at the tips. ====Green==== The properties in this group control how the green component of the color is computed. ===Style=== This property controls how the green portion of the color is computed from the following options: ^ **Property** ^ **Description** ^ | **Set** | Sets the color using the **Value** property (parent colors are ignored). | | **Offset from parent** | The **Value** property is added to the vertex color inherited from the parent. | ===Value=== This property adds to, subtracts from, or directly sets this color component. === Cross === Multiply the vertex color along the length of the rib. For example, use the **Linear growth** curve to make colors brighter at the tips. ====Blue==== The properties in this group control how the blue component of the color is computed. ===Style=== This property controls how the blue portion of the color is computed from the following options: ^ **Property** ^ **Description** ^ | **Set** | Sets the color using the **Value** property (parent colors are ignored). | | **Offset from parent** | The **Value** property is added to the vertex color inherited from the parent. | ===Value=== This property adds to, subtracts from, or directly sets this color component. === Cross === Multiply the vertex color along the length of the rib. For example, use the **Linear growth** curve to make colors brighter at the tips. ====Mesh Asset==== The properties in this group control how vertex colors stored in the [[kcmeshes|mesh asset]] are combined with the computed vertex colors. ==Style== This property controls how mesh asset vertex colors are used. ^ **Property** ^ **Description** ^ | **Interpolate** | The **Contribution** value is used to blend from the computed color (0.0) to the color stored in the asset (1.0). | | **Add** | The **Contribution** value is used to scale the mesh asset vertex color and the result is added to the computed vertex color. | ==Contribution== This value sets how much influence the mesh asset vertex color has on the final vertex color. ===== Lightmap ===== Lightmap UVs are computed for several versions of the Modeler designed for use with game engines. Lightmap UVs are a UV set where no objects overlap and all of them fit in a single space where U and V fit in the range [0.0, 1.0]. == Weight == Influences how much space in the lightmap fronds made by this generator can have. Every object's lightmap weight is compared to every other object and then the lightmap packing is determined. This means that your weight value may not be honored exactly or may get so large as to exhibit unexpected results. Use **Tools** > **Reset lightmap scalars** to go back to default values for the whole model.