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

UE4学习监督——C++人物攻击(一),第1张

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

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

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

且听下回分解。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5156240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存