parent
ca5568e94b
commit
71f1403494
3 changed files with 17 additions and 23 deletions
|
@ -9,7 +9,6 @@ namespace cylvester
|
||||||
{
|
{
|
||||||
[SerializeField] private PlayableDirector playableDirector;
|
[SerializeField] private PlayableDirector playableDirector;
|
||||||
[SerializeField] private StateManager stateManager;
|
[SerializeField] private StateManager stateManager;
|
||||||
[SerializeField] private MidiTransitionController transitionController;
|
|
||||||
|
|
||||||
[SerializeField] private float initTransitionTime = 16f;
|
[SerializeField] private float initTransitionTime = 16f;
|
||||||
|
|
||||||
|
@ -23,6 +22,10 @@ namespace cylvester
|
||||||
qlistMarkers_ = new List<QlistMarker>();
|
qlistMarkers_ = new List<QlistMarker>();
|
||||||
foreach (var marker in markers)
|
foreach (var marker in markers)
|
||||||
qlistMarkers_.Add((QlistMarker)marker);
|
qlistMarkers_.Add((QlistMarker)marker);
|
||||||
|
|
||||||
|
playableDirector.Stop();
|
||||||
|
playableDirector.time = 0;
|
||||||
|
playableDirector.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnStateChanged(IStateReader stateManager)
|
public void OnStateChanged(IStateReader stateManager)
|
||||||
|
@ -32,18 +35,9 @@ namespace cylvester
|
||||||
{
|
{
|
||||||
if (qlistMarker.id != stateName) continue;
|
if (qlistMarker.id != stateName) continue;
|
||||||
|
|
||||||
playableDirector.Stop();
|
//playableDirector.Stop(); //This resets speed to 1, so I had to cut it.
|
||||||
playableDirector.time = qlistMarker.time;
|
playableDirector.time = qlistMarker.time;
|
||||||
playableDirector.Play();
|
playableDirector.Play();
|
||||||
|
|
||||||
if (transitionController != null)
|
|
||||||
{
|
|
||||||
playableDirector.playableGraph.GetRootPlayable(0)
|
|
||||||
.SetSpeed(transitionController.TimelinePlaybackSpeed()); //Set Playback Speed of Timeline for CYL transitions
|
|
||||||
}
|
|
||||||
else
|
|
||||||
playableDirector.playableGraph.GetRootPlayable(0)
|
|
||||||
.SetSpeed(initTransitionTime);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,8 +48,11 @@ namespace cylvester
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var nextState = stateManager.NextState.Value;
|
var nextState = stateManager.NextState.Value;
|
||||||
if(notification.id == nextState.Title)
|
if (notification.id == nextState.Title)
|
||||||
|
{
|
||||||
playableDirector.Pause(); // reaches the next state (marker) in timeline
|
playableDirector.Pause(); // reaches the next state (marker) in timeline
|
||||||
|
playableDirector.playableGraph.GetRootPlayable(0).SetSpeed(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,6 +194,7 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
oneBarLoopButton: 86
|
oneBarLoopButton: 86
|
||||||
fourBarLoopButton: 94
|
fourBarLoopButton: 94
|
||||||
|
playableDirector: {fileID: 65620552}
|
||||||
channel: 3
|
channel: 3
|
||||||
stateManager: {fileID: 850208555}
|
stateManager: {fileID: 850208555}
|
||||||
--- !u!114 &65620555
|
--- !u!114 &65620555
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Events;
|
using UnityEngine.Events;
|
||||||
|
using UnityEngine.Timeline;
|
||||||
|
using UnityEngine.Playables;
|
||||||
|
|
||||||
namespace cylvester
|
namespace cylvester
|
||||||
{
|
{
|
||||||
|
@ -7,6 +9,7 @@ namespace cylvester
|
||||||
{
|
{
|
||||||
[SerializeField] private int oneBarLoopButton = 86;
|
[SerializeField] private int oneBarLoopButton = 86;
|
||||||
[SerializeField] private int fourBarLoopButton = 94;
|
[SerializeField] private int fourBarLoopButton = 94;
|
||||||
|
[SerializeField] private PlayableDirector playableDirector;
|
||||||
|
|
||||||
private int oneBarLoop = 96;
|
private int oneBarLoop = 96;
|
||||||
private int fourBarLoop = 384;
|
private int fourBarLoop = 384;
|
||||||
|
@ -18,10 +21,6 @@ namespace cylvester
|
||||||
|
|
||||||
[SerializeField] StateManager stateManager;
|
[SerializeField] StateManager stateManager;
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnSyncReceived(MidiSync midiSync, int counter)
|
public void OnSyncReceived(MidiSync midiSync, int counter)
|
||||||
{
|
{
|
||||||
|
@ -35,11 +34,13 @@ namespace cylvester
|
||||||
if (mes.Data1 == oneBarLoopButton) //Button fourBarLoop
|
if (mes.Data1 == oneBarLoopButton) //Button fourBarLoop
|
||||||
{
|
{
|
||||||
RestTime(fourBarLoop - currentTick % fourBarLoop);
|
RestTime(fourBarLoop - currentTick % fourBarLoop);
|
||||||
|
TimelinePlaybackSpeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mes.Data1 == fourBarLoopButton) //Button oneBarLoop
|
if (mes.Data1 == fourBarLoopButton) //Button oneBarLoop
|
||||||
{
|
{
|
||||||
RestTime(oneBarLoop - currentTick % oneBarLoop);
|
RestTime(oneBarLoop - currentTick % oneBarLoop);
|
||||||
|
TimelinePlaybackSpeed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,16 +50,11 @@ namespace cylvester
|
||||||
restTimeS = restTick / 24.0f / stateManager.CurrentState.Bpm * 60;
|
restTimeS = restTick / 24.0f / stateManager.CurrentState.Bpm * 60;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float TimelinePlaybackSpeed ()
|
public void TimelinePlaybackSpeed ()
|
||||||
{
|
{
|
||||||
float timelinePlaybackSpeed;
|
float timelinePlaybackSpeed;
|
||||||
/* if (restTimeS == 0f)
|
|
||||||
{
|
|
||||||
restTimeS = initTransitionTime; //Initial Transition Time
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
timelinePlaybackSpeed = transitionLength / Mathf.Clamp(restTimeS, 0.001f, transitionLength);
|
timelinePlaybackSpeed = transitionLength / Mathf.Clamp(restTimeS, 0.001f, transitionLength);
|
||||||
return timelinePlaybackSpeed;
|
playableDirector.playableGraph.GetRootPlayable(0).SetSpeed(timelinePlaybackSpeed); //set playbackspeed of Timeline
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue