/// <summary> /// Step 3: Create and configure the selected motions on the character /// </summary> /// <param name="rMotionController"></param> /// <param name="rIsPlayer"></param> protected virtual void CreateMotions(MotionController rMotionController, bool rIsPlayer) { string lProgressTitle = "Configuring Motions (Step 3 of 6)"; float lProgressAmount = 3f / 6f; EditorUtility.DisplayProgressBar(lProgressTitle, "Basic motions", lProgressAmount); if (AddBasicMotions) { MotionSetupHelper.EnsureMotionLayers(rMotionController, mLastLayerIndex); if (rIsPlayer) { BasicMotionPackDefinition.CreateBasicLocomotion(rMotionController, false, MovementStyle); } else { BasicMotionPackDefinition.CreateBasicNPCLocomotion(rMotionController, true); } if (AddInteraction) { BasicMotionPackDefinition.CreateInteractions(rMotionController); } if (AddFullBodyReactions) { BasicMotionPackDefinition.CreateBasicDamagedMotion(rMotionController, true); BasicMotionPackDefinition.CreateBasicDeathMotion(rMotionController, true); } if (AddUtilityMotions) { BasicMotionPackDefinition.CreateUtilityMotions(rMotionController, true); } } if (AddJumpMotions) { BasicMotionPackDefinition.CreateJumpMotions(rMotionController); } if (AddClimbMotions) { BasicMotionPackDefinition.CreateClimbMotions(rMotionController, ClimbLayers); if (rIsPlayer) { BasicMotionPackDefinition.CreateClimbLadderMotion(rMotionController, ClimbLadderLayers); BasicMotionPackDefinition.CreateVaultMotion(rMotionController, VaultLayers, true); } } //if (UseHandPoses) //{ // BasicMotionPackDefinition.CreateBasicHandPoseMotions(rMotionController); //} if (Modules == null) { return; } foreach (var lModule in Modules) { if (lModule.IsValid && lModule is IConfigureMotions) { EditorUtility.DisplayProgressBar(lProgressTitle, lModule.Name, lProgressAmount); ((IConfigureMotions)lModule).ConfigureMotions(); } } }