UnrealEngine4 .
文章平均质量分 61
- 关于ue的实践
蝶泳奈何桥.
这个作者很懒,什么都没留下…
展开
-
ue4-shader-自定义模板CustomStencil
title: ue4-shader-自定义模板CustomStencilcategories: UnrealEngine4-Shadertags: [ue4, shader, stencil, 模板测试]date: 2019-05-09 21:00:50comments: falseCustom Depth Stencil is an extension of Custom Dept...原创 2019-05-10 15:31:34 · 6089 阅读 · 0 评论 -
ue4-shader相关
title: ue4-shader相关categories: UnrealEngine4-Shadertags: [ue4, shader, hlsl]date: 2019-05-01 17:06:25comments: falseue4-shader相关前篇Shader Development - https://docs.unrealengine.com/latest...原创 2019-05-10 15:29:13 · 580 阅读 · 0 评论 -
ue4-shader-后处理
title: ue4-shader-后处理categories: UnrealEngine4tags: [ue4, shader, 后处理, postprocess]date: 2019-05-02 08:10:46comments: falseue4-shader-后处理前篇官方文档 - http://api.unrealengine.com/CHN/Engine/Re...原创 2019-05-02 02:52:39 · 2031 阅读 · 0 评论 -
ue4-shader-自定义shader代码hlsl
title: ue4-shader-自定义shader代码hlslcategories: UnrealEngine4tags: [ue4, shader, hlsl]date: 2019-05-01 00:14:31comments: falseue4-shader-自定义shader代码hlsl前篇Shader Development - https://docs.un...原创 2019-05-01 00:17:35 · 6422 阅读 · 0 评论 -
ue4-材质编辑器material
title: ue4-材质编辑器materialcategories: UnrealEngine4tags: [ue4, 材质, material]date: 2019-04-21 23:00:50comments: falseue4-材质编辑器material替换预览模型选中模型mesh资源 (可以是 场景内 或 Content中 的) , 再点击材质编辑器预览中的 茶壶...原创 2019-04-29 15:47:23 · 4628 阅读 · 1 评论 -
ue4-模型及动作fbx导入
title: ue4-模型及动作fbx导入categories: UnrealEngine4tags: [ue4, fbx, 动作, 导入, import]date: 2019-04-22 17:14:45comments: falseue4-模型及动作fbx导入时隔多年 (快3年了), 又重新捡起 ue4 来玩玩, 之前玩时对3d及图形学的认识都比较薄弱, 学习 ue4 的...原创 2019-04-22 19:16:58 · 13159 阅读 · 0 评论 -
ue4-读写配置文件
读写 .ini 配置文件,(暂时只测了Windows)这里已 Game.ini 为例, 其他配置的读写看这里 CoreGlobals.h,替换下面的 GGameIni 参数即可,这些字符串保存的是对应配置文件的路径extern CORE_API FString GEditorIni;extern CORE_API FString GEditorPerProjectIni;extern CORE_A原创 2017-02-28 14:32:18 · 8241 阅读 · 0 评论 -
ue4-资源加载和实例化类
加载资源,然后实例化对象资源加载,并实例化构造中加载蓝图或c++类加载并实例化一个蓝图类 static ConstructorHelpers::FObjectFinder<UMaterial> DecalMaterialAsset(TEXT("Material'/Game/TopDownCPP/Blueprints/M_Cursor_Decal.M_Cursor_Decal'")); //原创 2017-02-27 15:25:07 · 5289 阅读 · 0 评论 -
ue4-添加宏定义macro
在 c++ 编码中添加自定义宏或者引擎的宏 错误姿势:ue4项目的vs工程中,不用像平常那样添加预处理的宏,添加了也是无效的 正确姿势:在项目的模块编译文件 MyTest.Build.cs 中添加public class MyTest : ModuleRules{ public MyTest(TargetInfo Target) { PublicDependen原创 2017-02-25 16:04:12 · 6158 阅读 · 0 评论 -
ue4-笔记
学习ue4的一些笔记记录 之前也有写过点,这里做个汇总,顺便补上漏记得东东,持续更新…… 这里以 MyTest 项目名说明。视频教程集合官方编码标准包含头文件的一些规则配置默认的GameModeGameInstanceMap等多人游戏的关卡切换暴露给蓝图的规则SceneComponent启动游戏添加参数解析创建 uproject的 vs2013解决方案 xxxsln文件原创 2017-02-25 15:04:59 · 5466 阅读 · 1 评论 -
ue4-UDecalComponent组件,紧贴Mesh的材质
在4.11版本后的 TopDown 模板中,多了个紧跟光标移动的一个图案,会贴在不同凹凸面的Mesh中,就是使用了一个新增的组件 UDecalComponent直接看 TopDown 模板中使用c++ 中的 Character 中加个 UDecalComponent 组件/** A decal that projects to the cursor location. */UPROPERTY(原创 2017-02-25 14:44:19 · 2952 阅读 · 0 评论 -
ue4-JsonQuery Plugin json插件
json 的打包和解包 插件源码:https://github.com/marynate/JSONQuery_UE4 里面只是对引擎内的 json 和 http 做了一点封装,然后导出借口给蓝图调用 蓝图版参考资料:https://wiki.unrealengine.com/JSON_Query把插件源码clone下来丢到项目的插件目录下,启动 Editor 时会自动编译插件目录 P原创 2017-02-17 14:42:15 · 2824 阅读 · 5 评论 -
ue4-Multiplayer Lobby Blueprint教程
多玩家加入房间,然后一起游戏。(这里使用的是蓝图,理解蓝图后在看c++部分会更好点,c++部分可以参照官网实例 ShooterGame, FPS 游戏,类似 CS)流程Client A 创建一个房间(CreateSession, 对应视频中可以理解为Lobby,也可以理解为Session)Clinet B、C… 寻找房间(FindSession, 可能寻找到多个房间(Session))Cli原创 2017-02-14 10:46:39 · 2140 阅读 · 0 评论 -
ue4-Network相关-组件及数据同步
UActorComponent 及 Non-UActorComponent 同步 Non-UActorComponent同步 可以理解为继承 UObject 的类,用来装数据的同时又需要暴露给蓝图调用,且带同步功能。 组件的的同步和 Actor 的同步非常相似 Actor同步的传送门:ue4-Network相关-变量同步新建一个组件类 UMyCompMyComp.h#pragma o原创 2017-01-29 06:25:13 · 5083 阅读 · 0 评论 -
ue4-Network相关-Client和Server的区分
判断当前是在Client or Server执行方法,敏感信息应放在服务端计算,而客户端只做展示区分当前运行的是客户端还是服务器蓝图中,有个 SwitchHasAuthority 宏: FORCEINLINE_DEBUGGABLE bool AActor::HasAuthority() const{ return (Role == ROLE_Authority);}只有 Role原创 2017-01-28 15:05:40 · 10546 阅读 · 0 评论 -
ue4-Network相关-rpc调用
蓝图 or c++ 的 rpc调用Rpc调用Run On Server(蓝图)蓝图中如果指定这个方法为 Run On Server,那么只会在服务端执行,客户端不会执行,比如spawn一个粒子特效,只会在服务端生产。如果此时需要其他客户端也也可以生产这个粒子特效,可以在粒子特效蓝图中勾选复制(Class Default -> Replication -> Replicates : checked原创 2017-01-28 15:04:32 · 5820 阅读 · 0 评论 -
ue4-Network相关-变量同步
蓝图 or c++ 的 变量同步变量同步蓝图中同步:选择变量属性 Replication 为 Replicated,有三个可选值None:默认值,不会同步给服务端Replicated:同步给服务端,再同步给其他客户端RepNotify:选择这个的时候,会 Functions 中生产一个变量 Var 对应的方法 OnRep_Var,在 Var 改变的时候会回调 服务器和所有客户端 中该Acto原创 2017-01-28 15:03:30 · 5270 阅读 · 0 评论 -
ue4-Network相关-总览
client-server 模式记录,和unity的unet相似Rpc调用Run On Server(蓝图)蓝图中如果指定这个方法为 Run On Server,那么只会在服务端执行,客户端不会执行,比如spawn一个粒子特效,只会在服务端生产。如果此时需要其他客户端也也可以生产这个粒子特效,可以在粒子特效蓝图中勾选复制(Class Default -> Replication -> Repli原创 2017-01-26 01:25:39 · 1277 阅读 · 1 评论 -
ue4-定时器
c++ 和 蓝图 中定时器的使用 之前有写过c++的,现在用 markdown 整理下c++和蓝图的蓝图中的使用开始,可以通过 事件 或 事件名、方法名 两个api起定时器 暂停 唤醒 停止并清除 其他api是否存在、激活、暂停 已逝时间,这个周期开始到此刻的时间 剩余时间,此刻到周期结束的时间(结束时就会触发时间) 参考:https://docs.unrealengine.com/lat原创 2017-01-26 16:14:59 · 9219 阅读 · 0 评论 -
ue4-骨骼动画相关(换装、重定向、曲线、变形)
骨骼动画相关Skeleton编辑器相关设置骨骼编辑器中取消显示每个骨骼的坐标轴 Show -> Advanced -> Hierarchy Local Axes -> None -> 显示骨骼 Show -> NonRetargeted Animation - Checked使用骨骼动画的曲线插值变量官网资料:https://docs.unrealengine.com/latest原创 2017-01-20 14:23:10 · 21643 阅读 · 1 评论 -
ue4-摄像机动画Matinee(多图慎入)
利用摄像机做一些镜头特效之类的1. 首先创建一个Matinee创建 打开编辑区域 2. 创建摄像机创建 为摄像机创建动画,先选中一个摄像机 3. 设置播放指定的摄像机动画:1关卡蓝图指定播放的matinee,2创建directorgroup关卡蓝图指定播放的matinee先选中matinee 然后打开关卡蓝图 创建directorgroup选中创建动画的摄像机 -> 选中创建动画的摄像原创 2017-01-20 14:19:30 · 23573 阅读 · 2 评论 -
ue4-UMG和HUD绘制UI
编辑器中编辑UI并使用1. 控件蓝图新建控件蓝图 双击进入编辑 为控件创建animation 触发动画逻辑定义 2. 编辑游戏中HUD的事件逻辑UI设计 UI中控件的逻辑 函数GetTimerPercentage的定义 3. HUD 和 UserWiget 详解 HUD:学名叫抬头显示设备 也就是屏幕上的显示仪,只能用来看,不能类似按钮等可以触发事件,每帧绘制可以获取数据打印到屏幕原创 2017-01-20 14:15:14 · 21513 阅读 · 3 评论 -
ue4-HUD绘制UI(C++)
HUD绘制UI,其他绘制相关的接口看源码就可以使用了创建继承自AHUD的c++类-AMyHUD,构造函数中加载一些资源MyHUD.hUCLASS()class MYQWE_API AMyHUD : public AHUD{ GENERATED_UCLASS_BODY()public: virtual void DrawHUD() override; //重写父类的绘制函数原创 2017-01-20 14:14:31 · 7320 阅读 · 7 评论 -
ue4-混合动画及动画状态机
混合几种动画,通过参数过渡,如 Idle -> Walk -> Run 动画状态机及动画切换1. 一维混合 创建一个一维过渡的混合动画 Blend Space 1D 选择对应的骨骼 编辑 Blend Space 1D,定义变量名为 Speed, 值范围是 0~374 拖入需要混合的动画,Idle、Walk、Run 蓝图动画(AnimInstance)中使用这个混合动画创建动画状态机 拖入原创 2017-01-20 14:11:51 · 14771 阅读 · 2 评论 -
ue4-自定义关卡类
继承关卡基类 ALevelScriptActor 去扩展,蓝图继承自己的自定义关卡类MyLevel.h#pragma once#include "MyLevel.generated.h"UCLASS()class AMyLevel : public ALevelScriptActor{ GENERATED_BODY()public: AMyLevel(); vir原创 2017-01-20 14:09:57 · 2040 阅读 · 0 评论 -
ue4-多线程使用
主线程异步或多线程异步的使用在GameThread线程之外的其他线程中,不允许做一下事情不要 spawning / modifying / deleting UObjects / AActors不要使用定时器 TimerManager Don’t try to draw debug lines/points etc, as it will likely crash, ie DrawDebug原创 2017-01-16 15:42:41 · 13638 阅读 · 2 评论 -
ue4-异步加载资源
异步加载资源 思路一个FVCharPartInfo物件结构体,里面id和TAssetPtr对mesh资源的的指针。一个UItemInfoDatabase物件数据库,里面有一个物件列表TArray一个全局单例类USolusDataSingleton,里面有个资源加载器struct FStreamableManager* AssetLoader和物件数据库class UItemInfoDat原创 2017-01-13 14:59:55 · 7071 阅读 · 0 评论 -
ue4-数据二进制存取
之前不知道ue4里面自带了那么好用的数据存取的工具,所以之前把cocos项目中的二进制存取移到ue4中 传送门。 ue4中还可以二进制数据再压缩一下,使其变得更小(不过数据文件再怎么大也大不到那里,此举有点多余,对图片来说就不一样了) 压缩存取数据测试代码void UMyBpFuncLib::TestFileWriteCompressed(FString _path){ //FP原创 2017-01-13 10:54:12 · 8359 阅读 · 0 评论 -
ue4-控制台执行方法
直接在控制台中输入方法名和参数,调用c++中的方法引擎单例派生类可直接调用方法以下类的派生类中可以通过在方法上标记 UFUNCTION(Exec) 直接调用方法 Pawns, Player Controllers, Player Input, Cheat Managers, Game Modes, Game Instances, overriden Game Engine classes, an原创 2017-01-02 00:02:16 · 22378 阅读 · 0 评论 -
ue4-设置项目文件uproject的右键菜单栏选项
设置项目文件 .uproject 的右键菜单栏选项 有阵子没玩ue4了,发现右键 .uproject 的菜单栏选项不见了,折腾了一下弄回来了 删除注册表ctrl+r 输入 regegit 调出注册表删除 HKEY_CLASSES_ROOT 下的 .uproject下载脚本 UnrealProjectMenuRegistration.cmd,脚本源码在下面安装启动器 Launcher(具原创 2016-12-30 17:07:36 · 9960 阅读 · 1 评论 -
ue4 玩家控制器APlayerController
通过 APlayerController 可以让输入设备控制游戏,可以直接在蓝图中设置,不过我比较喜欢折腾c++(逻辑代码都是用c++写)1、创建一个 AMyPlayerCtrler 继承自 APlayerController,重写一些方法AMyPlayerCtrler.h#include "MyPlayerCtrler.generated.h"class UMyInput;class UMyC原创 2016-08-04 21:42:25 · 17617 阅读 · 3 评论 -
ue4 中动画控制,利用conduit节点
Actor的动画状态可能有几种idle,run,walk,skill,而skill中由又有几种不同的技能动作,要做进步一控制,这里只是提供一种思路,利用动画蓝图里的 conduit 节点,减少大量重复性的 state(比如某一状态到n种技能状态的切换)。先来看看总体的动画蓝图(Animation Blueprint) 1、先写个继承自 UAnimInstance 的基类 UMyAnimInsta原创 2016-08-04 21:14:37 · 5919 阅读 · 0 评论 -
ue4插件开发
编写ue4插件1、直接从Editor中生成一个空的插件模板 然后最右下角 2、关掉vs,右键生成一下工程文件,把Plugins扫进去打开解决方案开始编写插件 瞧,插件加进来了 3、编写插件1- 首先把插件的配置文TestPlugin.uplugin件改一下(被这个坑了两天)这个LoadingPhase的值默认为Default,必须修改为PreDefault,不然重启Editor会报关联不上原创 2016-08-02 21:24:48 · 18608 阅读 · 4 评论 -
ue4 Android打包示例
一个很全面的 ue4 的 Android 打包示例,里面的图比较多,打开过程可能一直转菊花 传送门:https://github.com/ouya/docs/blob/master/unreal.md转载 2016-08-02 21:08:02 · 5377 阅读 · 0 评论 -
ue4中动画通知的几种方式
animation blueprint中的几种notify,神马通知碰撞开启关闭的东东都可以使用notify1、简单的通知(blueprint)直接在sequence or montage中new个Event 然后在graph中接收。 2、简单的通知(c++)首先,animation bp必须是继承自定义的AnimInstance 然后新建两个通知AnimNotify_Begin和AnimN原创 2016-08-02 21:03:04 · 16762 阅读 · 0 评论 -
ue4动态调用obj对象的方法
在使用AnimInstance的Notify时候发现可以动态调用UObject对象的方法,前提是这个方法必须是暴露给蓝图的或者是蓝图中的方法,应该是ue4中的某中反射机制生成的蓝图类XXX.generated.h1、使用一个AMychar对象调用自身的bp func或者 c++暴露给蓝图的方法void UMyBpFuncLib::TestObjFunc(AMyChar* _myChar,FStri原创 2016-08-02 20:48:36 · 4883 阅读 · 0 评论 -
ue4动态代理
c++ and bp 混合使用动态代理 及各种bind c++ and bp 混合使用动态代理c++中定义一个动态代理DECLARE_DELEGATE_OneParam(FMyDelegate1, int32);//c++和bp混合使用的代理必须是这种宏,而不是上面那种DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMyDelegate2,原创 2016-08-02 20:38:39 · 4392 阅读 · 0 评论 -
ue4-C++中加载一个蓝图类(二)-C++中绑定Blueprint武器
editor中编辑好一个武器蓝图资源后,c++中create出这个武器,然后attach到一个人物身上。 思路: 写个c++基类,蓝图继承后编辑成武器或其他装备,然后c++用一个TSubclassOf Weapon1Class;来保存蓝图类,再根据这个这个Weapon1Class类spawn出一个实例,attach到人物身上。1、写个基类attachmentMyAttachment.h原创 2016-08-02 20:31:31 · 4753 阅读 · 0 评论 -
ue4中的继承自UObject的类实现每帧Tick
继承自UObject的类,在实例后不会加入引擎中的Tick,AActor和UActorComponent都会加入Tick,如果你的对象也需要每帧去Tick(一般来说是什么Mgr管理器之类的全局单例对象),也非常简单再继承多一个抽象类FTickableGameObject重写实现几个纯虚函数即可UCLASS()class UCoolDownMgr : public U原创 2016-08-02 13:55:53 · 7371 阅读 · 0 评论 -
UE4接口的使用及对象回收机制
自己现在在做的demo中,用到了大量的UObject对象,战斗的过程中会频繁的new出这些对象,无疑会消耗很大的cpu,为了减少和现有架构的耦合性,本想用继承的方式写个基类,发现ue中不能同时继承两个UObject。根据answerhub里的提示,就是用接口来做。接口的弊端是里面的成员不能用UPROPERTY宏标记给蓝图识别,不过可以在子类中写个方法来“曲线救国”这个回收机制的相关类原创 2016-07-31 14:20:49 · 4541 阅读 · 2 评论