UE4学习监督——C++人物攻击(一)

这一次开始制作人物的攻击。首先打开之前的HeroDemo,添加一个函数

void Attack();

并在SetPlayerComponent中绑定按键

	PlayerInputComponent->BindAction("Attack", IE_Pressed, this, &AHeroDemo::Att

并在项目管理器中添加该操作。

在这里插入图片描述

之后,创建一个动画蒙太奇用于存放攻击动画。

在这里插入图片描述

选择使用的骨骼体,并将蒙太奇命名为AttackM。

进入界面后,在资源管理器中选择合适的攻击动画并拖拽到蒙太奇中,结果如下。

在这里插入图片描述

点击分段,将default重命名为Attack。这里名称将会在后续代码中使用。

接着打开动画蓝图,从状态机引一根线出来,搜索slot,调用插槽DefaultSlot,再与输出姿势连接。

在这里插入图片描述

然后返回场景界面,选择已经创建的人物,搜索Montage,选用已经制作好的AttackM。下面继续完善代码。

在头文件添加如下代码,创建一个Montage类对象,用于控制蒙太奇动画播放等操作。

UPROPERTY(EditAnywhere, Category = Montage)
		class UAnimMontage* AttackMontage;

下面编写Attack函数的代码。

void AHeroDemo::Attack()
{
	UAnimInstance* AnimInstance = Cast<UAnimInstance>(GetMesh()->GetAnimInstance());
    //为动画蓝图的C++版本 熟练后可自己编写来创建逻辑。
	if (AnimInstance != nullptr)
	{
		if (!AnimInstance->Montage_IsPlaying(AttackMontage))
		{
			AnimInstance->Montage_Play(AttackMontage);
            //播放使用的蒙太奇
			AnimInstance->Montage_JumpToSection(FName("Attack"), AttackMontage);
            //Fname()中的内容为分段时设置的名称Attack。
		}
	}
}

返回编辑器进行编译、运行。点击鼠标左键,成功播放攻击动画。

但是我们会发现攻击时可以跳跃和移动,此时的动作会变得很不协调,我们需要在攻击时禁止移动和跳跃。且攻击方式很单一,在这里一并进行扩展。

且听下回分解。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值