====== Fin generator ====== {{:fin.jpg?100 |}}The Fin generator attaches meshes to parent branches. Meshes are anchored along the x-axis and are expected to grow in the direction of the y-axis. All vertices along the x-axis are welded to the parent. Use this generator to make fungi, peeling bark, or any other thin geometry protrusions that grow from a branch. ===== Generation ===== The [[generation_properties|Generation properties]] in this group control how many fins are generated and where they are placed. ===== Random Seeds ===== Refer to [[random-seeds-properties|Random seeds properties]]. =====Fins===== The properties in this group control the type, size, and initial placement of the fin nodes. ====Size==== Set the size of the fins relative to the radius of the parent at the point where they are attached. ====Flip==== Flip randomly selected fin nodes over the y-axis. ====Type==== The properties in this group specify the materials and meshes for the fin. Meshes must be assigned to the material on the [[toolmaterialsassetsbar|Material Bar]]. Materials are chosen based on their weights and [[kcseasons|season]] settings. === Material === Specify a named material from the [[toolmaterialsassetsbar|Material Bar]]. If **None** is selected or the chosen material has no assigned mesh, a simple square will be used as placeholder geometry. ===Mesh=== Choose a particular mesh from the material asset or allow it to pick randomly (**Any**), the first mesh on the asset (**Primary**), or any mesh but the first (**Not primary**). === Weight === Set the probability that a node will receive this material index (this weight divided by the sum of all weights). ===== Resolution ===== The properties in this group influence the resolution of the mesh. === Mesh LOD === Set which mesh version (High, Medium, or Low) is used based on the active resolution. It is often desirable to use lower quality meshes at lower resolutions. === Mesh LOD offset === When set to a value other than 0, the mesh currently assigned will go up or down one mesh resolution (High, Medium, or Low). Use this property (especially in conjunction with its parent curve) to adjust mesh resolution throughout the model. **Note:** **Mesh LOD** and **Mesh LOD offset** both require meshes assigned in at least two of the three [[kcmeshes|mesh asset]] LOD slots. =====Orientation===== The properties in this group control how the fins are situated on their parent. ====Style==== This property sets the style of the initial orientation of the fins. ^**Property**^**Description**^ |**Protrusion**|Meshes default to pointing directly away from the parent.| |**Peeling bark (all up)**|Meshes default to pointing straight up the parent branch.| |**Peeling bark (all down)**|Meshes default to pointing straight down the parent branch.| |**Peeling bark (up and down)**|Meshes randomly point up or down the parent branch.| ====Start angle==== Rotate the mesh around its x-axis. Angle direction is adjusted so that positive values move the mesh toward being perpendicular to the parent when peeling bark is the selected **Style**. ====Roll==== Rotate the fin around its y-axis. ===== Deformation ===== The properties in this group alter the shape of the mesh. These properties work best when there are enough vertices in the mesh to reveal the changes. **Note:** Using these properties on low resolution meshes can produce undesirable results. Always have at least one vertex near the center of the mesh for the best results. ====Fold==== Fold both sides of the fin lengthwise along the y-axis of the mesh. A negative value bends down, while a positive value bends up. ====Curl==== Curl the fin around the mesh's x-axis. ==== Vertex ==== The properties in this group perform a noise-based deformation of each vertex in the mesh. === Amount === Control the amount of noise applied to each vertex. === Noise === Control the tightness of the noise pattern. Higher values result in more localized deformations. === Seed === Randomize the noise pattern. ====Scale==== The properties in this group scale the mesh. The scale is performed in each fin's local orientation. ===X=== Scale the mesh by this amount in the x-axis. ===Y=== Scale the mesh by this amount in the y-axis. ===Z=== Scale the mesh by this amount in the z-axis. =====Lighting===== The properties in this group adjust the mesh vertex normals to change the fin's lighting behavior. ====Puffiness==== This value sphere-izes the normals around the center of the mesh, giving the geometry a more puffy appearance. ===Match surface=== Bend the normals so that they match the surface normal of the parent. Use this property to reduce harsh lighting artifacts where the fin meets the parent. Use the profile curve to fade back to the regular normals as the vertices move away from the parent. ===== Wind ===== The property in this group influences how fins are animated in wind simulations. ====Ripple scale==== Scale how much the fin moves 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 disconnections from the parent. **Note:** Fins are treated as leaves in wind simulations. ===== Growth ===== The properties in this group control how the model behaves during animated growth. In general, 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 fin 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 fin's total growth time. For example, ease in and out of the growth animation by using an s-curve. ==== Transitions==== === Size === Control how the size increases over the course of the fin's growth time. === Orientation === Control how much to rotate the fin about its local x-axis at the start of its growth period. The profile curve controls how it transitions to the final orientation. The rightmost point of the profile curve must be at 1.0 to match the model as it appears when growth is disabled. === Curl === Add additional curl to the fin at the start of the growth. The profile curve sets how much of the additional curl is added during the growth cycle of the fin. === Fold === Add additional fold to the fin at the start of the growth. The profile curve sets how much of the additional fold is added during the growth cycle of the fin. ==== Timing ==== === Style === Set the conditions under which the fin starts to grow. **Start %** works according to the option selected here. ^**Property**^**Description**^ |**In place**| The fin starts to grow exactly when the parent is long enough to reach its starting point in the fully grown model. **Start %** has no effect. This style makes the animation appear to trace out the model.| |**Parent**| The growth of this fin is based on the growth of the parent. A **Start %** value of 0.0 means start when the parent starts, 1.0 means start when the parent ends. | |**Parent's start and end**| The growth of this fin starts and stops in synchronization with its parent. **Start %** has no effect.| === Start % === Cause fins to start early (0.0) or late (1.0) according to the **Style** property. === Offset === The start frame is shifted by a constant number of frames (negative means earlier, positive means later). This value is best used to jumble up start times of neighboring fins. **Note:** It is almost never a good idea to go negative with this value (fins can't grow earlier than the structure will allow). A good practice is to have a value of something like 10 and a variance of 10 as well. That way the earliest any fin will start is when it was supposed to, but some will be delayed. ===== Season ===== The properties in this group control how fins transition in the [[kcseasons|seasons]] system. ==== Start offset ==== Fin transitions are determined by looking up season curves based on the position of the season slider. This value provides an offset on that curve lookup. Use variance on this property to randomly shift when neighboring fins begin their transition. ==== Time scale ==== Scale how fast time passes relative to a single fin. Higher values make fins transition faster. ==== Curl ==== Make fins curl as they transition. ==== Fold ==== Make fins fold as they transition. ===== Dynamic LOD ===== The properties in this group control the [[kcgameslod|LOD]] behavior of the fins. ====Weight==== Use this value to increase or decrease the likelihood that fins in this generator will survive the LOD process (vs. decorators in other generators). Use the parent curve to target specific areas of the model. **Note:** Fins are considered decorators in the [[kcgameslod|LOD]] system. ====Mesh Index==== Control which 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. ===== Collision ===== The properties in this group influence how fins in this generator interact with the [[toolcollision|collision]] system. **Note:** Fins are considered leaves in the [[toolcollision|collision]] system. ==== Style ==== Set how the fins behave during collision computations. ^**Property**^**Description**^ |**Everything**| Fins in this generator collide with each other and all other fins.| |**Ignore siblings**| Fins in this generator ignore siblings but collide with everything else.| |**Knock out others only**| Fins in this generator can’t be removed, but they can eliminate fins in other generators.| |**Nothing**|These fins do not participate in collision computations.| ==== Weight ==== When fins and leaves collide, the one with the higher weight wins. Use this property to set the weight. ==== Pivot threshold ==== Set how far away from pivot (as a percentage of size) a collision has to happen in order to count. Use this property to eliminate unwanted removals of fins anchored near each other. ===== Lightmap ===== The property in this group affects the influence fins in this generator have on the [[kcgameslightmap|lightmap]]. **Note:** Not all versions of the Modeler support lightmap UV computation. ====Weight==== Use this property to increase or decrease the importance of this generator's fins in the lightmap -- in relation to the lightmap weight of all other objects -- before lightmap packing is determined. Note 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.