Hi,
I would like to create a manual triggered queue list with some auto running chases in it.
To do so, I've created a random ordered and timed sub-chase that I added in a manually triggered (hold timer to infinite) main-chase, but when adding the (sub)chase in the (main)chase, all the timings (fade-in, fade-out and hold) of the sub-chase seem to be overwritten by the timing of the main-chase.
Is it possible to preserve the timings of the sub-chase some way?
Chase in Chase timers
Hi,
When you define the fade-in and fade-out values 'per step' in a chaser, a sub-chaser will automatically adopt these values from its parent chaser.
If you want to overcome this issue, you can compile the code yourself while removing the *if* block in the functions *stepFadeIn* and *stepFadeOut* in *chaserrunner.cpp*, keeping only the contents of the *else* block:
In engine/src/chaserrunner.cpp
:::c++
uint ChaserRunner::stepFadeIn(int stepIdx) const
{
uint speed = 0;
switch (m_chaser->fadeInMode())
{
case Chaser::Common:
// All steps' fade in speed is dictated by the chaser
speed = m_chaser->fadeInSpeed();
break;
case Chaser::PerStep:
// Each step specifies its own fade in speed
if (stepIdx >= 0 && stepIdx steps().size())
speed = m_chaser->steps().at(stepIdx).fadeIn;
else
speed = Function::defaultSpeed();
break;
default:
case Chaser::Default:
// Don't touch members' fade in speed at all
speed = Function::defaultSpeed();
break;
}
return speed;
}
uint ChaserRunner::stepFadeOut(int stepIdx) const
{
uint speed = 0;
switch (m_chaser->fadeOutMode())
{
case Chaser::Common:
// All steps' fade out speed is dictated by the chaser
speed = m_chaser->fadeOutSpeed();
break;
case Chaser::PerStep:
// Each step specifies its own fade out speed
if (stepIdx >= 0 && stepIdx steps().size())
speed = m_chaser->steps().at(stepIdx).fadeOut;
else
speed = Function::defaultSpeed();
break;
default:
case Chaser::Default:
// Don't touch members' fade out speed at all
speed = Function::defaultSpeed();
break;
}
return speed;
}
When you define the fade-in and fade-out values 'per step' in a chaser, a sub-chaser will automatically adopt these values from its parent chaser.
If you want to overcome this issue, you can compile the code yourself while removing the *if* block in the functions *stepFadeIn* and *stepFadeOut* in *chaserrunner.cpp*, keeping only the contents of the *else* block:
In engine/src/chaserrunner.cpp
:::c++
uint ChaserRunner::stepFadeIn(int stepIdx) const
{
uint speed = 0;
switch (m_chaser->fadeInMode())
{
case Chaser::Common:
// All steps' fade in speed is dictated by the chaser
speed = m_chaser->fadeInSpeed();
break;
case Chaser::PerStep:
// Each step specifies its own fade in speed
if (stepIdx >= 0 && stepIdx steps().size())
speed = m_chaser->steps().at(stepIdx).fadeIn;
else
speed = Function::defaultSpeed();
break;
default:
case Chaser::Default:
// Don't touch members' fade in speed at all
speed = Function::defaultSpeed();
break;
}
return speed;
}
uint ChaserRunner::stepFadeOut(int stepIdx) const
{
uint speed = 0;
switch (m_chaser->fadeOutMode())
{
case Chaser::Common:
// All steps' fade out speed is dictated by the chaser
speed = m_chaser->fadeOutSpeed();
break;
case Chaser::PerStep:
// Each step specifies its own fade out speed
if (stepIdx >= 0 && stepIdx steps().size())
speed = m_chaser->steps().at(stepIdx).fadeOut;
else
speed = Function::defaultSpeed();
break;
default:
case Chaser::Default:
// Don't touch members' fade out speed at all
speed = Function::defaultSpeed();
break;
}
return speed;
}
Hi embee 74,
A simpler way to preserve the timings of a sub-chaser is to put it in a Collection, then add the Collection to the Chaser that is controller by the Queue List.
You can put anything else that's supposed to happen at the same time, such as a Scene, in the Collection.
A simpler way to preserve the timings of a sub-chaser is to put it in a Collection, then add the Collection to the Chaser that is controller by the Queue List.
You can put anything else that's supposed to happen at the same time, such as a Scene, in the Collection.