自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TurboQ珞珈

珞珈大胖强的每天学习经验,希望能帮助大家哟

  • 博客(119)
  • 资源 (6)
  • 收藏
  • 关注

原创 Unity吃豆人敌人BFS广度(宽度)优先算法实现怪物追踪玩家寻路

Unity怪物巡逻BFS

2020-06-04 20:59:37 3022 5

原创 UE 动画系统框架源码解析

上篇文章讲了很多动画系统的功能,可以看到很多功能不管中间在做什么,最终的目的都是让游戏中的模型动起来,模型动起来在UE中的核心其实就是模型的骨骼位置旋转缩放,可以统称为Transform,在每一帧中处于不同的位置,然后在游戏世界中,随着每一帧,根据每一帧骨骼的Transform信息重新绘制模型,当前其中包括布料和蒙皮,骨骼只是最核心的数据。

2023-12-24 18:43:30 1083

原创 UE 动画系统框架介绍及使用

Skeleton(骨架),是UE的一种资源内容包含骨骼位置和旋转角度,为树状结构,父骨骼将会影响子骨骼而平时我们接触到的模型,也就是骨架网格体(SkeletalMesh )中动画实际是被应用到骨架上,这而不是模型上,这样的好处是不同的模型,当骨架共用时候,可以使用同一套动画。上述在UE中的几种IK解决方案,最常用的还是TwoBoneIK,因为效率最高。当然后三种能够解决多骨骼的IK,FBIK也能更好的解决骨骼共链的问题。

2023-12-24 18:41:36 1309

原创 UE 序列化介绍及源码解析

认识访问者模式知道UE怎么序列化任意类型数据,怎么反序列化任意类型数据会定制自己的序列化类,定制自己需要的序列化方式知道怎么往本地序列化数据 如包含类型FArchive, FBitReader ,FBitWriter , FMemoryReader, FMemoryWriter , FLinkerSave, FLinkerLoad等类型或者遇到类似的代码,想知道到底是干嘛的

2023-03-28 16:03:22 1202 1

原创 UE4 Unlua源码解析12 - Lua与UE4的混合GC

UE4 Unlua源码解析12 - Lua与UE4的混合GC

2022-09-28 15:48:39 974

原创 UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理

非UE4反射支持的静态类导出给Lua使用原理

2022-09-28 15:47:11 591

原创 UE4 Unlua源码解析10 - Lua怎么替换BlueprintImplementableEvent或BlueprintNativeEvent的方法实现的

UE4 Unlua源码解析10 - Lua怎么替换BlueprintImplementableEvent或BlueprintNativeEvent的方法实现的

2022-09-28 15:43:39 462

原创 UE4 Unlua源码解析9 - 静态绑定和动态绑定的实现原理

UE4 Unlua源码解析9 - 静态绑定和动态绑定的实现原理

2022-09-28 15:42:07 1935

原创 UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理

Lua与C++之间的参数转换的实现原理

2022-09-27 19:39:11 595

原创 UE4 Unlua源码解析7 - Lua通过UE命名空间访问C++类型的实现原理

Lua通过UE命名空间访问C++类型的实现原理

2022-09-27 19:36:12 1528

原创 UE4 Unlua源码解析6 - UUnLuaManager内重要方法逐行解释

Unlua源码解析6 - UUnLuaManager内重要方法逐行解释

2022-09-27 19:30:13 641

原创 UE4 Unlua源码解析5 - FLuaContext内重要方法逐行解释

Unlua源码解析5 - FLuaContext内重要方法逐行解释

2022-09-27 19:29:01 382

原创 UE4 Unlua源码解析4 - LuaCore内重要方法逐行解释

UE4 Unlua源码解析4 - LuaCore内重要方法逐行解释

2022-09-27 16:32:46 486

原创 UE4 Unlua源码解析3 -FReflectionRegistry内重要方法逐行解释

FReflectionRegistry内重要方法逐行解释

2022-09-27 16:26:50 383

原创 UE4 Unlua源码解析2 -源码中的重要类及核心函数逐行解释

UE4 Unlua源码解析2 -源码中的重要类及核心函数逐行解释

2022-09-27 16:23:19 612

原创 UE4 Unlua源码解析1 - 读源码的前置知识

lua.h内的方法 lua和C交互的APIlua中的全局方法Lua C++ 调用机制

2022-09-26 17:40:16 955

原创 UE4 [MSB3073] 命令“X:\engine\Engine\Build\BatchFiles\Build.bat -WaitMutex -FromMsBuild”已退出,代码为 6解决

报错为Microsoft.MakeFile.targets(45, 5): [MSB3073] 命令“X:\engine\Engine\Build\BatchFiles\Build.bat -Target="CrimsonEditor Win64 Development -Project="X:\Crimson\Crimson.uproject"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBui

2022-03-29 09:42:23 7664 6

原创 Unity实现鼠标长按对象打开麦克风,鼠标松开关闭麦克风(IPointerDownHandler,IPointerUpHandler)

鼠标长按对象打开麦克风思路1 鼠标按住和松开API2 麦克风的打开和关闭API3 怎么获取麦克风权限4 程序思路只需在鼠标按住的方法中打开麦克风,在鼠标松开的方法中关闭麦克风1 鼠标按住和松开APIIPointerDownHandler接口,定义了一个方法:OnPointerDown,当使用这个接口后,在对象上按下鼠标时调用此方法IPointerUpHandler接口,定义了一个方法:OnPointerUp,当使用这个接口后,从对象上松开鼠标时调用此方法2 麦克风的打开和关闭API3

2021-11-17 23:50:55 4181

原创 Unity Error executing result=instance->m_Sound->lock()An invalid parameter was passed to this func

Error executing result报错详情GetData()方法解析错误解析解决思路解决实例总结报错详情GetData()方法解析此方法使用剪辑中的样本数据填充数组。使用 offsetSamples 参数开始从剪辑中的特定位置开始读取,读取直到填满data数组(如果从偏移开始的读取长度大于剪辑长度,则读取将环绕, 即从剪辑的开头读取剩余的样本。)错误解析该错误反馈:传递给该方法一个非法的参数。此方法共有两个参数:解决思路检查第一个参数,其可能的错误原因是没有提前用new申请一块

2021-11-15 22:41:27 3860

原创 UE4 C++入门之路7-UObject,AActor,UActorComponent,UStruct介绍,生命周期介绍

UE4 C++入门之路7-UObject,AActor,UActorComponent,UStruct介绍

2021-11-06 22:14:15 2433

原创 UE4 C++入门之路6-PostEditChangeProperty以及和PostInitProperties的区别

UE4 C++入门之路6-PostEditChangepROPITY

2021-11-06 21:10:21 5979

原创 UE4知识点合集2 - Native components are editable when declared as a FProperty警告

警告前言解释前言在做项目的时候把C++类拖到编辑器中的时候,RootComponent根组件上出现了Native components are editable when declared as a FProperty警告,本文旨在讲清楚此警告的意思-----解释Native components指的就是本地的组件,蓝图用的多的时候,蓝图是直接点击Add Component就可以添加组件的,但是在C++中是通过CreateDefaultSubobject方法创建,而且如果我们像下列代码这么写,那么这

2021-11-04 22:11:02 798

原创 UE4知识点合集1 - AttachTo更新为AttachToComponent(TransformRules参数研究)

AttachTo更新为AttachToComponent前言AttachToAttachToComponentKeepRelativeTransformKeepWorldTransformSnapToTargetNotIncludingScaleSnapToTargetIncludingScale前言这篇的初衷是因为自己在学习的时候写了 AttachTo方法,但是编译器提示了波浪线,于是定位看了下,才知道 AttachTo方法已经更新了,此文旨在讲清楚更新后的AttachToComponent的用法以及

2021-11-04 21:43:59 3525

原创 UE4 C++入门之路5-热重载Compile(编译项目的三种方式)

UE4 C++入门之路5-热重载Compile(编译项目的三种方式)UE4 自动编译 Live Coding

2021-11-04 10:40:12 4528 2

原创 UE4 C++入门之路4-PostInitProperties函数详解(设置属性默认值的四种方法)

PostInitProperties函数详解前言设置属性默认值的四种方法一 声明时赋值二 构造函数赋值三 构造函数初始化列表四 PostInitProperties前言也许在工作或者学习中,我们会遇到PostInitProperties函数,本文旨在讲清楚PostInitProperties函数的作用以及一些衍生的知识作为UE4 C++编码过程中,还是那句话,类由属性和方法组成,之前说过属性到蓝图的暴漏,那么属性的初始值一般是怎么设置的呢,构造函数是一种,其实PostInitProperties也是一

2021-11-03 21:26:01 2161

原创 UE4 C++入门之路3-C++和蓝图的互相调用

C++和蓝图的互相调用前言蓝图调用C++C++调用蓝图前言蓝图调用C++C++调用蓝图

2021-11-03 15:50:49 3004

原创 UE4 C++入门之路2-C++中的UPROPERTY宏详解

C++中的UPROPERTY详解前言Edit,VisibleBlueprintCategoryTransient前言上节中讲到了C++类的创建,那么类创建结束后,我们都知道类是属性和方法的封装,那么创建属性的时候,怎么把属性公开到编辑器呢?就像Unity中public的属性直接公开在编辑器,但是UE4中不仅有编辑器,还有蓝图,那么这些属性对于蓝图和编辑器的可见性可编辑性需要开放给C++程序员设计,由此也就出现了UPROPERTY宏,此文旨在讲解清楚UPROPERTY宏的各种属性的用法和意义----Ed

2021-11-03 15:13:27 2599 1

原创 UE4 C++入门之路1-C++和蓝图的关系和介绍

C++和蓝图的关系和对比C++和蓝图的关系创建C++工程在UE4中新建一个蓝图类在UE4中新建一个C++类C++和蓝图的关系接触过UE4的应该都听说过,UE4提供了两种方法来设计游戏,C++和蓝图可视化脚本。我看到过很多人和教程中直接用蓝图做游戏的,有的甚至效果不错,那么这两种方法到底有什么区别呢,大家应该如何选择呢?今天我尽力的来讲一下。首先我们直接从Epic设计UE4的初衷来谈,UE4的初衷其实设计的蓝图本身是给设计师使用的,C++是给C++程序员使用的,那么什么是设计师呢,其实可以想象为技术策划

2021-11-02 20:45:36 5600 2

原创 计算机图形学动画

计算机图形学动画关键帧动画物理模拟质点弹簧系统粒子系统运动学正向运动学反向动力学梯度下降解法Rigging关键帧动画animator创建关键帧助手负责补充其他帧的图片主要技术就是插值知道两个点的信息,通过插值得到中间点的信息,动画即是所有点可以是线性也可以是非线性物理模拟不管是物理模拟还是流体模拟,布料模拟,只要能建立正确的力学模型,就可以得到正确的结果质点弹簧系统一个弹簧对应两个质点,理想弹簧,拉开力与长度成正比a收到的力为(向量b-a)乘静度系数考虑弹簧本身长度考虑

2021-09-10 17:56:04 482

原创 渲染流程中有几次剔除

渲染流程中有几次剔除1 视锥体剔除2 遮挡剔除3 屏幕正面(背面)剔除4 深度剔除1 视锥体剔除Frustum Culling视锥体剔除只是不渲染摄像机视锥范围之外的物体,而被其他物体遮挡但依然在视锥范围之内的物体则不会被剔除。2 遮挡剔除Occlusion Culling遮挡剔除技术是指当一个物体被其他物体遮挡住而相对当前摄像机为不可见时,可以不对其进行渲染。要使用遮挡裁剪,首先要打开Occlusion Culling面板,在Windows->Occlusion Culling选项中。

2021-05-04 22:30:53 239

原创 Unity渲染流程(渲染管线)(渲染流水线)

Unity渲染流程(渲染管线)(渲染流水线)一 渲染的任务二 三个概念阶段三 应用阶段1 准备好需要被渲染的场景数据,做粗粒度剔除2 设置每个对象的渲染状态。3 发送DrawCall。四 几何阶段1 顶点着色器2 裁剪3 屏幕映射五 光栅化阶段1 三角形设置2 三角形遍历3 片元着色器4 逐片元操作计算机图形库的渲染命令由显卡驱动(GPU Driver)翻译成GPU(图形处理器)能识别的语言,然后GPU读取显存中由渲染命令指定的数据(draw call则是把要求GPU根据顶点数据进行绘制,SetPass

2021-05-04 22:25:46 7743 7

原创 纹理映射

纹理映射纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射(texture mapping)技术,我们可以把一张图“黏”在模型表面,逐纹素(texel)(纹素的名字是为了和像素进行区分)地控制模型的颜色。在美术人员建模的时候,通常会在建模软件中利用纹理展开技术把纹理映射坐标(texture-mapping coordinates) 存储在每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D 坐标。通常,这些坐标使用一个二维变量(u, v)来表示,其中u是横向坐标,而v是纵向坐标。因此,纹理映

2021-03-02 13:47:47 1668

原创 着色Lambert Half Lambert Phong Blinn-Phong四个模型

图形学着色定义 :把材质应用给一个物体的过程光照来源高光,漫反射,环境间接光照漫反射光线被均匀的反射到不同方向上去兰伯特定律:在平面某点漫反射光的光强与该反射点的法向量和入射光角度的余弦值成正比。入射光的强度会随着距离衰减入射光强和传播距离的平方成反比,越远光强越小漫反射=(入射光的颜色和强度 点乘 材质的漫反射系数(Kd,点会吸收多少能量,和颜色相关,比如黑吸收所有能量))×max(0,表面法线 点乘 光源方向)结果:兰伯特模型兰伯特模型=逐顶点漫反射光照模型(Unit

2021-03-01 20:17:04 631 2

原创 Unity史上最全旋转详解(Rotate,rotation,localEulerAngles,localRotation,万向节锁)

Unity史上最全旋转详解前言旋转的方法Rotate以及五种重载参数的超级详细理解Rotate(float xAngle, float yAngle, float zAngle);Unity绕轴旋转Rotate(float xAngle, float yAngle, float zAngle, [DefaultValue("Space.Self")] Space relativeTo)Rotate(Vector3 eulers)Rotate(Vector3 eulers, [DefaultValue("Sp

2020-12-05 16:53:39 21258 4

原创 Unity SetFromToRotation和FromToRotation的区别

SetFromToRotation和FromToRotation一模一样,就是一个是静态函数,一个是对象函数而已!

2020-12-05 13:33:07 2848 2

原创 算法之路-数组篇(02)存在重复元素

三种解法,遍历的方法这里不提及**1** 排序看是否有相邻元素**2** 数组内容做辅助数组下标这是我在C#中常用的技巧,但是C++vector不允许下标直接扩容,所以没有尝试过,就是把要判断是数组遍历,每个数据作为另一个数组的下标,给另一个数组这个下标的数字给个值,比如1,那么下次哪个是1,直接返回true即可,比如【1,2,1,3】,遇到第一个数组1的时候,新数组TurB【1】=1,遇到2的时候,新数组TurB【2】=1,下次遇到1的时候,因为新数组TurB【1】=1了已经,所以直接返回tru

2020-12-03 12:20:29 174

原创 算法之路-预备篇(01)STL vector详解

STL vector详解什么是vector初始化vector增加数据删除数据修改数据查询数据遍历数据在此专栏,我将给出很多算法的讲解,但之前,因为是使用C++刷题,所以提前总结一下C++的各种容器也就是数据结构的用法,因为第一部分会讲解数组,所以预备篇的第一篇我们讲解C++中刷题几乎必用的动态数组vector,话不多说,直入主题----什么是vector最简单的说明:vector是可以动态增加元素的数组,内部实现与数组很类似,不同之处就是有预存空间,可以提供动态扩充的地方,如果预留的空间也满了,就重

2020-12-03 11:54:25 210

原创 Unity心血所著专栏导航

Unity心血所著专栏导航

2020-12-02 15:50:34 412

原创 算法之路-数组篇(01)顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

2020-11-27 12:43:35 167

原创 C#入门之路03-数组

13 Sort(Array)使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。14 ToString返回一个表示当前对象的字符串。从对象(Object)继承。

2020-11-25 18:34:36 138

POLYGON - City Characters 1.1.unitypackage

Unity POLYGON模型资源,自己的分享出来,想做自己的游戏非商业用途的可以下载下来,大家如果做游戏用的上,给我点个赞谢谢啦。

2020-11-27

Unity Battle Royale Pack

Unity POLYGON模型资源,自己的分享出来,想做自己的游戏非商业用途的可以下载下来,大家如果做游戏用的上,给我点个赞谢谢啦。

2020-11-27

Unity Military Pack

Unity POLYGON模型资源,自己的分享出来,想做自己的游戏非商业用途的可以下载下来,大家如果做游戏用的上,给我点个赞谢谢啦。

2020-11-27

自己做的Unity2D小游戏

自己做的Unity2D小游戏,两个人顶球进篮筐,喜欢的支持下,哈哈哈

2020-11-20

Unity飞机大战素材包

Unity的飞机大战的素材包,包括了背景,粒子特效,飞机,和敌方战机,炮弹,谢谢支持!一起加油,成为最好的开发者

2020-11-20

Unity轮盘控制插件,即下即用

Unity的一个插件,可以之间像王者荣耀那样轮盘操作人物,还有跳跃攻击按钮,之间换贴图拖到UI就行,还会分享很多自己买的插件,谢谢大家支持

2020-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除