简单说下我的想法,首先是创建了一个用来创建蒙太奇的数组,然后添加一个整数变量让动画每次按下鼠标左键都能按顺序播放,因此,我想要在每个蒙太奇之间插入一个动画,触发条件是没有按下任何一个按键和距离上一次按下鼠标左键几秒后自动触发插入的动画,说人话就是:按“F”键是攻击,想要让连招之间加入一个待机动画。麻烦了。

简单说下我的想法,首先是创建了一个用来创建蒙太奇的数组,然后添加一个整数变量让动画每次按下鼠标左键都能按顺序播放,因此,我想要在每个蒙太奇之间插入一个动画,触发条件是没有按下任何一个按键和距离上一次按下鼠标左键几秒后自动触发插入的动画,说人话就是:按“F”键是攻击,想要让连招之间加入一个待机动画。麻烦了。

以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:
在虚幻引擎(UE)中实现你描述的连招系统和动画蒙太奇,可以通过以下步骤来实现:
首先,你需要在角色蓝图中创建一个数组来存储蒙太奇动画。这可以通过在角色蓝图中添加一个数组变量来完成。
你需要一个整数变量来控制当前播放的动画索引,并在按下鼠标左键时更新这个索引。
+-----------------+
| Mouse Left Click |
+-----------------+
|
v
+-----------------+
| Update Index |
+-----------------+
|
v
+-----------------+
| Play Animation |
+-----------------+
在蒙太奇动画之间自动插入待机动画,可以通过检测按键状态和时间来实现。
+-----------------+
| Tick Event |
+-----------------+
|
v
+-----------------+
| Check Key Press |
+-----------------+
|
v
+-----------------+
| Check Time |
+-----------------+
|
v
+-----------------+
| Play Idle Anim |
+-----------------+
通过按“F”键触发攻击动作,并在攻击动作之间加入待机动画。
+-----------------+
| F Key Press |
+-----------------+
|
v
+-----------------+
| Play Attack Anim|
+-----------------+
|
v
+-----------------+
| Reset Index |
+-----------------+
以下是一些示例代码片段,展示如何在角色蓝图中实现这些功能:
// 更新动画索引
Event Mouse Left Click
{
Self.CurrentAnimationIndex = Self.CurrentAnimationIndex + 1;
Play Animation Montage by Index (Self.ComboAnimations, Self.CurrentAnimationIndex);
}
// Tick 事件
Event Tick
{
bool bIsAnyKeyHeld = false;
if (IsInputKeyHeld("Left Mouse Button") || IsInputKeyHeld("F"))
{
bIsAnyKeyHeld = true;
}
float DeltaTime = GetWorld().GetDeltaSeconds();
float TimeSinceLastClick = GetWorld().GetTimeSeconds() - Self.LastMouseClickTime;
if (!bIsAnyKeyHeld && TimeSinceLastClick > 3.0)
{
Self.IsIdle = true;
Play Animation Montage (Self.IdleAnimation);
}
else
{
Self.IsIdle = false;
}
}
// F 键按下事件
Event Input Action F
{
Play Animation Montage (Self.AttackAnimation);
Self.LastMouseClickTime = GetWorld().GetTimeSeconds();
Self.CurrentAnimationIndex = 0;
}
通过这些步骤和示例代码,你可以实现一个基本的连招系统和动画蒙太奇,其中在连招之间自动插入待机动画。