随笔分类 - ue4
摘要:常见虚幻脚本简单测试 case 1: UnLua DevelopmentEditor code: local MathLibrary = UE.UKismetMathLibrary local BeginT = MathLibrary.Now() local TestVec for i = 1, 1
阅读全文
摘要:细看UBT日志,已经给出了提示 11>Parsing headers for ActionRPG 11> Running Internal UnrealHeaderTool D:\UEProject\ActionRPG\ActionRPG.uproject D:\UEProject\ActionRP
阅读全文
摘要:环境信息 LyraStarterGame官方版, 截至时间23.11.12 Unreal Engine 5.3.2 release版, 截至时间23.11.12 命令环境为PowerShell, 工作目录为LyraStarterGame/Build/BatchFiles/ 工程目录结构 LyraSt
阅读全文
摘要:#Ability相关 ##AttributeSet AttributeSet显示创建,隐式添加 ALyraCharacterWithAbilities::ALyraCharacterWithAbilities(const FObjectInitializer& ObjectInitializer)
阅读全文
摘要:目前IOS程序编译工具链仍然只有MacOS版,UE编译IOS程序必须依赖MacOS, 手头没有白苹果情况下,只能选择黑苹果编译IOS代码。 传统的黑苹果大多使用OpenCore(或Clover)来伪装PC机器的信息,实现引导和安装MacOS, 这种方式的关键步骤在于伪装PC机器的信息,也就是制作机器
阅读全文
摘要:UnLua优势在于自动绑定蓝图, 实现了类似于Unity上给GameObject挂脚本的效果; 设定绑定文件后, 可以直接访问所属Obj的元素, 极大减少不同对象之间的数据访问代码. 但是缺陷也很严重, Lua的执行非常依赖蓝图, 当蓝图未能成功加载,那么Lua也没机会执行, 这对于一些情况下可能不
阅读全文
摘要:UE4默认情况下打包生成一个Pak,这对于小型游戏足够了,但对于大型游戏不太方便, 单个pak文件太大对于打补丁非常不友好(非UE4默认Patch方案, 而是Xdelta3/BSDiff类方案), UE4内置了拆分Pak的功能,是按照资源类型来划分, 感觉不太直观, 习惯上更期望安装目录划分pak,
阅读全文
摘要:一 Http Proxy UE4打包过程会连接各种网络仓库下载依赖包(目标平台为Android),默认情况是直连,会遇到链接失败的情况. 以下载Gradle为例, 默认会下载到C盘.简单的办法可以在外部工具下载然后放置到对应目录即可. 此法需要额外的人工干预, 需要一劳永逸的办法. Gradle下载
阅读全文
摘要:目前游戏中普遍使用Lua作为脚本语言,Lua由纯粹的C实现,无任何外部依赖, 代码量较小, 无论是PC游戏还是移动游戏都能很好地适用, 其工具链也较为完善. 但仍有部分缺陷难以解决, 比如代码重构, lua文件较多时,对于函数改名等操作是非常困难的, 只能通过人工检查和运行时验证等手段, 缺少精确的
阅读全文
摘要:部分第三方代码会用到少量汇编代码, 比如AngelScript脚本,有几个跟系统调用相关的函数采用了汇编实现, 如果直接将代码加入项目,通过UBT编译会失败, 可以预编译为链接库, 但这种情况不方便调试(上传PDB到git不太可行). 可以将汇编部分代码预编译,其他c/cpp代码用UBT编译,在bu
阅读全文
摘要:在UnLua插件中可以直接使用协程编写蓝图中LatentAction逻辑,实现延迟执行线性逻辑。 典型用例:在蓝图中可以调用delay函数,不过,仅能在事件图表使用,因为整个事件图标是作为一个蓝图函数处理的,在Delay或者说是LatentAction位置就记录节点ID,待计时器触发,继续执行图表函
阅读全文
摘要:前几回初步实现了在LUA层中新建UClass,让C++自动调用Lua函数,但因为虚幻是单个脚本状态机,不方便处理多个LUA状态机,本文尝试初步解决该问题。 参考UnLua插件后暂时搁置在LUA中新建UClass的方式,改用Hook的形式修改先修的UClass里面的函数实现C++自动调用LUA函数。
阅读全文
摘要:通常情况下安装还Unreal后,会自动关联uproject文件,但偶尔也会出现关联失败或者被损坏,又不想去Launcher里面点验证(太慢了), 有个简洁的办法是用命令行成成代码改成文件,批处理如下: Linux和Mac会陆续追加
阅读全文
摘要:接上一回处理多个LUA状态机问题,暂时无法解决单个虚幻状态机对应多个LUA状态机问题,故先搁置,转而看看UnLua的设计,本文记录对其改进过程。 UnLua里面有个非常便捷的功能,就是在蓝图编辑器界面可以直接生成LUA代码模板,开始以为是基于反射生成的,看了下发现其实是从内置的LUA文件复制的, 非
阅读全文
摘要:Unreal默认同步方式能解决大部分轻量游戏的常用情况,不需要太多改动, 但仍然需要留意其一些内置函数的用法,此处略作简要记录。 一、单位隐身 单位隐身后,显然服务器不能在给敌方玩家同步隐身的单位的数据(包含位置,血量等),友方玩家的同步机制不变, 此时可以在服务器端的AActor::IsNetRe
阅读全文
摘要:此一回主要研究虚幻的反射类。 虚幻的反射类跟C++的静态编译类不同,可以在Runtime增删改,其概念更接近LUA的table。 UClass实质功能就是描述一段内存的内容,使用FProperty描述成员变量,UFunction描述反射函数。 FProperty描述了成员变量在Container(即
阅读全文
摘要:通常游戏中的单位/角色包含多个属性,比如生命值,移动速度,攻击力等等,游戏运行过程对属性修改非常频繁, 比如获得一个增益效果:角色基础血量提高10%,持续20秒;获得一个减益效果:最终血量降低100点,持续15秒。 为了统一描述属性,方便修改和回退属性,对于每个字段设计5个值,分别为基础值,基础增加
阅读全文
摘要:上一回实现了运行时创建枚举,这次再试试结构体,虚幻中的反射结构体是UScriptStruct的实例.同样,蓝图新建的结构体是UUserDefinedStruct的实例. 结构体由多个字段构成,虚幻中称为属性,即FProperty,FProperty描述了一个变量在一段内存的位置和大小,结构体通过链表
阅读全文
摘要:虚幻4中的蓝图系统可以在运行时创建枚举/结构体/类(把编辑器看作一个基于Runtime引擎完整的游戏产品),非常好用, 但是在实际使用中由于蓝图只能在编辑器创建,还是略有麻烦,所以准备在其他脚本语言实现无编辑器,此处以LUA为例. inside unreal系列文章有介绍反射系统,里面提以枚举入手,
阅读全文

浙公网安备 33010602011771号