public void SelectCamera(int selectedPreviewCamera) { var dummy = _state.InternalDummyOptional(); if (!dummy.HasValue || selectedPreviewCamera >= dummy.Value.Cameras.Count) { return; } _state.Altered(_previewHandler).CameraSelected(selectedPreviewCamera); }
public void NewClipSelected(AnimationClip activeNonNull) { _state.CurrentClip = activeNonNull; // FIXME _state._editableProperties and animationEditorState._stats will have a content that depends on the currently active dummy!!! // FIXME: not only it depends on the currently active dummy, that dummy must not be animated too. // FIXME: For now, only consider blendshapes with a value of 0. _state.EditableBlendshapes = AnimationUtility.GetCurveBindings(_state.CurrentClip) .Where(binding => binding.type == typeof(SkinnedMeshRenderer) && binding.propertyName.StartsWith("blendShape.")) .Where(binding => AnimationUtility.GetEditorCurve(_state.CurrentClip, binding).keys.All(keyframe => keyframe.value != 0)) .Select(binding => EditableBlendshapeFromActive(_state.CurrentClip, binding)).ToList(); RecalculateStats(); var dummy = _state.InternalDummyOptional(); if (dummy.HasValue) { var fakeController = new UnityEditor.Animations.AnimatorController(); fakeController.name = "Fake Temporary Controller__DoNotModify"; fakeController.AddLayer("Base"); var animatorState = fakeController.layers[0].stateMachine.AddState("recorder"); animatorState.motion = activeNonNull; animatorState.writeDefaultValues = false; dummy.Value.Dummy.runtimeAnimatorController = fakeController; } _previewHandler.GeneratePreviewsFromCurrentClip(); }
public EePreviewHandler(EeRenderingCommands renderingCommands, EeAnimationEditorState state, EeMetadata metadata) { _renderingCommands = renderingCommands; _state = state; _metadata = metadata; _renderingCommands.SetQueueEmptiedAction(() => { if (!_state.Maintain) { return; } var dummy = _state.InternalDummyOptional(); if (!dummy.HasValue) { return; } Maintain(dummy.Value); }); }
internal void SubjectsAreBased(List <string> subjects) { foreach (var based in _metadata.MetadataAsset.AllOnWhat()) { if (!_basedOnSomething.ContainsKey(based)) { _basedOnSomething[based] = NewActualTexture2D(); } } var dummy = _state.InternalDummyOptional(); if (!dummy.HasValue) { return; } GeneratePreviewsFromSubjectNamesAssignments(dummy.Value, subjects); }
public EePreviewAvatar?DummyNullable() { return(_state.InternalDummyOptional()); }