- 博客(64)
- 收藏
- 关注
原创 序言
每年的GDC大会是世界顶级游戏开发者对外讲述3A游戏开发过程中某项技术细节的地方。对于开发者来说,可以从每个演讲视频中获得好的启发和思路。youtube GDC视频合集:https://www.youtube.com/channel/UC0JB7TSe49lg56u6qH8y_MQ后面每学习一个GDC视频后,要写多篇文章来设计以及实现它,所以这是个长期的工程(不知道自己能不能坚持下来),目...
2020-03-08 16:49:57
218
原创 Lua学习笔记
local tbData = { Key1 = 1, Key2 = "123" }local tbCopy = {}for Key, Value in pairs(tbData) do --不能使用tbCopy.Key tbCopy[Key] = Valueend 使用tbCopy.Key的话最后tbCopy的数据是{Key:"123"} ...
2019-12-21 21:50:00
221
原创 UE4 待解决的问题,欢迎大佬解答
1. GameMode OnPostLogin中调用PlayerController的多播RPC函数,客户端没有调用,如果RPC类型改成Client则会执行,bug吗?
2019-12-01 21:23:49
255
转载 两圆相交交点坐标计算以及三角形内随机点
两圆交点计算代码:private Point[] Arc_CrossP(int[] A,int[] B){ double Ax = A[0], Ay = A[1], Ar = A[2]; double Bx = B[0], By = B[1], Br = B[2]; //------------------------------------- double...
2019-11-23 23:16:10
1202
1
转载 UE4 网络同步Replicate 汇总
一、 官方说明:https://wiki.unrealengine.com/Replication二、 UE4网络模块分析https://www.jianshu.com/p/b4f1a5412cc9三、《Exploring in UE4》关于网络同步的理解与思考[概念理解]https://zhuanlan.zhihu.com/p/34721113四、《Exploring in U...
2019-08-01 15:25:29
451
原创 项目总结
1. NPC应该如何设计(NPC之间交互,NPC与主角的交互,NPC与场景道具的交互,NPC表演模式与正常模式切换),如何交给策划种(生成器还是直接种),NPC的疑难点(开放世界关卡卸载的情况下,NPC掉落的问题,避让算法等)。2. 剧情表演的Binding模式,应该尽可能的使用Binding而不是dynamic Create(存在很多问题,创建时卡顿,服饰武器与主角不一致的问题,无法无缝切换...
2019-03-23 22:54:24
182
5
原创 UE4 Sequencer InstanceData的使用以及自定义引擎支持Transform基于物体坐标系的支持
InstanceData的作用是可以Key的Transform应用的坐标系可以自定义。缺点: Sequencer定义了一条运动曲线数据,但是5,6个实体要应用这点数据,需要放置5,6个Sequencer并且每个Sequencer都要指定应用的坐标系。(绑定的机制会造成这几个实体都要向同一个方向移动,因为一个sequencer指定了一个坐标系) 我们理想的使用办法是使用一个sequencer...
2018-12-17 10:04:09
414
原创 向量点乘叉乘的几何说明以及游戏中常见的使用
后面详细。 可以参考https://blog.csdn.net/qiaoquan3/article/details/70194685
2018-12-05 09:54:19
424
原创 判断一个向量在另外一个向量左边还是右边
通过叉乘判断结果向量的Z方向,叉乘前先将两个向量的Z设置为0叉乘前先将两个向量的Z设置为0为了使两个向量都处于XY平面中。叉乘的结果是一个垂直于XY平面的向量,所以结果应该是一个(0,0,ZValue)的向量。根据叉乘的左手(右手)原则,通过Z的正负判断向量的关系。 tempVec1.Z = 0;tempVec2.Z = 0;FVector ret = FVector::...
2018-12-04 18:56:43
10733
1
原创 UE4 AI Moveto能够曲线地旋转而不是突变
主要重写virtual void UCharacterMovementComponent::RequestDirectMove(const FVector& MoveVelocity, bool bForceMaxSpeed) override 函数或者virtual bool ApplyRequestedMove(float DeltaTime, float MaxAccel, floa...
2018-12-04 18:55:08
3191
原创 行为树中的"Observer Aborts"属性以及相关
One critical thing you'll notice if you select either the "Needs Ammo" or "Has Enemy" nodes in the BotBehavior tree is that they are both set to "Observer Aborts" "Lower Priority". Our conditional dec...
2018-10-28 17:05:30
2003
原创 选中物体后自定义显示内容
先列代码:// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.#pragma once#include "CoreMinimal.h"#include "UObject/ObjectMacros.h"#include "Components/PrimitiveComponent.h"#include "Pala...
2018-10-26 14:43:00
605
原创 游戏内生成唯一的值
SIZE_T GetTypeHash() const override{ static size_t UniquePointer; return reinterpret_cast<size_t>(&UniquePointer);}来自虚幻4的代码。
2018-10-19 16:54:01
277
1
原创 自定义Struct的Detail界面
结构体如下:USTRUCT(BlueprintType)struct FPaladinNPCPatrolActionInfo{ GENERATED_BODY() UPROPERTY(EditAnywhere, BlueprintReadWrite) EPaladinNPCActionType ActionType; //ActionType为GotoTarget的时候生效,指...
2018-10-17 17:10:24
895
转载 投影矩阵的推导(Deriving Projection Matrices)
https://blog.csdn.net/gggg_ggg/article/details/45969499https://www.codeguru.com/cpp/misc/misc/graphics/article.php/c10123/Deriving-Projection-Matrices.htm#page-1https://www.cnblogs.com/AirGuanZ/p/...
2018-08-26 19:28:22
854
原创 UE4 ActionGame知识点总结3-Camera系统解析
UpdateViewtarget 根据ViewTarget的Target信息填充POV相关信息,不会改变Target(SetViewTarget负责改变的)。逻辑: 给POV的FOV,Ratio等信息先设置默认值。 判断Target是否是CameraActor类型 是: POV信息由CameraComponent的GetCameraView填充。 ...
2018-06-22 18:20:07
1263
原创 UE4 ActionGame知识点总结N-杂项
1. 游戏开始的按3次键才能把门一点点打开,实现是Sequence或者Matinee完整地把门打开的全部过程Key好了,只不过增加了几个Event点,Event响应就是暂停Sequence或者Matinee的播放,然后按键后继续播放,再触发事件再次暂停播放。2.通过Delay的办法解决动画瞬移的问题。角色播放了一个蒙太奇动画并且同时进行显示操作,如果两个操作之间不加入delay操作的话,那么由于角...
2018-06-16 19:07:25
905
原创 UE4 ActionGame知识点总结2-游戏主界面的设计
如果游戏主界面想要背后的是3D场景,一般做法是单独做一个主界面专用的场景关卡,摆好相机位置,在关卡蓝图的BeginPlay中把View设置到相机上。如果想让镜头有些动画比如晃动之类的,那么可以使用Sequence或者Matinee之类的编辑相机动画,在关卡蓝图BeginPlay中播放sequence或者matinee就可以了。ActionGame和“黑暗与光明”都是这么实现的。看下面截图:...
2018-06-16 17:55:06
1358
原创 UE4 ActionGame知识点总结1-FLatentActionInfo以及FLatentActionManager使用
写这篇文字之前一直有两个问题:1. Delay操作是如何实现的?2. 是否可以使用Delay的实现机制来处理一些需要异步处理的东西,比如一些读写数据?我们先看下Delay的使用和实现:...
2018-06-15 22:42:00
3168
原创 碰撞和追踪总结
关于碰撞的参数:Simulation Generates Hit Events: 设置是否生成Hit事件。Generate Overlap Events: 是否生成Overlap重叠事件。碰撞预设值相当于定义好的模板数据一样,选择不同的预设值下面的碰撞信息不同。每个Actor都有一个Object Type,值可以为:WorldStatic,WorldDynamic,Pawn,PhysicsBody...
2018-05-25 17:54:43
1160
原创 UE4 OnMouseButtonDown 和OnMouseButtonUp判断是鼠标左键还是右键
调用的是PointerEvent中的GetEffectingButton,如图:这种问题其实搜下源码看下官方怎么用就知道了,还是记录下吧。
2018-05-11 10:53:42
8657
1
原创 UE4 HUD相关的笔记
最近几天主要看了下官方赛车游戏的HUD实现,这里记录下,将来还要写射击游戏的HUD实现,将来也要写在这里了。赛车游戏的HUD全部使用蓝图实现的,不同于射击游戏的C++实现,其实都是一样的,写HUD主要注意的就是不同分辨率下信息的位置,缩放,大小等。大分辨率下的HUD小分辨率下的HUD蓝图中绘制HUD是在HUD的Receive Draw HUD实际中进行的,该事件有两个参数SizeX和SizeY,分...
2018-04-25 23:31:46
1223
原创 UE4中的Attach操作以及Sequencer位置闪的问题。
1. 包括添加Socket 通过预览Mesh调整位置等。执行attach的时候将mesh位置设置为0.2. sequencer明明在一帧的时间内将tranform从有效值设置为0,还是有闪动的问题,原因在于实际运行中sequencer的两帧之间还是会执行很多游戏帧,并且中间还有插值,解决方法是插值算法使用常量插值。下班了,下周详细写。...
2018-03-29 19:04:46
2020
2
原创 PlaySlotAnimationAsDynamicMontage注意事项
我这做表情动画融合到演员身上时被这个函数坑了下,主要还是没有看这个函数的注释。动画蓝图上DefaultGroup下有两个槽AnimationSlot和FaceAnimationSlot,通过LayeredBlendperBone使表情动画的头部动画融合到人身上,动画蓝图大致以下:然后代码或者Sequencer中向两个槽设置动画即可,但发现效果是不对的。代码和se
2018-03-28 17:49:47
1319
原创 UE4 CameraAnim参数说明
第一个参数:bRelativeToInitialTransform我们CameraAnim上的Movement上Key了3个点,主要改变的是X点位置,它们的值分别是100,200,250. 假设我们现在相机的位置X在1000上,现在播放上面的CameraAnim,那么:相机管理器拿到Track第一个点的值,取出是100,然后取出后续的值与100做差值,所以3个点分别做差值存储成0,100,
2018-03-16 14:55:15
1882
转载 UE4的接口与蓝图
Using interfaces with C++ and Blueprints can be a little tricky when the interface is implemented purely in Blueprints. Currently, when a Blueprint implements an Interface the C++ InterfaceCast<>...
2018-03-09 15:04:42
1619
原创 UE4杂项
获取编辑器视口选中了哪些Actors?USelection* SelectedActors = GEditor->GetSelectedActors();if (SelectedActors){ TArray<UObject*> SelectedActorsArr; SelectedActors->GetSelectedObjects(AActor::Stat...
2018-03-05 13:23:35
1113
3
原创 UE4扩展增加资源筛选的菜单
现在有C++类C_A,蓝图类B_A,B_B,B_C(都继承于C_A),现在想在编辑器做一个资源选择界面,选择的对象所有继承于C_A的所有蓝图类?主要是使用”ContentBrowser”模块的CreateAssetPicker函数,”ContentBrowser”模块就是编辑器中的内容浏览器的部分。调用CreateAssetPicker函数前需要先构造FAssetPickerConfig的参数,这...
2018-03-05 11:35:59
1999
原创 关于万向锁的理解
一直对于欧拉角的万向锁问题没有真正的理解,今天看书又看到了万向锁,所以今天一定要把它理解了。主要参考了这篇文章:http://blog.csdn.net/huazai434/article/details/6458257有两种类型的欧拉角旋转:静态: 即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,所以称为静态。动态:即绕物体坐标系三个轴的旋转,由于物体旋转过程中坐标轴随着物体做相同...
2018-03-02 16:41:03
2299
转载 苏步青谈读书与做题
在中学的数学课本里,一些基本的概念是逐步地被引导进来的,要把基本的概念了解清楚,可以说是学好数学的第一个步骤。如果概念还没有理解清楚,就急急忙忙地去证明定理、做习题,那是没有不碰壁的。有些同学在课堂里听了老师的讲课以后,回到家里就拿起笔来做习题,这时大概对以下两类习题的演算不大会感到困难:一类是用到的基本概念已经正确理解了的习题。由于正确理解了概念,解答所配的习题就比较容易,而通过习题的演算反过来...
2018-02-27 15:08:23
306
原创 UE4编辑器ToolBar扩展
问题描述: Sequencer工具栏上后增加定制按钮,如图所示:红框按钮后新增定制按钮。寻找解决办法:商城上有一个插件是Substance Source,安装上之后可以看到如下界面:跟我们的需求一致,那么就看下它是如何实现的。virtual void StartupModule() override{ ... //Creates the button above the scene ...
2018-02-26 12:16:30
4568
原创 UEViewer工具的使用
UEViewer是什么?UEViewer全称是Unreal Engine Resource Viewer,是一款可以查看以及提取市面上使用虚幻引擎(各个版本)制作的游戏的资源的程序。该程序和作者的官方地址:http://www.gildor.org/程序源码:https://github.com/gildor2/UModel 如何提取?双击UModel.exe进入开始界面,
2018-02-06 18:51:50
6405
原创 UE4 取消按键状态的办法
问题描述: 在角色行走的过程中(由方向键控制),触发了某些机制,角色不再受玩家控制(比如触发了简单的对话,需要设置下角色位置然后站立等)等在对话完成返回后,发现角色一直在行走,即使你没有按任何的按键。问题原因: 触发某些机制后,输入控制转交给了UI系统或者其他系统,角色本身的输入系统没有收到原来的KeyReleased的消息,等到控制权回到角色的时候,由于行走的按钮状态仍然处于KeyDown的
2018-02-05 11:24:49
4075
原创 从零开始写渲染Step1窗口的创建和显示
写这个系列两个目的:1. 从头开始熟悉3d游戏渲染的流程,并且对于学到的3d方面的知识可以做练习。2. 学习Git以及SourceTree的使用。纸上得来终觉浅,绝知此事要躬行!!!程序代码主要是韦易笑的Mini3d为基础。Github链接:https://github.com/skywind3000/mini3d知乎上有这方面的讨论:https://www.zhihu.com
2018-01-23 01:01:58
307
原创 UE4导入CSV的时候选择不同的Type要求CSV数据格式也不同
1. 导入Type为Float Curve的时候,CSV数据格式如下:1,112,223,33生成的曲线图(生成Float Curve数据)如下:X轴上分别是1,2,3,对应的Value分别是11,22,332. 导入Type为Vector Curve的时候,CSV数据格式如下:1,11,111,11112,22,222,22223,33,333,3333生
2017-11-03 19:19:05
981
原创 程序启动时自动选择独显
代码摘于虚幻4引擎代码LaunchWindows.cpp// http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf// The following line is to favor the high performance NVIDIA GP
2017-10-14 20:12:58
1571
原创 UE4 仿巫师小地图功能实现
商城里大多实现是头顶放摄像机,RenderTarget 和 利用paper2d来实现,这种实现方法有点low而且低效,并且在二层楼或者房屋内无法使用。我的实现主要是利用了Render Target和 BeginDrawCanvasToRenderTarget的办法。其实很简单,直接看代码吧。
2017-10-14 20:10:19
1806
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人