UE4动作游戏实例RPG Action解析一:角色移动,旋转,动画创建,创建武器,及武器配置

这篇具有很好参考价值的文章主要介绍了UE4动作游戏实例RPG Action解析一:角色移动,旋转,动画创建,创建武器,及武器配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文末有git地址

一、角色移动,摄像机旋转

1.1、官方RPGAction Demo下载地址:

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

1.2、在场景中创建一个空的角色

创建一个Character蓝图和一个PlayerController蓝图,添加弹簧臂组件和摄像机,并为网格体添加上一个骨骼网格体

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

1.3、如何让这个角色出现在场景中,

创建一个GameMode蓝图,把默认Pawn类设置成我们创建的角色,玩家控制器类设置成我们的控制类

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

GameMode、character、playercontroller 具体的含义推荐看:

InsideUE5​www.zhihu.com/column/insideue4​编辑

打开项目设置,设置成我们的GameMode,运行就能看到角色了

1.4、角色移动功能

先绑定输入按键:

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

在PlayerController 写蓝图事件,主要方法 添加移动输入,

前后移动: 目标是受控pawn,WorldDirection方向是获取摄像机的向前向量,ScaleValue是输入MoveForward

左右移动:ScaleValue是输入MoveRight

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

1.5、摄像机旋转

添加Yaw和Pitch输入

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

Unreal是左手坐标系,

Unreal下,Pitch、raw、roll分别定义如下:

(1)X轴正方向为右方,围绕X轴旋转为Pitch,也叫俯仰角。

(2)Y轴正方向为上方,围绕Y轴旋转为Yaw,也叫偏航角。

(3)Z轴负方向为前方,围绕Z轴旋转为Roll,也叫翻滚角。

1.6、角色跟随移动旋转

设置角色CharacterMovement组件

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

二、动画创建:

2.1、创建动画蓝图,创建速度变量,并且获取PlayerCharacter的速度值

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

AnimGraph 创建动画状态机:

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

状态机里设置播放Idle状态:

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

Idle状态根据速度播放 混合空间

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

2.2、动画混合空间创建:

右键 创建 动画 ->混合空间1D,

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

拖动不同的动画,根据速度调节

2.3、在PlayerCharacter里设置动画蓝图

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

三、武器创建

3.1、创建武器蓝图

创建一个Actor的蓝图类作为武器基类,

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

球体碰撞作为根节点,关闭碰撞

添加骨骼网格体和胶囊体碰撞

根据这个WeaponActor创建一个具体的武器

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

3.2、PlayerController 在pawn控制时,创建武器

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

生成武器主要方法:

生成武器实例(SpawnActor),并Attach到角色的手的插槽上(添加Actor组件)

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

四、创建武器配置表

4.1导语:

RPGAction 释放攻击技能是根据武器的不同选择的对应技能,那么先研究怎么创建一个武器的配置表

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

4.2、分析武器Axe数据C++代码

创建一个RPGItem作为基类,类别有 道具(加生命,魔法),远程攻击武器,近战武器

具体含义看下面注释

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

近战武器子类,继承RPGItem:

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

4.3、创建武器资产数据

右键 其他 ->数据资产,选择创建的URPGWeaponItem,

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

如上图所示,WeaponActor 是 解析三 文章里创建的武器,我把ItemIcon先去掉了,后面到UI的部分再加回来

三、创建一个AssetManager 用来管理这些数据资产

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

定义一个Weapon类型

五、GameInstance加载UPrimaryDataAsset(武器资源)并加载默认武器资源

5.1 导语:

怎么利用GameInstance动态加载这些资源,

为什么要用GameInstance,参考下面的文章

大钊:《InsideUE4》GamePlay架构(九)GameInstance267 赞同 · 12 评论文章​编辑

5.2、创建GameInstance,添加要加载资源的类型

创建一个GameInstance,

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

添加一个Map, FPrimaryAssetType填类型,int32表示可以装备的数量

打开项目设置,可以管理资产类型,

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

我目前只添加了一种Weapon类型,装备数量是2 (这个功能还不讨论)

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

5.3、GameInstance初始化动态加载

首先设置游戏实例,设置成我们自己创建的GameInstance

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

创建一个自定义事件,在事件初始的时候调用,

首先循环遍历ItemSlotsPerType的Keys值,ArrayElement为输出即FPrimaryAssetType类型

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

根据FPrimaryAssetType类型 获取主资产列表,通过调试模式可以看到成功加载了两个资产,

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

我目前加载的是“Weapon”,打开项目设置->资产管理器,可以看到我们定义的Weapon资产,如果名字不一样就加载不到,加载的目录是下面“/Game/Items/Weapons” 加载的类型是 RPGWeaponItem

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

5.4、GameInstance添加默认武器

GameInstance 添加默认装备字段

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

蓝图里添加斧头 数据资产

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

5.5、PlayerController添加加载逻辑

void APlayerControllerBase::BeginPlay()
{
	LoadInventory();

	Super::BeginPlay();
}

bool APlayerControllerBase::LoadInventory()
{

	//获取GameInstance
	UWorld* World = GetWorld();
	URPGGameInstance* GameInstance = World ? World->GetGameInstance<URPGGameInstance>() : nullptr;

	if (!GameInstance)
	{
		return false;
	}

	//利用AssetManager 加载 武器
	URPGAssetManager& AssetManager = URPGAssetManager::Get();
	CurWeaponItem = AssetManager.ForceLoadItem(GameInstance->DefaultInventory);

	return true;
}

其中AssetManager.ForceLoadItem:

URPGItem* URPGAssetManager::ForceLoadItem(const FPrimaryAssetId& PrimaryAssetId)
{
	FSoftObjectPath ItemPath = GetPrimaryAssetPath(PrimaryAssetId);

	URPGItem* LoadedItem = Cast<URPGItem>(ItemPath.TryLoad());

	return LoadedItem;
}

发现FSoftObjectPath ItemPath = GetPrimaryAssetPath(PrimaryAssetId); 获取不到路径,

要在DefaultEngine.ini 文件中添加如下代码:GetPrimaryAssetPath才能查询到路径

[/Script/Engine.Engine]

AssetManagerClassName=/Script/工程名.RPGAssetManager

添加完后,

URPGAssetManager::StartInitialLoading() 才能在引擎启动的时候调用

通过测试发现 CurWeaponItem已经获取到了值

ue4人物随相机方向旋转移动蓝图,UE4动作游戏实例RPG Action解析,ue4

g张乂卓/ActionRPGCopyhttps://gitee.com/StartUE4/action-rpgcopy.git文章来源地址https://www.toymoban.com/news/detail-774504.html

到了这里,关于UE4动作游戏实例RPG Action解析一:角色移动,旋转,动画创建,创建武器,及武器配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DNF类游戏动作实现(C语言)

    没有接触制作小游戏前,感觉做游戏很不可思议,游戏里的人物是怎么移动的,怎么攻击,释放技能。。。。。。现在逐渐了解到之后,发现2d游戏人物的动作更多是图片的拼接,动作是否精细,由这个动作的帧数决定。这篇博客会简单实现2d人物的动作,效果如下。 2d人物动

    2024年02月04日
    浏览(46)
  • 【unity】制作一个角色的初始状态(左右跳二段跳)【2D横板动作游戏】

            hi~ 大家好!欢迎大家来到我的全新unity学习记录系列。现在我想在2d横板游戏中,实现一个角色的初始状态-闲置状态、移动状态、空中状态。并且是利用 状态机 进行实现的。         本系列是跟着视频教程走的,所写也是作者个人的学习记录笔记。如有错误请联系

    2024年02月04日
    浏览(48)
  • 横版动作闯关游戏:幽灵之歌 GHOST SONG 中文版

    在洛里安荒凉的卫星上,一件长期休眠的死亡服从沉睡中醒来。踏上发现自我、古老谜团和宇宙骇物的氛围2D冒险之旅。探索蜿蜒的洞穴,获得新的能力来揭开这个外星世界埋藏已久的秘密。 游戏特点 发现地下之物 探索这个广阔而美丽如画,充满密室和诡异历史的2D世界的扭

    2024年01月16日
    浏览(49)
  • 《勇士传说》横版卷轴动作类游戏笔记-2.素材导入和整理

    该笔记为M_Studio老师今年免费更新的面向初学者的教程的笔记,只会更新老师免费更新的部分,中文课堂独有的部分不会更新。教程中所有的演示均为付费版下的演示,观看免费版的小伙伴可能会出现和笔记不同的情况,欢迎提问。 课程介绍: https://www.bilibili.com/video/BV1zY41

    2024年02月14日
    浏览(39)
  • 低成本动作捕捉解决方案及虚幻VR网络游戏开发

    大家好,我叫人宅,很高兴和大家一起分享一下本套直播课程。 课程名称:元宇宙VR技术研发 低成本动作捕捉解决方案及虚幻VR网络游戏开发 主要介绍: 在过去我们做动画,需要具备动画师能力才可以去做,K了一天动画,差不多就几秒。如果是公司,需要招聘动画师,每位动

    2023年04月11日
    浏览(39)
  • 【Python搞笑游戏】因蔡徐坤打篮球动作超火,被某程序员写成了一款游戏,画面美到不敢看,成功学到了精髓~(附源码免费)

    之前网络最火的梗,非“C徐坤打篮球”莫属。个人感觉,只有多年前的“春哥纯爷们”堪与匹敌! 虽然说C徐坤打篮球是一个老梗了,但是确实非常搞笑,今天就跟着小编一起来回忆一下吧! “我是练习两年半的个人练习生— C 徐坤,喜欢,唱、跳、RAP、 打篮球......” 那么

    2023年04月16日
    浏览(46)
  • UE4 中可全局获取的变量(例如游戏实例、玩家控制器等) 详解

    🙋‍♂️ 作者:海码007 📜 专栏:UE虚幻引擎专栏 💥 标题:UE4 中可全局获取的变量(例如游戏实例、玩家控制器、游戏模式等) 详解 ❣️ 寄语:加油,一次专注一件事! 🎈 最后: 文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎

    2024年02月06日
    浏览(112)
  • UE4动画系统,蒙太奇动画使用,添加动作

    提示:仅供学习参考 前言 一、什么是蒙太奇? 二、实现步骤 1.使用第三人称游戏c++模板创建一个项目,创建动画蒙太奇 2.在动画蓝图中添加蒙太奇 3.绑定鼠标左键输入  4.添加c++代码 5.设置动画蒙太奇  6.点击播放,鼠标右键就能看到挥手效果了 总结 本文介绍如何使用UE4的

    2024年02月05日
    浏览(53)
  • UE4游戏保存

    在游戏运行过程中由于某些事情需要暂停一下游戏,那就需要把游戏当前的进度保存起来,下次打开的时候还可以再次玩,我们这里主要保存的就是。所有需要有一个游戏保存的机制。UE4提供了这样的机制。 首先新建一个类继承在SaveGame,命名为FirstSaveGame 打开VS2019编辑代码

    2024年02月12日
    浏览(56)
  • ue4游戏dump

    链接 UE4Dumper:https://github.com/kp7742/UE4Dumper 游戏示例: https://www.bilibili.com/video/BV12v41167Gy 定义 GWorld 指向游戏世界对象 GNames 指向游戏字符串数组 GUObject 指向游戏对象数组 UE4版本 查看AndroidManifest.xml 游戏版本为 U E 4 + R e l e a s e - 4 . 2 5 指针怎么找 GWorld 切换到Exports 搜索【

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包