UnrealEngine4
文章平均质量分 61
蝶泳奈何桥.
这个作者很懒,什么都没留下…
展开
-
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 · 6333 阅读 · 0 评论 -
ue4-骨骼动画相关(换装、重定向、曲线、变形)
骨骼动画相关Skeleton编辑器相关设置骨骼编辑器中取消显示每个骨骼的坐标轴 Show -> Advanced -> Hierarchy Local Axes -> None -> 显示骨骼 Show -> NonRetargeted Animation - Checked使用骨骼动画的曲线插值变量官网资料:https://docs.unrealengine.com/latest原创 2017-01-20 14:23:10 · 21831 阅读 · 1 评论 -
ue4-摄像机动画Matinee(多图慎入)
利用摄像机做一些镜头特效之类的1. 首先创建一个Matinee创建 打开编辑区域 2. 创建摄像机创建 为摄像机创建动画,先选中一个摄像机 3. 设置播放指定的摄像机动画:1关卡蓝图指定播放的matinee,2创建directorgroup关卡蓝图指定播放的matinee先选中matinee 然后打开关卡蓝图 创建directorgroup选中创建动画的摄像机 -> 选中创建动画的摄像原创 2017-01-20 14:19:30 · 23659 阅读 · 2 评论 -
ue4-UMG和HUD绘制UI
编辑器中编辑UI并使用1. 控件蓝图新建控件蓝图 双击进入编辑 为控件创建animation 触发动画逻辑定义 2. 编辑游戏中HUD的事件逻辑UI设计 UI中控件的逻辑 函数GetTimerPercentage的定义 3. HUD 和 UserWiget 详解 HUD:学名叫抬头显示设备 也就是屏幕上的显示仪,只能用来看,不能类似按钮等可以触发事件,每帧绘制可以获取数据打印到屏幕原创 2017-01-20 14:15:14 · 21642 阅读 · 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 · 7406 阅读 · 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 · 14880 阅读 · 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 · 2076 阅读 · 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 · 8317 阅读 · 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 · 22665 阅读 · 0 评论 -
ue4 内存管理 – 实践
UObject、UActorComponent的gc机制UObject gc机制1)TArray保持引用如果有个TArray容器,则这个TArray需要用一个UPROPERTY()去保持容器的引用,然后里面的UObject就不需要再去AddToRoot去阻止被gc了。 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "UCoolD原创 2016-07-30 22:30:44 · 11325 阅读 · 1 评论 -
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 · 2854 阅读 · 5 评论 -
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 · 4927 阅读 · 0 评论 -
ue4-数据二进制存取
之前不知道ue4里面自带了那么好用的数据存取的工具,所以之前把cocos项目中的二进制存取移到ue4中 传送门。 ue4中还可以二进制数据再压缩一下,使其变得更小(不过数据文件再怎么大也大不到那里,此举有点多余,对图片来说就不一样了) 压缩存取数据测试代码void UMyBpFuncLib::TestFileWriteCompressed(FString _path){ //FP原创 2017-01-13 10:54:12 · 8613 阅读 · 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 · 4449 阅读 · 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 · 4808 阅读 · 0 评论 -
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 · 2175 阅读 · 0 评论 -
ue4-定时器(废弃)
定个成员变量,hold住这个定时器 FTimerHandle mTimer;使用lambda表达式的delegate auto rotaInterp = [&]() -> void{原创 2016-07-30 22:48:57 · 3703 阅读 · 0 评论 -
ue4-定时器
c++ 和 蓝图 中定时器的使用 之前有写过c++的,现在用 markdown 整理下c++和蓝图的蓝图中的使用开始,可以通过 事件 或 事件名、方法名 两个api起定时器 暂停 唤醒 停止并清除 其他api是否存在、激活、暂停 已逝时间,这个周期开始到此刻的时间 剩余时间,此刻到周期结束的时间(结束时就会触发时间) 参考:https://docs.unrealengine.com/lat原创 2017-01-26 16:14:59 · 9510 阅读 · 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 · 601 阅读 · 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 · 6633 阅读 · 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 · 4787 阅读 · 1 评论 -
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 · 2099 阅读 · 0 评论 -
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 · 13250 阅读 · 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 · 5437 阅读 · 0 评论 -
ue4-添加宏定义macro
在 c++ 编码中添加自定义宏或者引擎的宏 错误姿势:ue4项目的vs工程中,不用像平常那样添加预处理的宏,添加了也是无效的 正确姿势:在项目的模块编译文件 MyTest.Build.cs 中添加public class MyTest : ModuleRules{ public MyTest(TargetInfo Target) { PublicDependen原创 2017-02-25 16:04:12 · 6242 阅读 · 0 评论 -
ue4-笔记
学习ue4的一些笔记记录 之前也有写过点,这里做个汇总,顺便补上漏记得东东,持续更新…… 这里以 MyTest 项目名说明。视频教程集合官方编码标准包含头文件的一些规则配置默认的GameModeGameInstanceMap等多人游戏的关卡切换暴露给蓝图的规则SceneComponent启动游戏添加参数解析创建 uproject的 vs2013解决方案 xxxsln文件原创 2017-02-25 15:04:59 · 5529 阅读 · 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 · 2997 阅读 · 0 评论 -
ue4-Network相关-组件及数据同步
UActorComponent 及 Non-UActorComponent 同步 Non-UActorComponent同步 可以理解为继承 UObject 的类,用来装数据的同时又需要暴露给蓝图调用,且带同步功能。 组件的的同步和 Actor 的同步非常相似 Actor同步的传送门:ue4-Network相关-变量同步新建一个组件类 UMyCompMyComp.h#pragma o原创 2017-01-29 06:25:13 · 5261 阅读 · 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 · 1296 阅读 · 1 评论 -
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 · 10947 阅读 · 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 · 5895 阅读 · 0 评论 -
ue4-Network相关-变量同步
蓝图 or c++ 的 变量同步变量同步蓝图中同步:选择变量属性 Replication 为 Replicated,有三个可选值None:默认值,不会同步给服务端Replicated:同步给服务端,再同步给其他客户端RepNotify:选择这个的时候,会 Functions 中生产一个变量 Var 对应的方法 OnRep_Var,在 Var 改变的时候会回调 服务器和所有客户端 中该Acto原创 2017-01-28 15:03:30 · 5400 阅读 · 0 评论 -
ue4 内存管理 – 实践(废弃)
UObject、UActorComponent的gc机制。UObject gc机制1)TArray保持引用如果有个TArray容器,则这个TArray需要用一个UPROPERTY()去保持容器的引用,然后里面的UObject就不需要再去AddToRoot去阻止被gc了。 C++12原创 2016-07-30 22:22:52 · 3117 阅读 · 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 · 13760 阅读 · 2 评论 -
FBX导入时模型贴图半透明的解决办法
FBX导入UE4后,模型可能是这种半透明的状态: 解决办法:1,打开模型的Material 2,修改Blend Mode为Masked 或者 Opaque 3,保存、应用即可。原文出处:http://aigo.iteye.com/blog/2283010转载 2016-07-31 14:04:09 · 12457 阅读 · 0 评论 -
单位移动时如何启用ROV避让模式
多个聚集在一团的物体同时向同一个点移动时,实现各个物体之间相互避让: Cpp代码MyCharacter->GetCharacterMovement()->bUseRVOAvoidance = true; 启用这个属性生效后,效果是:群体移动时,各个单位都保持一定距离,并且到达终点后第一个到达的单位之外的所有Pawn,都会围绕在第一个到达单位的周围,形成一个圆圈。 如果没有原创 2016-07-31 14:01:48 · 1291 阅读 · 0 评论 -
ue4中模式设定
1、以观察者的视角(Spectator)那么在Word Setting中Default Pawn和Spectator两者要设置为同一个类此模式中,摄像机组件是在这个Spectator中create并且控制,还可以绑定Input事件class AMySpectator : public ASpectatorPawn{ GENERATED_BO原创 2016-07-31 14:00:12 · 7602 阅读 · 0 评论 -
UE4容器TArray、TMap的使用
ue中特有容器的使用1、Log日志宏输出到屏幕上的调试日志会覆盖,在output log窗口则可以全部显示,所以先写个打日志的宏DECLARE_LOG_CATEGORY_EXTERN(MyContaimTest, Log, All);DEFINE_LOG_CATEGORY(MyContaimTest)//调试日志UE_LOG(MyContaimTest, War原创 2016-07-31 13:56:50 · 51952 阅读 · 2 评论 -
某个对象初始化时构造一个蓝图对象
这种情况必须要在构造函数中找到该蓝图对象资源,不能再Editor中指定,不然Editor还没有打开就编译奔溃 //用摄像机蓝图类 static ConstructorHelpers::FClassFinder CameraCompCls(TEXT("/Game/TopDownCPP/Blueprints/Player/MyCameraCompBp")); mCam原创 2016-07-30 23:00:34 · 675 阅读 · 0 评论 -
Config配置的使用
这个没有多大卵用,在外部配置文件中配置一些对象成员的初始值,必须重新编译才能读取到,还不如在蓝图中初始化这些值1、首先必须在类上使用宏声明,其次成员也要用宏声明UCLASS(config = Game)class UMyCameraComp : public UCameraComponent{ GENERATED_BODY()public: UPROPE原创 2016-07-30 22:57:47 · 1348 阅读 · 0 评论