介绍Unity和UE4对应的概念,下载学习资源的方法
目录
Project setup
项目结构
文件管理
UI和编辑器介绍
导航
导入资源
Asset Store
Game Object
组件
预制件
光照
Shaders、Materials
应用材质
后期处理体积
Light Baking
Skeletal Meshes
动画蓝图
特效
Scripting
项目打包
Unity打开时,打开/新建工程界面,与在右边Learn选项卡下载学习资源
UE4的Library选项卡:最上方可以访问不同版本的引擎,Project下看到已经创建的项目,vault看到插件关卡或者示例内容
UE4的Learn选项卡,以及旁边的商城选项卡可以找到资源,modding区制作模型
UE4新建工程时可以选择蓝图和C++,Unreal Studio是虚幻引擎的另一种完全不同的版本,能够使用一些新的插件,使用企业级数据如CAD、建筑数据
Unity中的Assets目录下有用户创建的Scenes等所有东西,
UE4中的Content下也一样
在Epic Zen Garden场景中示范
与Unity的Scenes对应的是UE4的Maps。保存场景:File>Save>Save Current As…就会创建一个关卡Level/地图Map
Unity中保存为后缀为.u的文件,UE4中为.umap
与地图文件有关的内容保存为.uasset,可以在地图目录下看到。每一个map旁都有一个构建数据注册表
在场景与视口内移动:
Alt+LMB旋转视角 Alt+MMB平移视角
WASD+RMB漫游视角
F聚焦物体
Navigating Unreal
Unity中的层级面板在UE4中是右侧的世界大纲World outliner
Unity中的检视面板在UE4中是Details
UE4左侧的Modes是Unity中不存在的:
Modes是不同的关卡编辑模式:放置(物体或光源)、绘制(顶点和纹理)、地形、植被、几何编辑
Unity采用窗格系统的工作方式(Pane System)
UE4采用基于编辑器的工作方式:打开某个材质,将开启一个悬浮的编辑窗,最大化后,可以在上方标签栏切换这个悬浮窗和主界面。材质与特效(粒子)都有独特的编辑器
Asset Import
Unity:任意目录下右键Import New Asset
UE4导入道具或纹理:
任意目录下右键Import New Asset . Import to Game/Props,然后拖入场景,导入时可以设置transform等。场景新资源会在角落上显示*,保存后星号消失-创建了.uasset文件
也可以直接从所需文件夹拖入,拖入时同样会弹出设置窗口用来设置属性。
Unity的Asset Store在一个标签页上
UE4:用Epic Game启动程序访问虚幻商城标签页MarketPlace
UE4中的Game Object成为Actor,在模式面板中的放置模式拖入场景(静态网格Actor)
除了空Actor、3DActor还有空Pawn或者空Character
空Pawn类似于创建了空玩家-有可供操控功能-作为基类
Components
UE4中可以在主界面Detail面板中添加组件
先向视口中添加一个空Actor,再在Detail中添加3D Actor,这样空Actor=所有组件的根节点
调整Particals(粒子系统)选择特效
Unity中Prefabs(打包后的游戏内容)
Asset-Create-Prefab可以创建预制件
可以在整个项目中复用
UE4中是蓝图
在Detail面板中,Add Component按钮右边是Blueprint Add按钮,打包成独立的对象,将对象保存在Content目录下,命名最好以BP为前缀
Lighting Basics
在Unity中GameObject-Light中可以找到定向光源Directional、点光源Point、聚光源Spotlight
UE4中放置模式-光照:定向光源Directional、点光源Point、聚光源Spotlight、Sky Light
如果看不清光源在场景中位置,
按G键,显示场景中各种小工具
E键旋转
Detail面板中可以设置光照强度、颜色、定向光源的光源角度light source angular、点光源的衰减半径、聚光源的内锥角度、外锥角度
光源在场景中的显示方式
材质、着色器
Unity中可以右键创建材料或Asset菜单创建材质
反射-底色(Albedo)、Metallic(金属)、法线贴图、高度图、自发光emission
UE4打开材质编辑器:
Base color=Unity Albedo
高光Specular、粗糙度Roughness
Nomal法线贴图、遮蔽Ambient Occasion
设置方式:添加常量或函数,连到Base color
编辑完成Apply->Save
都可直接拖放
UE4
在Detail中有Material引用
在Content中选中材质,点击Material旁的箭头,会应用这个材质
应用另一个对象的材质:选中已有对象材质,点击放大镜图标找到路径
Post Process Volumes
Unity中的后期处理栈(Post-Processing Stack)
后期处理特效整体应用于场景视图
Unity中使用后期处理栈需要下载额外插件
UE4中,放置模式->Volumes-> Post Process Volumes
可以定义Volume作用范围
设置颜色渐变(Color Grading)、中间色调(Midtones)、高光效果(Highlights)
曝光Exposure改变最低/高亮度
环境光遮蔽Ambient Occlusion强度、半径
Unity:Window>Lighting>Setting确定光照贴图中分辨率大小
UE4:Setting>World Setting>Lightmass集成在虚幻中的小引擎,生成光照贴图Lightmaps
光照质量:Build>Light Quality设置质量等级
光照信息Light Info设置半径、分辨率等
数据以一种纹理格式(DXT5)存储
类似于渲染工作流,使用可分布的渲染结点和Swarm合并成代理,
骨骼网格
处理动画文件,尤其是变形网格体
Unity:检视面板中的控制选项
模型Model、骨骼绑定方式Rig、动画文件、材质
Unity蒙皮网格体Skinned Mesh,拥有骨架的网格体,可以改变集合体形状
UE4骨架网格体:
导入fbx角色模型,导入设置:导入平移Import Translation、统一比例Import Uniform Scale
一般能够识别出这个网格Mesh是骨架网格Skeletal Mesh。需要指定使用的骨架
导入后会自动导入网格体中自带的着色器
Animation BluePrint
使用动画文件,应用到变形集合体
Unity:处理动画效果的前提-拥有动作数据(使用Unity标准资源)用于某个骨架,
用动画控制器Animator -Controller定义如何驱动
或属性替身(Avatar)
导入动画并应用:单击Animator -Controller会弹出动画编辑界面(动画状态机)
Create State创建不同的状态:Entry进入点-idle空闲-Walk行走切换
UE4:分开处理变形网格体和动画,作为独立的组件
在蓝图中定义动画如何与骨架网格一起工作
动画图表Anim Graph使用状态机的概念,导入动画,和角色绑定,做出想要的姿势
最终动画Final Animation Pose中只有一个输入引脚,连接状态机
双击进入状态机,确定何时转换状态
右上角有所有相关编辑器窗口
骨架编辑器:能够看到骨架结点层级。Mesh栏下是使用的骨架网格体-骨架所支撑的对象
网格体编辑器Mesh:主要是与物理、光照、材质有关的设置
动画编辑Animation:可以浏览Curves曲线、时间轴
动画蓝图:定义所有动画所用数据,导入数据,在主蓝图界面中确定它们的控制方式
共使用两个蓝图,一个蓝图定义了角色,将所有操控逻辑连接在一起。一个蓝图更注重动画层面,如何导入数据以及状态的转换
Particle Effects
Unity创建粒子系统,及相关属性、参数:创建Game Object>Effects> Particle System
右侧有默认属性、发射Emission、形状Shape等
UE4:Add New或右键> Particle System
为导入特效生成缩略图,打开粒子系统编辑器-级联
Emitters发射器设置初始大小initial size、生命周期lifetime、初始速度initial velocity、颜色
特效选项在实时场景中已经预置好了,只要开启选项,就能得到效果
在Emitters下右键可以看到,但不会出现在主界面中。-添加组件或添加属性:
Acceleration加速度、Orbit自转,Detail面板会显示有关这些特定参数的属性
顶部工具栏:生成缩略图Thumbnail
Unity中脚本的基本实现方式:
使用C#或JS:通过外部编辑器编辑脚本、可使用附带的开源MonoDevelop编辑器,或VS
UE4:new Project中有蓝图、C++、Unreal Studio选项。
蓝图是基于可视化节点的脚本方式,C++是基于传统脚本和编程框架
但并不局限于某个框架,可以在C++项目中创建蓝图,也可以在蓝图项目中创建C++脚本
在蓝图项目中创建蓝图helloWorld脚本:
拖入空Actor作为根结点,挂载各种组件,需要公告板BillBoard、文本渲染器Text Render
Text Render的属性:对齐Align
生成蓝图(BlueprintAdd)
在事件后连接文本渲染器(Text Render)Rendering>Components>Set Text函数
Text Render-Text Render
给Text Render中的参数赋值:使用制作文字(Make Literal Text)
在蓝图项目中创建C++脚本:
New C++ Class,选择父类Actor,代码中继承父类BeginPlay、Tick
Unity:File>Build Setting(>Player Setting)>Build & Run
UE4:
Edit>Project Setting>Project-Description:
-Publisher可以定义发布者的公司Company等与Unity中相似的内容
如果是VR项目,Project-Description>Setting-Support VR设置以VR模式启动
Project-Description>About可以设置项目缩略图
Project-Map&Modes地图和模式:
>Default Maps-Editor Startip Map编辑器启动地图,如果有多张地图,需要在这里设置(UE的Map在Unity对应是场景文件)
- Game Default Map默认是空白地图,需要设置
最后打包:File>Package Project>选择平台为Windows(x64)
会打包成一个可执行文件