从Unreal Engine 3到Unreal Engine 4
Unreal Engine 4公布好长好长时间了。直到近期才有时间细致去看一下。
TimSweeney老大一句话“IF YOU LOVE SOMETHING, SET IT FREE”。原来须要几十万授权金才干拿到的东西,就从$19。变成免费了。并且开源。作为一个国际顶尖的引擎,能走出这一步,对我等普通开发人员真是福音啊。
如此的牛X。再加上开源,相信Unreal Engine 4会火起来的,你看看近期E3上的产品展示也能感觉到。只是。Unreal的定位毕竟是“国际顶尖”,而非Unity3D那样的“开发大众化”。所以上手是有一定难度的。
以下我把对Unreal Engine 4的初步印象总结一下,特别针对像我一样有Unreal Engine 3的同学。希望很多其它的同学来已经学习Unreal。
UnrealScript去掉了
据说Tim Sweeney在開始设计Unreal的时候以前考虑过使用Java作为上层语言。只是那时候Java还不成熟。所以他參考Java,实现了这个一个面向对象的,单根继承的脚本语言。只是。随着时间流转。Epic似乎并没有花太大的力气去演进UnrealScript。在Unreal Engine 3的时代。它确实显得有点老旧了,书写起来比一些现代语言确实有非常多不方便的地方。
所以。去掉就去掉吧。只是。值得注意的是,官方也留出了整合其它脚本语言的接口。比如LUA。
C++11
底层依旧是使用C++,只是用了非常多C++11的特性,代码看上去简洁了不少。
Blueprint Visual Scripting
UE3里面的Kistmet仅仅限于在一个关卡中使用,而Blueprint扩展了。关卡能够有唯一的一个Level Blueprint,相当于原来的Kismet;另外添加了Blueprint Class,大概就是用Blueprint创建自己定义的Actor、Pown之类的,由于有了这个功能所以原来的Archetype顺带也就被替代了。
事实上。作为老一代屌丝Coder。我一直对Kismet那种表达式层级可视化编程,一直不太感冒(像Unity的PlayMaker那样,提供更高层级抽象的可视化工具更好)。
只是。既然是UE4主推的个东东,还是得看看。
AnimTree哪去了
看了一下,貌似被分解成了BlendSpace和AnimGraph。
- BlendSpace
好比说“站立、走、跑”这三个动作,在UE3的AnimTree里面是有一个特定的node来混合的,依据移动速度不同。在UE4里,则须要创建一个BlendSpace1D资源。然后暴露出Speed參数。
- AnimBlueprint
使用Blueprint,AnimGraph,状态机等等控制角色的动画,怎么看上去和Unity的Mecanim有点像呢。唉~
渲染系统
但多线程渲染,SceneProxy、Material之类的基础架构没怎么变。
Behavior Tree
推荐看一下官网的文章吧。作为本文的补充
:
- TRANSITIONING FROM UE3 TO UE4,https://www.unrealengine.com/blog/transitioning-from-ue3-to-ue4
- UE3 to UE4 Transition Guide。https://wiki.unrealengine.com/UE3_to_UE4_Transition_Guide
从Unreal Engine 3到Unreal Engine 4的更多相关文章
- [原][unreal][UE][spark]分析unreal engine 虚幻引擎的粒子编辑器:Cascade
参考:https://www.raywenderlich.com/270-unreal-engine-4-particle-systems-tutorial (使用了一个飞机射击游戏的粒子来展示,全英 ...
- Python Falling back to the 'python' engine because the 'c' engine does not support regex separators
环境 Anaconda3 Python 3.6, Window 64bit 书籍 O'Reilly出版的Wes McKinney编的<Python for Data Analysis> 警 ...
- 游戏音频技术备忘 (三) 集成Wwise到Unreal Engine
当前受众较广的商业游戏引擎有 Unreal Engine.Unity.cocos2d-x等,在音频领域的第三方中间件则有Wwise.FMOD.Criware等,言多且烦,我们首先集成Wwise到 Un ...
- Unreal Engine 4 系列教程 Part 1:入门
原文:Unreal Engine 4 Tutorial for Beginners: Getting Started 作者:Tommy Tran 译者:Shuchang Liu 本篇教程将引导你安装U ...
- 实例甜点 Unreal Engine 4迷你教程(1)之如何用C++将纹理绘制在UserWidget的Image小部件上
完成本迷你教程之前,请前往完成以下迷你教程: 无前置教程待完成. 本教程适合的人群: 初学者,具有开发经验两周: 本示例的目的:为了在代码中实现UMG中的这个功能: 说明:这是一些列迷你教程的首篇,所 ...
- 转-ArcGIS Engine许可初始化
关于初始化Engine许可的,其实原理都很简单,大家一般都没有问题,但又往往会因为不够细心加上Engine的“小脾气”,让不少程序员都要在这里犯错. 以Engine9.2为例,应用程序是强制初始化许可 ...
- 虚幻4外包团队-推荐非常全面的的Unreal教程
<Unreal SDK 游戏开发从入门到精通(UnrealScript语法.UI Scene界面.UDK独立开发游戏)> 课程讲师:Shark 课程分类:.net 适合人群:初级 课时数 ...
- MEMORY Storage Engine MEMORY Tables TEMPORARY TABLE max_heap_table_size
http://dev.mysql.com/doc/refman/5.7/en/create-table.html You can use the TEMPORARY keyword when crea ...
- 云计算平台简介(App Engine)
云计算平台简介(App Engine) 1 简介 App Engine: 应用程序引擎,是托管网络应用程序的云计算平台. 1.1 什么是云 云计算通常简称为“云”,是一种通过 Inter ...
随机推荐
- Unityclient通信測试问题处理(一)
Unityclient通信測试问题处理(一) 近期在測试程序的通信模块时.遇到了一个问题:Unity的API函数仅仅能在主线程中调用.而作为client程序,我单独启用了一个监听线程来接收服务端发送的 ...
- UML类图中的几种关系总结
UML类图,描写叙述对象和类之间相互关系的方式包含:依赖(Dependency).关联(Association).聚合(Aggregation).组合(Composition).泛化(G ...
- View State
如何查看viewstate 鼠标右键页面,然后view page source 源码中搜索viewstate,会找到一个隐藏的字段. <input type="hidden" ...
- ElasticSearch 架构图
ElasticSearch 架构图 从下往上来分析ElasticSearch 架构图 Gateway代表ElasticSearch索引的持久化存储方式. 在Gateway中,ElasticSearch ...
- unity3d编程日志
2014/4/27 编写脚本的时候,加入了中文凝视,发现console面板有非常多不可思议的bug.查了一下发现是由于monodevelop脚本中文凝视报错,而英文凝视不会受影响. 解决方法:把凝视放 ...
- shell-手机屏幕录制
今天在做android联系的时候,想要把自己写的demo效果记录下来.在网上发现了录制手机屏幕的方法,如下 adb shell screenrecord /sdcard/demo.mp4 解释 adb ...
- Android开发经验一判断当前屏幕是全屏还是非全屏
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView ...
- 1.3 Quick Start中 Step 5: Start a consumer官网剖析(博主推荐)
不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Step 5: Start a consumer Step : 消费消息 Kafka ...
- 交叉编译工具链bash: gcc:no such file or directory
在进行交叉编译工具链安装时,有三种方法: 1.源码编译,手动安装 2.二进制可执行文件直接安装 3.直接解压工具链,手动修改环境变量 为了方便,我们多用方法3进行安装.但是问题来了,你的工具链制作时有 ...
- BZOJ2402: 陶陶的难题II(树链剖分,0/1分数规划,斜率优化Dp)
Description Input 第一行包含一个正整数N,表示树中结点的个数.第二行包含N个正实数,第i个数表示xi (1<=xi<=10^5).第三行包含N个正实数,第i个数表示yi ...