Beispiel #1
0
    public void ChangeAnimLength(float newLength)
    {
        //Update the file settings

        guiTimeline.totalValue = newLength;

        List <TagarelaTimelineUI.TLkeyframe> keySet = new List <TagarelaTimelineUI.TLkeyframe>(guiTimeline.keyframeSet);

        keySet.RemoveAll(item => item.value > newLength);


        guiTimeline.keyframeSet = keySet;

        settings = TagarelaFileManager.UpdateSettings(tagarela.smrTotal, guiTimeline.keyframeSet, 0, "", guiTimeline.totalValue);

        //guiTimeline.UpdateSelection();
        guiTimelineSegment.totalValue           = newLength;
        guiTimelineSegment.KeyframeSet[0].Value = 0;
        guiTimelineSegment.KeyframeSet[1].Value = newLength;
        guiTimelineSegment.UpdateSelection();

        settings.animationTime = newLength;

        Repaint();
        tagarela.settings = settings;
        tagarela.BuildTimeline();
        updateTimeline = true;

        Repaint();
        Update();
        playMode = PlayMode.currentTime;
    }
Beispiel #2
0
    public void LoadAnimationFile(TextAsset file)
    {
        RefreshAudiolist();
        tagarela.Clean();
        CleanVars();

        settings = TagarelaFileManager.Load(file);
        lastSelectionGameObjectEditing = Selection.activeGameObject;
        fileName             = file.name;
        guiTimeline          = new TagarelaTimelineUI(settings.animationTime);
        audioPreviewSpectrum = null;
        SelectedAudioclip    = null;
        tagarela.audio.clip  = null;
        tagarela.isPlaying   = false;
        playMode             = PlayMode.stopped;


        if (settings.audioFile != null)
        {
            for (int i = 0; i < tagarela.audioFiles.Count; i++)
            {
                if (settings.audioFile == tagarela.audioFiles[i].name)
                {
                    SelectedAudioclip              = tagarela.audioFiles[i];
                    tagarela.audio.clip            = tagarela.audioFiles[i];
                    audioPreviewSpectrum           = TagarelaAudioSpectrum.CreatePreview(SelectedAudioclip, 1024, 64, new Color(150f / 255f, 200f / 255f, 25f / 255f, 0.8f), TagarelaAudioSpectrum.PreviewType.both);
                    audioPreviewSpectrum.hideFlags = HideFlags.DontSave;
                }
            }
        }

        //  CARREGA O ARQUIVO XML
        //configurações principais

        if (settings.meshList.id != null)
        {
            guiTimeline.keyframeSet = new List <TagarelaTimelineUI.TLkeyframe>();

            for (int i = 0; i < settings.keyframes.values.Length; i++)
            {
                TagarelaMorphTarget _MorphTarget = new TagarelaMorphTarget();
                _MorphTarget.Populate(tagarela.smrTotal);

                for (int j = 0; j < settings.keyframes.sliderSettings[i].Length; j++)
                {
                    float[] sliders = settings.keyframes.sliderSettings[i];

                    if (j < tagarela.smrTotalBlendShapesCount)
                    {
                        //tagarela.morphTargets[j].hideFlags = HideFlags.DontSave;
                        _MorphTarget.sliderValue[j] = sliders[j];
                    }
                }
                guiTimeline.AddKeyframe(settings.keyframes.values[i], _MorphTarget);
            }
        }
        else
        {
            guiTimeline.keyframeSet = new List <TagarelaTimelineUI.TLkeyframe>();
            TagarelaMorphTarget _MorphTarget = new TagarelaMorphTarget();
            _MorphTarget.Populate(tagarela.smrTotal);
            guiTimeline.AddKeyframe(0f, _MorphTarget);
        }

        //Update the file settings
        settings           = TagarelaFileManager.UpdateSettings(tagarela.smrTotal, guiTimeline.keyframeSet, 0, settings.audioFile, guiTimeline.totalValue);
        guiTimelineSegment = new TagarelaTimelineSegmentUI(settings.animationTime);

        tagarela.OpenFile(file);

        timeNormalized       = 0f;
        playMode             = PlayMode.stopped;
        lastKeyframeSelected = -1;

        lastKeyframeSelected = guiTimeline.selectedIndex;
        updateMorphValue     = guiTimeline.selectedValue;

        updateTimeline = true;

        if (settings != null && Selection.objects.Length == 1)
        {
            dialog = ScreenDialog.Timeline;
        }
    }