Example #1
0
 public CgeLayoutCommon(Action repaintCallback, CgeEditorEffector editorEffector, CgeActivityPreviewQueryAggregator activityPreviewQueryAggregator, CgeMemoryQuery memoryQuery)
 {
     _repaintCallback = repaintCallback;
     _editorEffector  = editorEffector;
     _activityPreviewQueryAggregator = activityPreviewQueryAggregator;
     _memoryQuery = memoryQuery;
 }
        private void OnEnable()
        {
            _editorEffector = new CgeEditorEffector(new CgeEditorState());
            var blendTreeEffector = new CgeBlendTreeEffector();
            var memoization       = Cge.Get().Memoization;
            var renderingCommands = Ee.Get().RenderingCommands;
            var activityPreviewQueryAggregator = new CgeActivityPreviewQueryAggregator(memoization, _editorEffector, blendTreeEffector, renderingCommands);
            var cgeMemoryQuery = new CgeMemoryQuery(memoization);

            _common = new CgeLayoutCommon(Repaint, _editorEffector, activityPreviewQueryAggregator, cgeMemoryQuery);
            var driver = new CgeActivityEditorDriver(_editorEffector);

            _layoutPreventEyesBlinking    = new CgeLayoutPreventEyesBlinking(_common, _editorEffector);
            _layoutFaceExpressionCombiner = new CgeLayoutFaceExpressionCombiner(_common, driver, _editorEffector, renderingCommands, activityPreviewQueryAggregator);
            _layoutOtherOptions           = new CgeLayoutOtherOptions(_common, _editorEffector, activityPreviewQueryAggregator);
            _layoutSetFaceExpressions     = new CgeLayoutSetFaceExpressions(_common, driver, _layoutFaceExpressionCombiner /* FIXME it is not normal to inject the layout here */, _editorEffector, Repaint, blendTreeEffector);
            _layoutManipulateTrees        = new CgeLayoutManipulateTrees(_common, _editorEffector, blendTreeEffector);

            WindowHandler = new CgeWindowHandler(this, _editorEffector);

            _common.GuiInit();
            _helpIcon16 = AssetDatabase.LoadAssetAtPath <Texture>("Assets/Hai/ComboGesture/Icons/help-16.png");

            Ee.Get().Hooks.SetOnMainRenderedListener(rendered =>
            {
                activityPreviewQueryAggregator.OnMainRendered(rendered, Repaint);
            });
        }
Example #3
0
 public CgeActivityEditorCombiner(AnimationClip leftAnim, AnimationClip rightAnim, Action onClipRenderedFn, CgeEditorEffector editorEffector, EeRenderingCommands previewController)
 {
     _leftPreview       = new EeRenderingSample(leftAnim, CgeMemoryQuery.NewPreviewTexture2D(CombinerPreviewWidth, CombinerPreviewHeight), OnClipRendered);
     _rightPreview      = new EeRenderingSample(rightAnim, CgeMemoryQuery.NewPreviewTexture2D(CombinerPreviewWidth, CombinerPreviewHeight), OnClipRendered);
     _combinedPreview   = new EeRenderingSample(new AnimationClip(), CgeMemoryQuery.NewPreviewTexture2D(CombinerPreviewCenterWidth, CombinerPreviewCenterHeight), OnClipRendered);
     _onClipRenderedFn  = onClipRenderedFn;
     _editorEffector    = editorEffector;
     _previewController = previewController;
 }
Example #4
0
        public CgeActivityEditorLipsync(ComboGestureLimitedLipsync limitedLipsync, Action onClipRenderedFn, CgeEditorEffector editorEffector, EeRenderingCommands renderingCommands)
        {
            _limitedLipsync    = limitedLipsync;
            _onClipRenderedFn  = onClipRenderedFn;
            _editorEffector    = editorEffector;
            _renderingCommands = renderingCommands;

            _visemePreviews = Enumerable.Range(0, 15)
                              .Select(i => new EeRenderingSample(
                                          new AnimationClip(),
                                          CgeMemoryQuery.NewPreviewTexture2D(LipsyncPreviewWidth, LipsyncPreviewHeight),
                                          OnClipRendered)
                                      )
                              .ToList();
        }
Example #5
0
        private Dictionary <AnimationClip, Texture2D> GatherAnimations(ProcessMode processMode)
        {
            var enumerable = _editorArbitraryAnimations
                             .Union(_editorEffector.AllDistinctAnimations())
                             .Union(_blendTreeEffector.AllAnimationsOfSelected())
                             .Distinct()
                             .Where(clip => clip != null);

            if (processMode == ProcessMode.CalculateMissing)
            {
                enumerable = enumerable.Where(clip => !_memoization.Has(clip));
            }

            return(new HashSet <AnimationClip>(enumerable.ToList())
                   .ToDictionary(clip => clip, clip => CgeMemoryQuery.NewPreviewTexture2D(_pictureWidth, _pictureHeight)));
        }