- 博客(44)
- 资源 (3)
- 收藏
- 关注
原创 UE 项目导航数据生成配置
如果有必要把不影响导航的组件及Actor中Collision的CanEverAffectNavigation取消勾选,可以影响Nav Tree Memory占用。该值在开启修改导航模式的情况下开启,把模型数据导出放到异步线程里去做,目前不知道对构建导航Task造不造成影响。为了优化内存占用,该值微调可以降低整个内存占用,但是过大会造成孤立的导航数据区域丢弃,所以不宜过大。相对应的是该值越低最终生成的导航数据与物体碰撞误差越小,越大误差越大。该值可以影响AI的导航攀爬,数值调整的越大,内存占用会约低。
2023-02-24 18:26:23 1256
原创 UE NavigationSystem的相关实现
ARecastNavMesh memory : DetourNavMesh中的所有瓦片结构内存总和 + 激活路径分配的内存(ActivePaths)+ 支持的区域结构分配的内存(SupportedAreas)+ 查询过滤器分配的内存(QueryFilters)+ 区域映射Map分配的内存(AreaClassToIdMap)+ 导航生成器内存占用(待处理任务数据结构大小 + 生成器结构本身大小 + 运行时任务结构大小 + 瓦片构建器分配的内存总和)当区域重叠时,这是相关的,我们也希望区域成本表达区域相关性。
2023-02-24 18:15:19 1800
原创 UE AI Perception的Sense解析
UAISenseEvent`本身更多的是充当类似于接口的功能,最关键的函数定义是`GetSenseID`,这个函数交由继承的子类负责实现,而子类会通过`UAISense::GetSenseID(UAISense_XXX)`获取全局唯一的实例SenseID,`GetSenseID`函数最终会调用`GetDefaultObject`里的SenseID,`GetSenseID`获取到的ID可以作为获取实例的索引,在感知系统中,通过传入的`UAISenseEvent`获取ID,再遍历Sense调用指定Sense的事
2022-07-08 22:08:54 850
原创 UE AI里的感知实现流程解析
UAIPerceptionComponent,UAIPerceptionSystem, UAIPerceptionStimuliSourceComponent交互逻辑
2022-07-04 14:04:53 1327
原创 UE4 4.18关于视频播放中音频播放的变动
这个问题是我请教一个UE4开发好友解决的(当然是他告诉我的,插件结构发生了变动)他的联系方式,QQ:10235336 , email: lrqsf@hotmail.com具体视频播放的变动日期不知道,但很可能在4.18.3。该变动中是视频播放的Media Sound已经不是可随同Media Player 勾选生成了,如果你想在播放视频的同时播放出声音,那么你可以新建一个Acto
2018-01-24 19:23:13 3479 2
原创 C++ 原型模式(Prototype Pattern)
看原理远没有实际应用中的模式令人恍然大悟。//PrototypePattern.h#pragma once#include using namespace std;class Root{public: virtual Root* Clone() = 0; virtual void Print() = 0;};class Tree :public Root{public
2018-01-23 10:56:09 493
原创 C++ 工厂模式(Factory Pattern)
//FactoryPattern.h#pragma once#include //base one factory pattern.enum PRODUCT { ONE, TWO, THREE, FOUR };class SimpleAbstractProduct{public: virtual void Print() = 0;};class SimpleOneAbstr
2018-01-22 16:10:08 416
原创 C++ 单例模式(Singleton Pattern)
参考文章:并发指南单例的七种写法//SingletonPattern.h#pragma once#include #include #include class FSingleton {private: static FSingleton* Instance; FSingleton() {}public: static FSingleton* GetIn
2018-01-16 16:40:21 375
原创 C++ 代理模式(Proxy Pattern)
随意写的,主要用作代码练习,防止代码生疏,敬请见谅!本意是能够写成一个多用途的代理模式,结果还是写废了,其他方面来说,没有时间重整它,有的写法是没有太大意义的。期望有点价值吧首先放一个代理模式的讲解,个人觉得写得不错,如果你是寻求代理模式的用法用途的话,值得一看:代理模式原理及实例讲解//ProxyPattern.h#pragma once#include #inc
2018-01-11 11:35:39 1132
原创 UE4 读取Non-asset型的资源
一,非资源型文件的打包拷贝: 非常重要的一环是非资源型的文件默认是不被打包拷贝的,如果你需要把这些文件随同包体一同打包,就需要额外的配置,关于这种配置的博客也有前人说过了,这里在赘述一下: 你可以通过Project Settings->Packaging找到相关配置选项。 Additional Asset Directories to Cook :这类适用于资源
2017-12-27 15:48:53 2360
原创 UE4 用FFastXml解析Xml
解析文件的引用:FFastXml存在于Runtime/XmlParser/Public/FastXml.h头文件中API Document中关于FFastXml的用法说的还是很清楚的,因此,本篇之简要说明一下基本使用规则:首先,你必须实现IFastXmlCallback接口,事实上,你的主要操作就在这个接口提供的5个接口函数中。基于此,继承IFastXmlCallback接口
2017-12-21 11:13:02 1118 2
原创 UE4 C++编程常用知识点总结
1,给角色添加组件: UCameraComponent* Camera = CreateDefaultSubobjectUCameraComponent>(TEXT("Camera0"));2,字符串组合(蓝图中组合字符串): BuildString, string +int/float/Object/vector2/boolean……+ string3.将属性公开到
2017-12-07 10:46:27 6349 1
原创 UE4 Pak加载
Overview: 本篇主要说明两点内容:一,Pak正确加载的源码内容及遇到的bug所在;二,Pak的生成问题。如果你看到此篇,说明你有可能需要这些文档:风蚀之月的UnrealPak使用笔记:http://blog.ch-wind.com/unrealpak-note/UE4 PAK加载资源:http://blog.csdn.net/u014532636/article/detail
2017-11-15 13:52:46 7864 6
原创 UE4 补丁更新(基于Http)
写在前面:本篇博客,算是我个人整理并亲自实现整个流程的吧,也就厚着脸说是原创了(尽管东拼西凑,实现了具体功能),具体本篇具体引用了谁的源码,亦有说明,关于文件服务器的配置也是烂大街的,就不再赘述了。1, 文件服务器的搭建:网上有各种各样的文件服务器,不可能罗列出所有(个人偏重于IIS和Tomcat),这里使用Apache Tomcat(版本7.0.82):首先下载tomcat,链接地
2017-11-03 20:23:17 5695 2
原创 UE4 IOS打包详解
写在前面:因为是详解,所以可能写的有可能啰嗦,也有可能有些步骤是你经历过的,那么请忽略它,向下寻找可能的答案,如果没能解决你的问题,那么对此感到很抱歉,没能帮到你,欢迎你给我邮件: bluecode66@yahoo.com,希望此文章能让你一站到底的打出包!(本例以IPA包为说明对象,支持IPad和iPhone),并且你是单纯的Blueprint项目,那么你是不需要看太多IOS端编译的内容,只...
2017-10-20 22:22:34 15515 5
原创 Paint in 3D 基本使用方法(Unity 3D)
不涉及Paint in 3D使用说明书中的内容,比如:给预要绘制图形的物体添加碰撞体,添加可绘制脚本,添加画笔管理器。本文内容包括: Paint in 3D的目标物体的绘画内容更新,清除参数Texture模板参数等首先的需求:你想要清除画笔内容,清除Paint in 3D 默认生成的Texture内容,更新Texture步骤处理:首先获取挂载P3D_Paintable脚本的组件,并
2017-09-25 11:09:08 4559 1
原创 Unity3D 打包后UI失效(FindGameObjectsWithTag)
新做一个项目,由于脚本中声明了太多的公开变量,觉得看上去不舒服,于是通过GameObject.FindGameObjectsWithTag("")的方式获取实例资源,玩玩没想到竟然引火烧身。起初在PC端,代码运行是正常的,但是经过打包后,在Android移动平台下却无法正常运行,做了许多猜测,最终才定位到万恶的GameObject.FindGameObjectsWithTag("")身上。
2017-09-11 22:24:48 7441 1
原创 C++ 观察者模式 (Oberver Pattern)
由于是个人练习用的,而且时间仓促,没有想好后再来写,尽请见谅!//UtilTool.h#pragma once#include #include #include using namespace std;//Event.h#pragma once#include "UtilTool.h"enum EVENT_STATE{ EAWAKE =
2017-09-01 02:08:45 407
原创 C++ 享元模式 (FlyWeight Pattern)
//UtilTool.h//工具头文件#pragma once#include #include #include using namespace std;//UObject.h//根基类,本想多写一些东西的,奈何时间不允许#include "UtilTool.h"class UObject{public : UObject(string na
2017-08-30 00:11:52 450
原创 C++ 命令行模式(Command Pattern)
头文件相关:// AActor.h//TODO 事实上,可以把AActor做成抽象类的,把具体的实现下发到子类中去,把AActor作为一个接口,个人只是为了练习,也就随便写写了class AActor{public: AActor(); ~AActor(); virtual bool Jump(); virtual bool Run();
2017-08-28 19:53:18 994
原创 Vuforia PlayBack视频自动播放(声音播放中,但显示等待,没有渲染视频)
在做一个Vuforia的Demo,其中关于视频播放一直出问题,因为需要自动播放,然而当前状态下视频处于Playing状态,但没有画面,只有一个Loading加载界面,且声音在播放当中。 而且我在代码中平凡用到了SetActive这个函数,结果一直不工作。 处理办法: 把关于视频播放的Video中的VideoPlaybackBehaviour中的自动播放勾选上, 然后剔除掉所有关于Video的
2017-08-28 14:17:57 976
原创 用C++写Leap Motion程序相关配置注意问题(VS2017)
写在前面:用该贴实例的请先配置Leap Motion SDK的系统环境变量($LEAP_SDK,你的Leap Motion SDK 所在目录,该步骤不是必须的,Leap Motion 官方也是这样的说法,不过确实能够 简便你以后的项目配置)。 1,首先检查你的项目配置,确保和以后的链接文件路径匹配(黄色部分): 因为我个人只使用了Debug x64 进行测试,所以只按该平台进行了配置,
2017-07-03 11:45:06 1916
翻译 创建一个项目
这篇文章讨论了怎样通过命令行或者一些流行的集成开发工具创建并且编译C++项目编译器和开发库 在windows系统下,你可以使用VS2008,2010,或者 2012中的Visual C++编译器来编译代码,在 OS X和Linux 系统下,你可以使用gcc 或者 clang编译器编译代码 在windows系统下,Leap Motion通过动态链接库Leap.dll提供C++ API。并且分为32
2017-06-30 16:09:56 510
原创 UE4 蓝图获取LeapMotion Grab Strength 判断是否握拳(Grab Strength)抓取
在Leap Motion的Leap Event Interface 事件中有一个 Leap HandReleased 事件通过该事件是无法精确的判定握拳释放的,因为会造成误差, 比如说:通过握拳晃动时,它的Strength值大多数情况下在0.8-0.9范围内。通过该事件响应操作便会不精确。通常情况下,我们只需要两种状态: 握拳事件Strength值为:1;非握拳状态的值为:0。 所以,我们需要
2017-06-30 13:51:56 2908
原创 Leap Left Grab和 Event hand Grabbed
当前用UE4在做一个LeapMotion的交互功能,使用了插件包中的LeapMotionFloatingCharacter这个Character,在github中的插件使用文档中是这样的: 1,在这个项目中首先要实现LeapEventInterface接口; 2,添加LeapMotion的LeapController or (创建一个LeapController 类型的引用变量,然后在Begin
2017-06-28 17:44:59 833 1
原创 Leap Motion(JS)控制(提高事件判定精准度)
1,Bone下left()函数可以用来判定当前是哪一个手掌在进行控制,通过left来过滤左手和右手的消息 2,Pointable: touchZone:返回字符串(String)“touching”“hovering”用来判定触碰点击事件可以混用缩小事件范围 tipVelocity : 顶端位置变化的速率mm/s 通过该属性来分离快慢动作,是一个不错的选择 3,Hand:
2017-05-16 17:41:07 2015
原创 UE4 打包常规步骤
1,打包的常规配置项: 1,依次打开“文件-》打包项目-》打包设置”; 2,取消勾选“项目-》打包”中Packaging 中的Include Prerequisites选项 3,添加勾选“项目-》打包”中的Packaging中的Cook only maps选项 4,添加烘焙map,"项目-》打包"中的Packing中的List of maps to include in a packaged
2017-05-05 11:29:54 31663 1
原创 **UE4 插件编译及使用的问题**
这些天遇到个项目打包问题,怎么也编译不过,最终把问题发给前辈才得以解决(姜还是老的辣,散花……) 当前项目中因为要打包development版本,所以插件使用中出现了些问题: 1,不到静态链接库(link时没有找到插件的静态链接库) 因为在项目中Editor模式下(默认,可以在Editor中依次打开“文件->打包项目->编译设置->发行or开发or调试”来选择编译类型)编译使用
2017-05-05 11:24:59 8056
原创 0x00D83DDA 处有未经处理的异常(在 DXFont.exe 中): 0xC000041D: 用户回调期间遇到未经处理的异常
0x00D83DDA 处有未经处理的异常(在 DXFont.exe 中): 0xC000041D: 用户回调期间遇到未经处理的异常
2016-05-16 20:55:56 14930
原创 D3D中SetTransform(D3DTS_VIEW)出现 0xC0000005: 读取位置 0x00000000 时发生访问冲突
D3D中SetTransform(D3DTS_VIEW)出现 0xC0000005: 读取位置 0x00000000 时发生访问冲突
2016-05-13 12:43:14 1211
原创 string及vector核心相关知识
String定义及初始化: string a="hello world!";//拷贝初始化 string b("hello world!");//直接初始化 string c(10,'c');//直接初始化,c的内容是ccccccccccstring 操作: getline(is,s);//从is中读取一行赋给s,返回is s.
2016-03-25 11:51:06 400
原创 类型别名定义及auto类型说明符
两种别名定义方式: typedef 定义方式:typedef double money; using 定义方式:using money=double;(C++ 11特性)auto 类型说明符(C++ 11特性): auto让编译器通过初始值来推算变量的类型,auto 定义的变量必须有初始值: auto item=val1+val2;//item
2016-03-25 10:39:30 405
原创 const关键字核心相关知识及decltype类型指示符
1,如果利用一个变量去初始化另一个变量,它们是不是const都无关紧要2,默认状态下,const对象仅在文件内有效,如果想在多个文件之间共享const对象必须在变量的定义之前添加extern关键字,例如: // file.cpp extern const int ibufSize = 3;//定义并初始化了一个常量,该常量能被其他文件访问
2016-03-25 10:10:11 691
原创 VS连接MySQL·:Unable to connect to any of the specified MySQL hosts(VS连接MySQL出错)
数据库连接是一个容易出错的问题,至少对于类似于我这个新手而言
2015-11-29 19:52:30 45483 7
原创 error C2677: binary '-' : no global operator defined which takes type 'class CString' (or there is n
下面为MFC中加入的OnPaint()的代码:CPaintDC dc(this);CRect rectWnd;CString cstrText;UINT uFormat;GetWindowText(cstrText);dc.SelectObject(GetFont());CSize size=dc.GetTextExtent(cstrText);DWORD dwSt
2014-12-01 15:48:35 5298
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人