游戏开发之UE4添加角色到场景中

接着上次继续学习,现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中。要这样做,我们必须从UE4的GameFramework类继承它。

一. 创建一个从Character类继承的类

从基本框架类继承是很简单的:
1) 在项目中打开你的UE4编辑器。

2) 在文件,选择“新建C++类”。

3) 这里你可以选择从Pawn类(Pawn类从控制器接收输入)继承或从Actor类继承。不过我们可以这里选择从Character类(角色)继承。

4) 点击继续,然后你可以命名这个类。这里我们将其命名为Avatar。

5) 最后点击创建类来使用代码创建这个类。

6) 然后UE4会自动运行你的VS项目。我们在项目解决方案中打开Avatar.h文件:

Avatar.h是这样的:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "GameFramework/Character.h"
#include "Avatar.generated.h"

UCLASS()
class MYFIRSTCODE_API AAvatar : public ACharacter
{
	GENERATED_BODY()

public:
	// Sets default values for this character‘s properties
	AAvatar();

	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

	// Called every frame
	virtual void Tick( float DeltaSeconds ) override;

	// Called to bind functionality to input
	virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;

};

UCLASS()和GENERATED_UCLASS_BODY()都是UE4定义好的宏,UCLASS()宏使得你的C++代码在UE4编辑器中可用。GENERATED_UCLASS_BODY()会适当处理你的类函数成为一个UE4类。现在你不需要彻彻底底地搞清楚它们的工作原理,你只需要确保它们在正确的位置出现。

二. 为角色创建一个模型

现在我们avatar是继承了角色类,但是还需要给角色赋予一个模型。我们可以从UE4的商城找免费的模型,步骤如下:

1) 点击工具栏的市场,进入UE4的商城。

2) 在类别中选择角色,找到一个名字叫Animation Starter Pack的免费资源包,点击进去。

4) 点击下图中的免费按钮添加到库里面。(可能加载有点慢,耐心等待,我加载了几分钟呢)

5) 下载完后点击库,点击“添加到工程”。

6) 在新窗口中,选择Demo1,然后点击添加到项目。

7) 现在,我们可以找到刚才添加的资源,在内容浏览器点击选择路径:

8) 选择AnimStarterPack文件夹:

三 在运行时改变载入的资源

载入网格通常情况下,如果使用C++代码来指定要载入的资源,这是一种硬编码的坏习惯。在运行程序的时候,如果资源发生了改变,则程序不会做出改变。更好的做法是,可以在运行时改变载入的资源。

下面我们从C++类中创建一个蓝图:
1) 在菜单栏中的窗口-开发者工具-类别查看器。

2) 在类别查看器中,右击Avatar,选择创建蓝图类。(如果找不到Avatar,请关闭UE4编辑器,再重新打开)

3) 在下方输入蓝图类名称(我这里是BP_Avatar),点击保存。然后会来到蓝图编辑器:

4) 在左上角的组件窗口中,选择Mesh:

5) 在右侧的细节面板中,在Mesh选项卡中,选择下拉按钮,然后点击视图选项,点击显示引擎内容,再选择TutorialTPP。

6) 这时候碰撞体看起来是这样的,模型和碰撞体是对不上的:

7) 然后我们通过W、E、R快捷键变换模型,使之近似地包围在碰撞体里面。如果碰撞胶囊体不够大,你可以点击组件的CapsuleComponent,然后在细节面板的Shape调节胶囊体大小:

8) 然后我们可以关闭窗口。在内容浏览器中将BP_Avatar拖放到场景中。

四 添加动画动作

添加动画你可以看到人物模型是呈T型的,3D建模/动画师通常都会让人物默认状态下摆T型,因为此时这可以使得人物做出各种各样的动作。

1) 双击内容浏览器的BP_Avatar,重新打开蓝图编辑器。

2) 在上方选项卡中点击视口,然后选择Mesh,在右侧的细节面板中的Animation选项中的Anim Blueprint Generated Class中选择UE4ASP_Hero_AnimBlueprint。

这样就完成了一个模型的动画添加了,关于动画的更多细节,我们在后面的教程中会深入探讨。

五 添加摄像机

为了使得我们有一个第三人称视角,我们给该角色添加上摄像机以追随该角色。

1) 在组件中进行如下的步骤:

2) 移动摄像机并旋转角色到如下状态(注意角色的蓝色箭头是角色的前进方向,所以要使得摄像机和角色自身的朝向都要面对着蓝色箭头):

3) 点击工具栏的保存。

现在的角色还不能被控制,我们下一节继续讲如何编写C++代码来控制角色。

时间: 2024-12-19 23:18:36

游戏开发之UE4添加角色到场景中的相关文章

Cocos2d-x 3.x游戏开发之旅

Cocos2d-x 3.x游戏开发之旅 钟迪龙 著   ISBN 978-7-121-24276-2 2014年10月出版 定价:79.00元 516页 16开 内容提要 <Cocos2d-x 3.x游戏开发之旅>是<Cocos2d-x游戏开发之旅>的升级版,修改了Cocos2d-x 2.0版进阶到3.0版后的一些内容,新增了对CocoStudio.UI编辑器.Cocos2d-x 3.x新特性以及网络方面的知识点.主要介绍常用的API使用方式:如何通过官方Demo获取更多关于Coc

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新完全解读

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

[Unity3D]Unity3D游戏开发之从Unity3D到Eclipse

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本

Unity3D游戏开发之Unity3D动画与Mecanim动画系统

Unity3D游戏开发之Unity3D动画与Mecanim动画系统 欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. Mecanim是Unity新增的动画系统,其功能强大而灵活,让人类和非人类角色栩栩如生.Mecanim的重定向极大的提供了工作效率,而且占用极少CPU周期.使用从Unity资源商店找到的动画资源,或

Unity3D游戏开发之Unity打包APK

Unity3D游戏开发之Unity打包APK 1.安装JDK 2.配置JDK 3.在Paht的变量值后面加分号,把D:\android\adt-bundle-windows-x86-20131030\sdk\tools放在Path后面.[狗刨学习网] 4.点击菜单栏中的Edit-->Preferences 看Android SDK Location这个选项 浏览你的模拟器路径. 5.点击 File-Build Settings 然后再 点击Add Current 添加你的场景.再 点击Switc

iOS游戏开发之UIDynamic

iOS游戏开发之UIDynamic 简介 什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力.弹性碰撞等现象 物理引擎的价值 广泛用于游戏开发,经典成功案例是“愤怒的小鸟” 让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果 提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 知名的2D物理引擎 Box2d Chipmunk 使用步骤 要想使用UIDynamic来实现物理仿

Cocos2d-x游戏开发之lua编辑器 subime 搭建,集成cocos2dLuaApi和自有类

Sublime Text http://baike.baidu.com/view/10701920.htm?from_id=8130415&type=syn&fromtitle=Sublime&fr=aladdin 简介 Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的V

[Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述

各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在研究了Unity3D Mecanim动画系统的重定向特性后,今天我们继续来探索Mecanim动画系统更多的特性吧.今天博主想和大家分享的是ACT游戏中的三连击效果的实现,由于Unity3D目前存在Animation和Animator两种类型的动画组件,因此本文将分别讲这两种类型的动画组件的三连击效果的实现,其中Animation组件是Unity3.5以下版本所使用的动画组件,An