如何学习虚幻引擎的Blueprint

努力加载中,稍等...
暂无新消息
努力加载中,稍等...
已无更多消息...
这些人最近关注了你
努力加载中,稍等...
已无更多消息
努力加载中,稍等...
已无更多消息
技术美术| 虚幻4游戏引擎动画系统制作流程(上篇)
版权所有,禁止匿名转载;禁止商业使用;禁止个人使用。
角色使用3D软件制作完成后,导出格式为带有骨骼的FBX文件,不导出动作。动作文件需要单独导出,导出时只导出骨骼和动画文件,不导出模型。 目录结构为:“角色名”文件夹,放入制作的蓝图等文件 &&&Animations文件夹,放入所有动画文件&&&AimOffsets文件夹,放入所有角色瞄准姿态&&&Meshes文件夹,放入模型文件Surface_“角色名”&&&MaterialLayers文件夹放入,Material Function文件。Materials文件夹放入,材质球文件。Textures文件夹放入,贴图文件。
根据标准设置完文件夹后在“角色名”文件夹创建一个类型为AimOffset文件,命名为:(“角色名”+ Aim)。这个文件将为我们提供角色的上半身瞄准姿态的切换。首先设置Anim Asset Details菜单下的Additive Settings选项卡中Preview Base Pose的参数为Idle。然后设置Parameters菜单下的X Axis Label 为 Yaw (意思是左右旋转),X Axis Range为-180、180。设置Y Axis Label为Pitch (意思是上下旋转),Y Axis Range为-90、90。然后分别拖入不同方向的关键帧到(如图)相对应的位置。AimOffset中应具有总共15种方向用于动作混合,都为单帧动画。 它们分别为:A+“角色名”_CC
(正前方状态)A+“角色名”_RC
(右转状态)A+“角色名”_LC
(左转状态)A+“角色名”_RBC
(右后转状态)A+“角色名”_LBC
(左后转状态)A+“角色名”_CU
(正上放状态)A+“角色名”_RU
(右上方状态)A+“角色名”_LU
(左上方状态)A+“角色名”_RBU
(右后上方状态)A+“角色名”_LBU
(左后上状态)A+“角色名”_CD
(正下方状态)A+“角色名”_RD
(右下方状态)A+“角色名”_LD
(左下方状态)A+“角色名”_RBD
(右后下状态)A+“角色名”_LBD
(左后下状态)
设置完成后关闭AimOffset文件。然后在“角色名”文件夹下创建一个类型为Blend Space格式的文件,命名为:(“角色名”+ Locomotion)。我们将通过这个文件来切换静止,走路和跑步状态。打开文件后,设置Parameters菜单下的X Axis Label 为 Direction(方向),X Axis Range为-180、180。设置Y Axis Label为Speed(速度),Y Axis Range为0、600。然后分别拖入不同方向的关键帧到(如图)相对应的位置。AimOffset中应具有总共9种方向用于动作混合。 他们分别为:A+“角色名”_Idle
(静止)A+“角色名”_WalkFwd
(向前走)A+“角色名”_WalkRight
(向右走)A+“角色名”_WalkLeft
(向左走)A+“角色名”_WalkBwd
(向后走)A+“角色名”_RunFwd
(向前跑)A+“角色名”_RunRight
(向右跑)A+“角色名”_RunLeft
(向左跑)A+“角色名”_RunBwd
下面需要在“角色名”文件夹下创建一个类型为Animation Blueprint格式的文件。命名为:“角色名”+ BP我们将在这里面整合角色模型和动作文件,并且配置角色的状态机调用参数。 首先我们要配置Anim Graph (如图):
这里面我们将会用到4个变量:在Variables中新建4个float变量:
首先创建一个动画状态机:(状态机将切换角色行动状态)
双击进去后为:
在这里面我们通过判断浮点数变量的方式来切换走跑等状态。我们首先建立两个状态,分别为:Idle, Locomotion。双击Idle状态,进入子界面菜单。点击右键,新建一个Play Idle节点,并连接到Final Animation Pose。这等于默认播放Idle动作。
Settings中的Sequence选择为Idle。
返回到State Machine菜单,双击Locomotion节点,进入子界面菜单。在Asset Browser菜单栏中找到我们再外面创建的Locomotion Blend Space,并拖入到子界面菜单中。
在MyBlueprint菜单栏中找到我们之前创建的Direction和Speed两个变量,拖动到子界面菜单中。
然后按照以下方式进行连接。这样就会通过我们再BluePrint创建好的变量,同步到之前创建好的Locomotion的Blendspace Player中。
返回到State Machine菜单,连接Entry到Idle上,连接Idle到Locomotion上,连接Locomotion到Idle上。连接完成后,会出现两个圆形的带左右箭头的图标,这两个图标为判断开关。
双击Idle到Locomotion之间的判断开关。在My Bluprint菜单栏中,把我们创建好的Speed变量拖动进去。然后点击右键创建判断是否相等的Action。把Speed节点,连接到这个Action上。
再点击右键创建Not的Action。把他们整体上串连起来。这代表着,当Speed != 0时,触发Locomotion控制器。
返回到State Machine菜单,双击Locomotion到Idle的判断开关。在My Bluprint菜单栏中,把我们创建好的Speed变量拖动进去。然后点击右键创建判断是否相等的Action。把所有节点整体连接。当speed == 0时切换为Idle。
以上,我们的基础状态机就制作完成了。同理比如下蹲,加速等动作也在这里面进行制作。点击Compile , Save一下,关闭菜单。下面我们返回到Anim Graph菜单。在My Blueprint中找到Yaw和Pitch变量,拖入到菜单。
在Asset Browser中找到之前创建的AimOffset文件拖动进来。根据下面图的结构连接节点。整体的意思就是State Machine为Base Pose 输入到AimOffset中,再把Blueprint中新建的Yaw和Pitch变量输入到AimOffset中进行控制,然后最终输出为运行时的Pose。
我们已经通过以上方法,制作好了AnimGraph。下面将进行EventGraph的制作。在My Blueprint中找到EventGraph双击进入。
里面默认有一个节点:
点击右键输入cast to character ("caet to character"是自带的固定的命名,代表获取本角色创建的character类型的Blueprint。 cast to 的意思就是获取本蓝图或别的蓝图中的变量进行set设置,获取别的蓝图中的话就把cast to后面的关键字换成别的蓝图就好了),然后创建。
Object参数是必须有的,它将用于获取角色的速率。我们点击右键输入try get pawn owner(获取自己的动画实例?)创建这个节点,并进行连接。
下一步要我们要搭建3个模块。一个模块获取控制速度,一个模块控制瞄准姿态,一个模块控制动作姿态。 速度控制部分,如图:
瞄准姿态控制部分:
动作姿态控制部分:
关于节点的详细参数和流程描述后续再细化更新。根据以上的调节,我们的角色蓝图就创建完毕了,你可以把自己想要的功能(比如跳跃,下蹲,翻滚)添加套用进去。关闭这个动画蓝图,回到主菜单。找到我们之前创建的Character类型的蓝图,双击进入。
在Components窗口里点击3rdPersonPawn(self) ,在Details菜单里按照下图设置:
然后点击进入Event Graph 窗口创建以下节点。这些节点用于调用设备的输入控制。
设置完后点击Compile , Save关闭菜单。把这个Character蓝图拖动到游戏里。把Details下面Pawn中的Auto Possess Player改成Player 0 , 然后运行一下就可以操作这个角色了。
《虚幻4游戏引擎动画系统制作流程》一共分为上下两篇,
如果您学习完“上篇”的朋友请点击下面的链接观看下篇:
分类:(原创)技术美术圈
登录后参与讨论。点击
请勿发表无意义的内容请勿发表重复内容请勿发表交易类内容禁止发表广告宣传贴请使用文明用语其它
淫秽色情政治倾向人身攻击抄袭剽窃广告刷屏恶意挖坟冒充他人其它使用虚幻引擎中的C++导论(三) - 推酷
使用虚幻引擎中的C++导论(三)
使用虚幻引擎中的C++导论(三)
第一,这篇是我翻译的虚幻4官网的新手编程教程,
,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢。
第二,某些细节操作,这篇文章省略了,如果有不懂的,去看其他教程。
第三,没有C++编程经验,但有其他OOP语言经验的朋友。要先了解C++的基础。
继续深入研究
好了,很显然你想要知道更多。让我们更深入的了解虚幻引擎是怎么工作的。
虚幻反射系统
游戏类使用特殊的标记,在我们继续讲解之前,让我们了解一些虚幻属性系统的基础知识。虚幻4引擎使用其自身的反射机制实现动态特性,诸如,垃圾回收机制,序列化,网络复制,蓝图/C++通信。这些特性是可选的,意味着你可以正确的把这些功能组合进你的类型,否则虚幻会忽略它们,而不是对他们产生反射数据。下面是基础标记的大致概括。
- 让虚幻为类生产反射数据,这个类必须继承UObject。
- 让虚幻为结构体生产反射数据。
GENERATED_BODY()
- 为该类生产必要的样本代码
UPROPERTY()
- 通过UPROPERTY标记,让UCLASS 类或者USTRUCT 结构体的成员变量可用。UPROPERTY 标记有很多种用法。它允许变量可以复制、序列化、被蓝图访问。它同样被用于垃圾回收机制,去回收UCLASS 类。
UFUNCTION()
- 通过UPROPERTY标记,让UCLASS 类或者USTRUCT 结构体的成员变量可用。UFUNCTION 标记可以让方法被蓝图访问调用,并作为远程过程调用协议(RPC)的类方法,等等。
下面是个使用UCLASS标签的例子:
#include &MyObject.generated.h&
UCLASS(Blueprintable)
class UMyObject : public UObject
GENERATED_BODY()
MyUObject();
UPROPERTY(BlueprintReadOnly, EditAnywhere)
float ExampleP
UFUNCTION(BlueprintCallable)
void ExampleFunction();
若文件包含“MyClass.generated.h”。虚幻引擎会生产反射信息并且注入这个文件。在你的文件类型中,必须包含这个头文件。
你还可以注意到,我们同样加了特定的标志。我已经添加了一些较为常见的示范。这允许我们指定我们类型有的某种行为。
Blueprintable - 类可以被蓝图扩展。
BlueprintReadOnly - 属性只能被蓝图读取,不能修改。
Category - 定义虚幻编辑器中细节面板上属性所在的分类。用于组织属性需要。
BlueprintCallable - 方法可被蓝图调用。
有太多特定的标志,下面的链接可以看到这些标志的详细内容。
对象/Actor 迭代器
对于迭代UObject 类型和其子类的所有实例,对象迭代器 是非常有用的工具。
// Will find ALL current UObjects instances
for (TObjectIterator&UObject& It; It; ++It)
UObject* CurrentObject = *It;
UE_LOG(LogTemp, Log, TEXT(&Found UObject named: %s&), *CurrentObject.GetName());
你可以限定查找的范围通过为迭代器提供更多特定类型,假设你有一个类叫UMyClass,它继承UObject,你可以像下面的代码一样查询到所有实例:
for (TObjectIterator&UMyClass& It; It; ++It)
警告:在PIE(Play In Editor,即在编辑器中点击“Play”按钮)中使用迭代器会发生意外的结果。在编辑器装载时,对象迭代器将为你的世界实例,返回所有已经生成的UObjects 对象,除了那些只是正在使用的编辑器(材质,animation等编辑器?)。
Actor迭代器与对象迭代器有很多共同点,但是它仅支持继承AActor的对象。Actor迭代器没有下文所述的问题,并且将只能返回近期的游戏世界实例对象。
当生成一个Actor迭代器时,你需要一个指针指向世界实例
,很多UObject 类,比如,APlayerController类支持GetWorld()方法来帮助开发者。如果你不确定这个类是否实现了GetWorld()方法 ,你可以在一个UObject 类中使用ImplementsGetWorld() 方法检查。
APlayerController* MyPC = GetMyPlayerControllerFromSomewhere();
UWorld* World = MyPC-&GetWorld();
// Like object iterators, you can provide a specific class to get only objects that are
// or derive from that class
for (TActorIterator&AEnemy& It(World); It; ++It)
(由于AActor 继承UObject,你可以用TObjectIterator 在很多AActor中查找实例,只是需要小心PIE)
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致初试虚幻4引擎感想,初试虚幻感想-android100学习网
初试虚幻4引擎感想,初试虚幻感想
初试虚幻4引擎感想,初试虚幻感想
最近两天下载了虚幻4的源代码和编译好的环境,稍微尝试了下。没有深入研究,只是运行了几个Sample,看了看编辑器环境,甚至连c++代码都没有多...
初试虚幻4引擎感想,初试虚幻感想
最近两天下载了虚幻4的源代码和编译好的环境,稍微尝试了下。没有深入研究,只是运行了几个Sample,看了看编辑器环境,甚至连c++代码都没有多看。所以并没有资格对这个世界上最先进的游戏引擎品头论足。不过由于不打算继续深入研究了,所以表达一下感想。
虽然对Unity已经比较熟悉了,但是真正接触虚幻4还是感觉力不从心。单单使用Unity的时候,感觉有很多坑,各种不爽,但是换了UE4,反而感觉Unity无论从编辑器界面还是代码框架设计都非常干净精简。从某种程度上说,Unity入门容易,上手快,并不仅仅是一个噱头。
虚幻4的编辑器功能选项很多,菜单中也有各种看得懂和看不懂的功能。有点像是用3DMax一样,熟悉而又陌生,要真正上手估计要一两个月的时间。当然如果是之前接触过UDK或者是有过虚幻引擎开发经验的人或者是真正的大牛,上手会快一些。但是个人感觉,无论如何要比Unity难一些。
我准备业余时间(短期内不会有太多时间)自己开发一个ARPG的,目标就是火炬之光手游版本。所以选择引擎的标准就是3D、酷炫、手游、开发方便。试了试UE4感觉就是,UE4不花一些力气是Hold不住的,而在Unity5已经非常好用的情况下,除非个人兴趣,否则没有必要多花力气去搞定UE4。
下面是我的一些个人感想:
1、虚幻4开放了所有的源代码,只要19美元一个月,就可以随时获得最新代码。网上也可以下到最新的代码和编译好的环境。 开放源代码,这个对于技术向的程序员应该非常有吸引力。因为所有人都会有这样的想法,代码开放了,那我出了问题可以自己修改Bug,并且可以自己随意扩展功能。不过使用Unity后的感受是,如果设计非常漂亮的话,即便不开放源代码也可以自由的扩展引擎功能。虽然有无法扩展或修改的部分(也就是一些很不爽的敌方),但是这个也不是自己能随意改的,因为很多东西牵一发而动全身,结果自己能修改的部分还是一些插件性质的内容。而这些东西Unity没有开放代码也做到了。不知道为什么会有人觉得不开放代码我们就会碰到搞不定的问题,而开放代码后一切都可以搞得定。感觉UE4开放代码更像是一个噱头,或者是自己设计不足时的补救措施。
2、BluePrint
这个东西很强大,简单说就是不写一行代码就可以做出一个游戏。Unity里面也有很多类似的插件,最出名的是PlayMaker。虽然我很赞赏这些工具让策划或者不是很擅长程序的人也可以做出一个漂亮的游戏。但是我个人是很不习惯使用这些的,就像我很不习惯MecAnim中的状态机编辑器一样,我感觉使用代码和配置来维护状态操作起来更加方便,很多时候也更加智能。而且当项目复杂起来的时候,使用这些可视化工具很容易陷入泥沼。当然能够正确的使用他们的话,对项目还是非常有帮助的。比如关卡设计的时候开放一些功能给策划去配置,这个就相当于一个可视化的而且更加强大的关卡事件编辑器。
3、工作流程
引擎最重要的职能就是定义工作流程。代码可以自己摸索,功能可以自己实践,但是正确的工作流程却必须要在团队中学习。Unity因为相对简单,所以还可以自己摸索下,但是UE4的工作流程是什么,怎么做才能发挥这个最先进引擎的真正威力,这个都需要好好学习摸索。如果仅仅是把它像OGRE一样去使用,反而会显得憋手蹩脚。如果不能真正发挥引擎威力的话,那再先进的引擎也是浪费。
4、次世代的渲染效果
次世代一直在进化,比如UE4使用GPU粒子,可以渲染几百万个粒子(正常来说同屏几千个粒子已经会拖慢速度了),使用曲面和物理光照可以实现更加真实的渲染效果。但是我的需求是一个手游ARPG,我要表现的是一个酷炫的感觉,是否真实不在我的考虑范围之内。至于GPU粒子就更不用说了,几年内手机显卡估计都不会支持。所以说,很多高级特性给我们了也不能用,不敢用。 Unity5里面的全局光照我都持有怀疑态度,不知道是否真的不再需要LightingMap了,不知道手机上性能和兼容性如何。所以单从渲染技术上说,UE4并不具备真正的优势,很多U3做的游戏非常炫,但是那个也需要美术给力才行。
5、c++代码
基本上说UE4开发就是c++代码和Blue Print相结合。虽然可以方便的嵌入lua什么的脚本语言,但是估计不会有特别的好处。虽然写C++写习惯了,不会感觉有很多坑。但是跟c#相比还是麻烦了一点。 Unity使用c#真是相当明智的选择,一方面借助c#解决了开发者难题,一方面借助Mono实现了跨平台,同时还能够保证效率。至于游戏运行效率,如果c#代码能够成为性能瓶颈的话,那我感觉c++也不会好到哪里去,这个时候更应该优化客户端代码而不是抱怨语言效率。
6、代码热加载,即写即编译
借助于llvm,可以实现即时编译,而Unity又可以实现动态库的运行时热加载,所以可以实现边修改变查看运行结果的效果。
7、很多实际功能不知道如何去解决
比如使用Unity,我已经知道了碰撞盒如何去加,物理如何设置,动画如何处理,如何设计技能系统,UI怎么做,光效怎么编辑。而这些在UE4中都要重新去学习掌握,而UE4的文档教程并不是很多,很多时候也找不到具体功能如何去实现。 等UE4发展起来估计会好一些,不过UDK发展了这么多年,也没有起色,我很担心UE4能够有什么改变。Unity能够备受游戏公司和独立开发者推崇,在最近一两年出了如此多Unity制作的卖好又卖座的精品游戏,肯定有其理由。而这个优势肯定不是开放个源代码就可以弥补的。整个生态链的搭建没有个一两年是做不到的。除非它能够放下身段去学习Unity,不过那样的话虚幻就不是虚幻了。
8、没有找到内嵌的性能分析工具
Unity自带的Profiler功能强大而且简单好用。这个不是说用个Intel GPA就可以替代的。运行时也不像Unity一样可以直接查看当前的性能参数,我不知道怎么样评估游戏运行的性能。这个其实很重要。 同时,因为现在还几乎没有UE4(UE3的也不多)的成功游戏,所以运行性能、发热、兼容性也都不能做任何保证。
其实不光是性能分析工具,像GUI编辑器之类的东西,貌似也要自己处理。且不说插件商店之类的外围设施,即便是编辑器和引擎核心的功能UE4也还有很多路要走。
总结就是:出于兴趣玩一下UE4是可以的,但是除非是专业的引擎开发人员,或者有真正的项目需要,否则研究下去即不能用来做项目也学不到什么东西。
虚幻引擎4记得亮点就是无限破坏,你说的可能日本的“夜光”引擎可以做到,当然真实叫啥我不知道,打造真实画面cryengine 3可以做到,当然都是贴图,想要真实DX11是肯定的,不然光影植被或者高楼进距离会出现模糊,远景各大引擎都可以做到照片级别,但是这要看使用的人的美术功底和逻辑好不好,那些问题目前虚幻4是做不到得到,虚幻系列打造科幻的还可以,虚幻4的动态火焰倒是不错,游戏中是为了不然电脑卡死才优化的,就像孤岛危机2其实可以更真实的,但是考虑到电脑画面调低了,对于后面几条,只能说做起来会比较麻烦,差不多是可以的,但是做到完美就差很远了。更多公众号:UE4-visions帮助大家更好的了解和学习虚幻引擎4最新文章相关作者文章搜狗:感谢您阅读(下)面对unity转虚幻界面,教程讲解!新手推荐!,本文由网友投稿产生,如果侵犯了您的相关权益,请联系管理员。4770人阅读
体感3D游戏(118)
原文&&&&&&&&&&&&&&&&&
最近两天下载了虚幻4的源代码和编译好的环境,稍微尝试了下。没有深入研究,只是运行了几个Sample,看了看编辑器环境,甚至连c++代码都没有多看。所以并没有资格对这个世界上最先进的游戏引擎品头论足。不过由于不打算继续深入研究了,所以表达一下感想。
虽然对Unity已经比较熟悉了,但是真正接触虚幻4还是感觉力不从心。单单使用Unity的时候,感觉有很多坑,各种不爽,但是换了UE4,反而感觉Unity无论从编辑器界面还是代码框架设计都非常干净精简。从某种程度上说,Unity入门容易,上手快,并不仅仅是一个噱头。
虚幻4的编辑器功能选项很多,菜单中也有各种看得懂和看不懂的功能。有点像是用3DMax一样,熟悉而又陌生,要真正上手估计要一两个月的时间。当然如果是之前接触过UDK或者是有过虚幻引擎开发经验的人或者是真正的大牛,上手会快一些。但是个人感觉,无论如何要比Unity难一些。
我准备业余时间(短期内不会有太多时间)自己开发一个ARPG的,目标就是火炬之光手游版本。所以选择引擎的标准就是3D、酷炫、手游、开发方便。试了试UE4感觉就是,UE4不花一些力气是Hold不住的,而在Unity5已经非常好用的情况下,除非个人兴趣,否则没有必要多花力气去搞定UE4。
下面是我的一些个人感想:
1、虚幻4开放了所有的源代码,只要19美元一个月,就可以随时获得最新代码。网上也可以下到最新的代码和编译好的环境。 开放源代码,这个对于技术向的程序员应该非常有吸引力。因为所有人都会有这样的想法,代码开放了,那我出了问题可以自己修改Bug,并且可以自己随意扩展功能。不过使用Unity后的感受是,如果设计非常漂亮的话,即便不开放源代码也可以自由的扩展引擎功能。虽然有无法扩展或修改的部分(也就是一些很不爽的敌方),但是这个也不是自己能随意改的,因为很多东西牵一发而动全身,结果自己能修改的部分还是一些插件性质的内容。而这些东西Unity没有开放代码也做到了。不知道为什么会有人觉得不开放代码我们就会碰到搞不定的问题,而开放代码后一切都可以搞得定。感觉UE4开放代码更像是一个噱头,或者是自己设计不足时的补救措施。
2、BluePrint
这个东西很强大,简单说就是不写一行代码就可以做出一个游戏。Unity里面也有很多类似的插件,最出名的是PlayMaker。虽然我很赞赏这些工具让策划或者不是很擅长程序的人也可以做出一个漂亮的游戏。但是我个人是很不习惯使用这些的,就像我很不习惯MecAnim中的状态机编辑器一样,我感觉使用代码和配置来维护状态操作起来更加方便,很多时候也更加智能。而且当项目复杂起来的时候,使用这些可视化工具很容易陷入泥沼。当然能够正确的使用他们的话,对项目还是非常有帮助的。比如关卡设计的时候开放一些功能给策划去配置,这个就相当于一个可视化的而且更加强大的关卡事件编辑器。
3、工作流程
引擎最重要的职能就是定义工作流程。代码可以自己摸索,功能可以自己实践,但是正确的工作流程却必须要在团队中学习。Unity因为相对简单,所以还可以自己摸索下,但是UE4的工作流程是什么,怎么做才能发挥这个最先进引擎的真正威力,这个都需要好好学习摸索。如果仅仅是把它像OGRE一样去使用,反而会显得憋手蹩脚。如果不能真正发挥引擎威力的话,那再先进的引擎也是浪费。
4、次世代的渲染效果
次世代一直在进化,比如UE4使用GPU粒子,可以渲染几百万个粒子(正常来说同屏几千个粒子已经会拖慢速度了),使用曲面和物理光照可以实现更加真实的渲染效果。但是我的需求是一个手游ARPG,我要表现的是一个酷炫的感觉,是否真实不在我的考虑范围之内。至于GPU粒子就更不用说了,几年内手机显卡估计都不会支持。所以说,很多高级特性给我们了也不能用,不敢用。 Unity5里面的全局光照我都持有怀疑态度,不知道是否真的不再需要LightingMap了,不知道手机上性能和兼容性如何。所以单从渲染技术上说,UE4并不具备真正的优势,很多U3做的游戏非常炫,但是那个也需要美术给力才行。
5、c++代码
基本上说UE4开发就是c++代码和Blue Print相结合。虽然可以方便的嵌入lua什么的脚本语言,但是估计不会有特别的好处。虽然写C++写习惯了,不会感觉有很多坑。但是跟c#相比还是麻烦了一点。 Unity使用c#真是相当明智的选择,一方面借助c#解决了开发者难题,一方面借助Mono实现了跨平台,同时还能够保证效率。至于游戏运行效率,如果c#代码能够成为性能瓶颈的话,那我感觉c++也不会好到哪里去,这个时候更应该优化客户端代码而不是抱怨语言效率。
6、代码热加载,即写即编译
借助于llvm,可以实现即时编译,而Unity又可以实现动态库的运行时热加载,所以可以实现边修改变查看运行结果的效果。
7、很多实际功能不知道如何去解决
比如使用Unity,我已经知道了碰撞盒如何去加,物理如何设置,动画如何处理,如何设计技能系统,UI怎么做,光效怎么编辑。而这些在UE4中都要重新去学习掌握,而UE4的文档教程并不是很多,很多时候也找不到具体功能如何去实现。 等UE4发展起来估计会好一些,不过UDK发展了这么多年,也没有起色,我很担心UE4能够有什么改变。Unity能够备受游戏公司和独立开发者推崇,在最近一两年出了如此多Unity制作的卖好又卖座的精品游戏,肯定有其理由。而这个优势肯定不是开放个源代码就可以弥补的。整个生态链的搭建没有个一两年是做不到的。除非它能够放下身段去学习Unity,不过那样的话虚幻就不是虚幻了。
8、没有找到内嵌的性能分析工具
Unity自带的Profiler功能强大而且简单好用。这个不是说用个Intel GPA就可以替代的。运行时也不像Unity一样可以直接查看当前的性能参数,我不知道怎么样评估游戏运行的性能。这个其实很重要。 同时,因为现在还几乎没有UE4(UE3的也不多)的成功游戏,所以运行性能、发热、兼容性也都不能做任何保证。
其实不光是性能分析工具,像GUI编辑器之类的东西,貌似也要自己处理。且不说插件商店之类的外围设施,即便是编辑器和引擎核心的功能UE4也还有很多路要走。
总结就是:出于兴趣玩一下UE4是可以的,但是除非是专业的引擎开发人员,或者有真正的项目需要,否则研究下去即不能用来做项目也学不到什么东西。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2096165次
积分:18878
积分:18878
排名:第349名
原创:75篇
转载:1058篇
评论:276条
(17)(18)(25)(67)(31)(32)(27)(56)(13)(12)(8)(33)(32)(36)(12)(34)(42)(30)(17)(11)(3)(5)(11)(18)(17)(13)(17)(7)(6)(27)(19)(47)(1)(19)(11)(2)(1)(26)(20)(10)(6)(2)(8)(3)(10)(9)(6)(4)(15)(7)(2)(7)(8)(50)(14)(11)(26)(20)(4)(1)(5)(14)(12)(4)(4)(3)(2)(4)(2)(4)(1)(1)(1)(3)(2)(11)(3)(8)(15)(2)(1)}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信