unreal 卡牌游戏--1、准备界面
前言:我喜欢把游戏分两类,一类是角色扮演游戏,另一类则是资源管理游戏。
前者会选择一个具体角色的视角,所以他的界面会以角色为主。
后者是一种上帝视角,他的视角是独立的。
我们会创建一个character(人物)然后绑定视角,后者我们只需要任意一个actor(物体)绑定视角即可。
所以今天的重点是如何使用camera。
一、理论介绍
在计算机显示的时候,我们首先会让pc创建一个显示界面,然后绘制三角网,然后插入颜色。这个显示的界面是有大小的,超过界面的三角网会被剪切掉,降低计算性能,这个显示界面叫做rendertarget。在opengl中也叫rendertarget。
unreal中的rendertarget是非常自动化的,很多东西unreal已经替我们做了,大部分情况我就就简单的设置一下就好了。
然而rendertarget只是一个界面口,负责绘制图像,在面向对象编程中最忌讳让这个已经有专项能力的人加入其他功能,否则后期维护极其困难,所以unreal把它打包到了一个叫camera的类中了。camera这个取得很蠢,因为camera可以导出跑,还可以旋转,这不是摄像师的干活嘛。
所以unreal中的rendertarget实际上是现实生活中的摄像机,camera实际上是带着摄影机的摄像师。
这可不仅仅是unreal中是这样,从opengl到direct,unity,godot都是这吊样。所以要理解书呆子没有现实生活的的内心世界,才能更好的理解计算机领域。
二、游戏立项
1、创建Game Mode Base 和 Game controller

因为这个卡牌游戏可能有多种游戏模式,所以我创建一个一个教humancontroller,用来控制人类种族。
2、设置mode base

设置后就是我的card game mode base了,而不是unreal默认展示的game mode base了。
3、设置controller
进入cardgamemodebase的蓝图

4、打开human card game controller
接下来介绍下这误导性十足的破玩意。

可以看到中间有个摄像机,哈哈这是假的,unreal开发人员生怕使用者界面空空的吧自己吓到,所以放了这个摄像机在里面,实际上只有安慰和误导作用。
而且误导性十足。
比如星际争霸2是RTS游戏,炉石传说是一种卡牌游戏,守望先锋是一种第一人称设计游戏,有的游戏需要鼠标,有的需要隐藏。游戏用什么控制,用什么游戏,鼠标是否隐藏,是否有大量UI,才是game conrtoller控制的核心。
5、设置game conroller
001、游戏模式

这个游戏是game+UI,选第一个。

player controller:角色的控制器。
控制器分两种,player controller和AI controller。
in widget to focus:显示菜单。
如果是开始界面,那就设置一个,游戏模式会有其他的方式设置菜单。
in mouse lock mode:把鼠标锁定在游戏里面
如果玩过lol那必须锁定,如果是炉石,打打牌,听听课,看看片,就不用锁定了。
hid cursor during capture:隐藏就对了。
002、设置鼠标输入模式

显示鼠标,开始点击事件,如果这里没开,那就是聋子。
总结一下:controller就是用来控制鼠标键盘和事件的,全局的这些都在这里设置。除非喜欢过程编程。如果不设置这一步也可以,那可能就找不到鼠标了,点鼠标也没反应。
三、创建camera
如果我一个程序显示界面都没有,连文本都没地方显示,那还搞毛啊。
所以我需要设置游戏是否需要隐藏鼠标后,再创建一个camera,鼠标能够移动界面,就到结束好了。
001、创建actor,取名camera。
如果看过我前面你的文章就知道unreal中的actor包括游戏的所有需要空间位置和不需要空间位置的所有物体,这tm就是废话啊,他就是用来分配一个内存,然后保存一些玩意的。程序员和工程师的表达能力非常堪忧,也有可能是我对actor的理解不够深刻。

002、进去创建camera

unreal这里就是管理如何继承空间位置的,因为游戏主要是空间位置的变换,这里分配的资源都会在unreal中注册,这里的继承和编程的继承完全不同,如果喜欢c++的都懂,自己去学。

003、添加spring arm
添加一个弹簧臂,如果直接管理他的空间坐标也是可以的,但是弹簧臂可以进行一些碰撞判断,不会嵌入墙里,不会穿模,是个好东西啊。个人非常推荐使用。

界面变了,那个球球连个根红线,接上了摄像机。

这里可以调整手臂的长度,我就设置为1000。

调整角度

也可以在transform中设置

关闭spring arm的碰撞,如果不管会看天花板。

004、高速player controller我换摄像师了
右键屏幕,get player controller

连连看

保存完成。
四、实例化camera
把camera拖进屏幕里面

这玩意就是游戏关卡初始化需要默认加载的东西,如果不拖进去,是不会使用的。
运行

总结:没啥好说的,unreal入门篇都说完了。