本文整理汇总了C++中ISkeletonAnim::SetLayerPlaybackScale方法的典型用法代码示例。如果您正苦于以下问题:C++ ISkeletonAnim::SetLayerPlaybackScale方法的具体用法?C++ ISkeletonAnim::SetLayerPlaybackScale怎么用?C++ ISkeletonAnim::SetLayerPlaybackScale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISkeletonAnim
的用法示例。
在下文中一共展示了ISkeletonAnim::SetLayerPlaybackScale方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InstallAnimation
bool CActionScope::InstallAnimation(int animID, const CryCharAnimationParams &animParams)
{
ISkeletonAnim *pSkelAnim = m_scopeContext.charInst->GetISkeletonAnim();
const bool startAnimationSuccess = pSkelAnim->StartAnimationById(animID, animParams);
pSkelAnim->SetLayerPlaybackScale(animParams.m_nLayerID, m_speedBias);
pSkelAnim->SetLayerBlendWeight(animParams.m_nLayerID, m_animWeight);
return startAnimationSuccess;
}
示例2: Update
void CActionScope::Update(float timePassed)
{
IAction * const pPlayingAction = GetPlayingAction().get();
if (pPlayingAction)
{
ISkeletonAnim *pSkelAnim = m_scopeContext.charInst ? m_scopeContext.charInst->GetISkeletonAnim() : NULL;
const float newSpeedBias = pPlayingAction->GetSpeedBias();
const float newAnimWeight = pPlayingAction->GetAnimWeight();
if (m_speedBias != newSpeedBias)
{
m_speedBias = newSpeedBias;
if(pSkelAnim)
{
for (uint32 layer=0; layer<m_numLayers; layer++)
{
pSkelAnim->SetLayerPlaybackScale(m_layer+layer, newSpeedBias);
}
}
}
if(m_animWeight != newAnimWeight)
{
m_animWeight = newAnimWeight;
if(pSkelAnim)
{
for (uint32 layer=0; layer<m_numLayers; layer++)
{
pSkelAnim->SetLayerBlendWeight(m_layer+layer, newAnimWeight);
}
}
}
timePassed *= m_speedBias;
m_fragmentTime += timePassed+m_timeIncrement;
}
UpdateSequencers(timePassed);
}