首页 > 其他分享 >UE4添加人物模型

UE4添加人物模型

时间:2023-06-01 14:59:22浏览次数:43  
标签:模型 添加 组件 UE4 我们 SkeletalMesh

在正式使用 UE4 添加人物模型之前,我们先来解释几个概念。

什么是组件

在添加人物模型之前先介绍一个概念叫“组件”,组件是什么呢?组件的作用是为了让 Actor 实现一个功能,比如说:我们现在的角色,没有模型,我们需要一个模型那怎么办呢?那么我就要在 Character 身上挂一个“骨骼模型组件”,比如说我想要我的摄像机远离我的人物实现一个上帝视角那要怎么做呢?那么我们可以在Character的身上挂一个摄像机组件。

什么是 Actor

Actor 是 UE4 里面的 “可放置物品”,我们在 UE4 游戏窗口中所看到的场景、灯光、角色、模型,它们的父类都是 Actor。

什么是Character

Character 是 Actor 的一个子类,Character 封装了 移动组件 ,让 Character 类有了移动的功能。

添加人物模型

通过上面的介绍,我们已经知道需要通过添加组件来添加人物模型。那么我们要如何在 C++ 里面添加组件呢?

1) 首先打开 VS 编辑器,在 APlayingCharacter.h 文件尾部下入以下代码:
复制纯文本复制
  1. //这个是骨骼模型组件
  2. USkeletalMeshComponent* MeshComponent = nullptr;
  3. //这个是骨骼模型
  4. USkeletalMesh* SkeletalMesh = nullptr;
//这个是骨骼模型组件
USkeletalMeshComponent* MeshComponent = nullptr;
//这个是骨骼模型
USkeletalMesh* SkeletalMesh = nullptr;
上面就是声明组件的格式。USkeletalMeshComponent 是组件的类型,贴心的 UE4 其实已经在父类帮我们创建好了 USkeletalMeshComponent,我这里只是演示如何添加一个组件。删掉USkeletalMeshComponent* MeshComponent = nullptr,我们来到构造函数去注册我们的骨骼模型 USkeletalMesh。

2) 首先我们把构造函数里面的PrimaryActorTick.bCanEverTick = true;删掉,然后把virtual void Tick(float DeltaTime) override函数删掉,这个是开启帧事件和实现帧事件的函数,这个帧事件非常损耗性能,因为它是每帧执行一次的,我们不需要。

然后我们输入以下代码:
复制纯文本复制
  1. APlayingCharacter::APlayingCharacter()
  2. {
  3. //注册组件
  4. SkeletalMesh = CreateDefaultSubobject<USkeletalMesh>(TEXT("SkeletalMesh"));
  5. }
APlayingCharacter::APlayingCharacter()
{
    //注册组件
    SkeletalMesh = CreateDefaultSubobject<USkeletalMesh>(TEXT("SkeletalMesh"));
}
这里我注册了一个骨骼模型。注意,SkeletalMesh 是骨骼模型,不是骨骼模型组件,但是它还是一个组件,我们需要把这个骨骼模型添加到骨骼模型组件里面去,它们是配套的。

注意:CreateDefaultSubobject 只能用在构造函数里面,在构造函数其他地方使用的话会崩溃。

3) 下载资源,资源地址:https://pan.baidu.com/s/1ymF9V1yEPEb_Kow4Qx-jcA

我先下载这两个资源,这两个资源是人物的模型资源,下载好了之后我们把这两个文件夹复制到你的 UE4 保管库目录,保管库目录可以在 UE4 的启动器里面查看。


然后点击“编辑保管库缓存位置”, 会出现一个路径:


把这两个文件放在 Launcher/VaultCache/ 目录下:


放好了之后,我们回到 UE4 启动器,点击库:


我们会发现我们刚刚复制的两个文件夹出现在了我们保管库里面。我们这里使用 TwinSwordAnimsetBase 资源,点击添加到工程。


首先,由于这两个资源比较旧,所以会显示没有匹配的工程。我们先点击所有工程,然后点击我们的项目,选择最近的版本,然后点击添加到工程。


回到 UE4 编辑器,我们会发现我们的资源窗口已经有了我们刚刚添加的文件夹:


4.双击打开这个文件,依次进入 UE4_Mannequin 文件夹和 Mesh 文件夹,我们会看到有三个资源,其中 SK_Mannequin 就是我们的骨骼模型资源,我们单击选中这个资源然后 按Ctrl+C 获取这个资源的路径。


5) 回到VS编辑器,我们在 APlayingCharacter 文件的构造函数写入以下代码:
复制纯文本复制
  1. //加载模型
  2. SkeletalMesh = LoadObject<USkeletalMesh>(NULL,TEXT("SkeletalMesh'/Game/TwinSwordAnimsetBase/UE4_Mannequin/Mesh/SK_Mannequin.SK_Mannequin'"));
//加载模型
SkeletalMesh = LoadObject<USkeletalMesh>(NULL,TEXT("SkeletalMesh'/Game/TwinSwordAnimsetBase/UE4_Mannequin/Mesh/SK_Mannequin.SK_Mannequin'"));
LoadObject 用来动态加载对象资源,它可以用在任何地方。这里我们第二个参数传入的是一个路径,这个路径是我们模型的路径,我们直接Ctrl+V就可以获取这个资源的路径。

6) 我们使用 GetMesh() 来设置模型,在构造函数中继续下入以下代码:
复制纯文本复制
  1. //把我们的模型赋值到模型组件
  2. GetMesh()->SetSkeletalMesh(SkeletalMesh);
//把我们的模型赋值到模型组件
GetMesh()->SetSkeletalMesh(SkeletalMesh);
GetMehsh() 其实就是 SkeletalMeshComponente 骨骼模型组件,然后通过 SetSkeletalMesh() 函数去添加我们刚刚加载的模型。

7) 编译之后,回到编辑器点击 play,发现我们的人物已经添加到屏幕上。


下一节我们将会添加一个摄像机,实现第三人称视角。

标签:模型,添加,组件,UE4,我们,SkeletalMesh
From: https://www.cnblogs.com/tomato-haha/p/17448966.html

相关文章

  • UE4实现人物跳跃
    这一节我们来实现人物的跳跃。1)首先我们打开UE4编辑器,点击项目设置,点击输入,添加BindAction类型的按键绑定,名字为Jump,按键是空格键。2)打开VS编辑器,在我们的角色类APlayingCharacter头文件的末尾声明两个函数,分别是开始跳跃和停止跳跃:复制纯文本复制//......
  • 大模型可视化
     说明:左边是一个与Showprobabilities设置为的OpenAIPlayground基本一致的界面Fullspectrum。提示是Arebugsreal?,随后突出显示的文本是模型生成的完成。令牌根据模型预测的概率进行着色,绿色最有可能,红色最不可能。左侧的下拉菜单显示了在特定位置(在本例中为are采样位置)预......
  • LSTM模型
    摘自:http://www.voidcn.com/article/p-ntafyhkn-zc.html(二)LSTM模型1.长短期记忆模型(long-shorttermmemory)是一种特殊的RNN模型,是为了解决RNN模型梯度弥散的问题而提出的;在传统的RNN中,训练算法使用的是BPTT,当时间比较长时,需要回传的残差会指数下降,导致网络权重更新缓慢,无法体现出R......
  • LSTM入门学习——结合《LSTM模型》文章看
    摘自:https://zybuluo.com/hanbingtao/note/581764长短时记忆网络的思路比较简单。原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么,假如我们再增加一个状态,即c,让它来保存长期的状态,那么问题不就解决了么?如下图所示:新增加的状态c,称为单元状态(cellstate)。我们把上......
  • UE4设置人物移动和人物视角
    本节我们先讲解UE4人物移动的设置,然后再讲解UE4人物视角的设置。UE4设置人物移动1)打开UE4编辑器,点击“编辑”然后点击“项目设置”:2)选择“输入”:3)点击“AxisMappins”的添加按键输入,我们创建6个按键输入:4)更改按键和按键的名字,这里一个按键......
  • UE4新建项目
    打开UE4启动器,选择4.21.2版本的虚幻引擎,点击“启动”按钮。 点击之后会出现如下图所示的界面,可以对新建项目进行设置。 “项目”这一栏存放着你新建后的项目。我们点击“新建项目”,点击“C++”,选择“基础代码”,选择“没有初学者内容”,然后写上项目名字,注意不......
  • Unity转出FBX模型(Exporter插件)
    Unity转出FBX模型为了解决在Unity场景修改过导出的模型,以后给美工修改不了预制体的问题Unity版本要求:2021.3.6f1c1(包括但不限于此版本以上)下载插件场景中选中模型任意模型点击导出FBX导出模型设置路径......
  • UE4使用什么编译器?
    UE4的底层虽然是用C++实现的,但它又不仅仅是一个C++库,它还实现了自己的编译机制。换句话说,UE4对现有的C++语法进行了改进,以适应游戏开发的场景。当然,UE4也不会疯狂到自己去开发一个C++编译器,它还是需要依赖传统的C++编译器以及相关的编程套件。熟悉Qt的读者应该......
  • UE4是什么?虚幻4引擎是什么?
    UE4的全名是UnrealEngine4,中文译为“虚幻引擎4”。UE4是一款由EpicGames公司开发的开源、商业收费、学习免费的游戏引擎。从1998年发行至今,UE4一共经历了UE、UE2、UE2.5、UE3、UDK、UE4多个版本,它的迭代速度极快,现在已经到了4.22预览版。基于UE4开发的大作无......
  • UE4的下载和安装(UE4开发环境的搭建)
    使用UE4开发游戏之前,必须先搭建开发环境,具体包括:UE4引擎的下载和安装VisualStudio下载和安装UE4的下载和安装1)首先,打开任意一个浏览器输入UE4官方网站的网址 https://www.unrealengine.com/zh-CN/,点击右上角的“下载”按钮,如下图所示:2)官方要求必须登录......