- 博客(24)
- 收藏
- 关注
原创 关于独立程序中LineTraceSingleByObjectType失败问题解决方案
一、应用需求在数字孪生应用桌面中要实现Mesh的中和自由编辑,需要通过LineTraceSingleByObjectType随时选中场景中的任意动态Mesh.二、问题在PIE模式下通过可以通过LineTraceSingleByObjectType,鼠标可以拾取场景中任意绘制的Mesh,然而在独立程序中所有新绘制的对象都无法拾取,LineTraceSingleByObjectType返回空三、分析1、检查Mesh的碰撞设置(CollisionChannel),如下:D...
2022-02-08 17:33:55
649
原创 Mesh对象在世界中拾取和阴影显示配置方法
一、关于阴影设置如果Mesh选取透明材质,可以通过材质的Cast Ray Trace Shadow选项打开关闭阴影如果非透明材质,可以通过Mesh的SetCastShadow方法设置Mesh是否产生阴影二、鼠标获取世界中的投射点或拾取对象可以通过如下代码: FVector RayStart = ClickPos.WorldRay.Origin; FVector RayEnd = ClickPos.WorldRay.PointAt(999999); FColl...
2021-12-30 20:54:39
560
转载 UE4 C++填坑系列之Standalone Program加载Niagara插件材质丢失解决方案
最近两天用到Niagara做粒子效果,然后就发现遇到各种坑,下面简单跟大家分享下我遇到的坑及填坑方案,供大家参考:首先说下三大坑:1.源码版Engine,Niagara粒子效果无论是在Editor还是在Program都无法显示;2.解决坑一之后,会发现Niagara能显示了,但是材质丢失;3.坑三是解决坑二时遇到的一个问题:Program修改了插件描述文件后,不起作用,读不到……下面分别说下解决思路:坑一:同一台电脑,我测试了引擎版和源码版,引擎版本新建关卡,添加Niagar
2021-12-03 19:06:52
1929
转载 C++获取蓝图定义枚举类型相关问的解决方案
对于C++定义的Enum类型,可以使用以下代码:constUEnum* EnumPtr = FindObject<UEnum>(ANY_PACKAGE,TEXT("Your_Enum_Name"), true);来获取UEnum指针,这里的ANY_PACKAGE参数,也可以是自己确定的某一个UPackage指针但对于在蓝图中定义的枚举类型,使用上述代码,返回的却是空指针,即获取失败了,通过深入跟踪UE源码,调用上述代码时候,发现其已经获取到UObject了,却返回来一个空...
2021-11-11 19:38:39
465
原创 DCR命令传输框架设计
一、问题提出 基于虚幻引擎开发数字孪生城市平台,需要定制开发开放的、持续进化的二次开发接口,我们可能面临的开发效率、系统稳定性的挑战需要我们认真考虑以下几个方面的问题: 1、如何避免底层对象、函数修改后开发人员花大量时间维护、反复修改接口映射逻辑 对于接口映射,最简单的逻辑就是通过具有“掌控一切”的“上帝之手”来控制所有的调用过程,这种实现的逻辑对于小型系统来说还是可以接受的,但对于相对较大的系统其灾难性是显而易见的。可以设想如果系统有成百上千个接口,映射到底...
2021-11-03 15:30:38
269
原创 CallFunctionByNameWithArguments支持返回值获取
山中传奇工作室 | 上线了sxl.cnhttps://ctms.mysxl.cn/ ue4中C++与l蓝图交互或外部程序基于字符串调用UObject派生类函数时会常用到CallFunctionByNameWithArguments函数,调用时一个比较麻烦的问题时调用完了无法获取返回值,主要原因是该函数在调用ProcessEvent函数时,并没对函数调用返回值进行处理,而是直接忽略掉了,而实际上该函数中完全可以获得函数的返回值。 // Call native func...
2021-10-31 21:30:52
928
转载 UE4数字孪生 OD线开发浅析
文章转自(山中传奇工作室):UE4数字孪生 OD线开发浅析 - 知乎啦啦啦,我又来啦~这次为大家带来UE4中OD线的开发流程讲解: 支持功能:支持基线(绿色那条线)的半径控制、颜色、亮度控制支持流动物(玫红色粒子)的大小和颜色控制(本省自带发光)支持OD流动速率的控制支持自…https://zhuanlan.zhihu.com/p/423539801啦啦啦,我又来啦~这次为大家带来UE4中OD线的开发流程讲解:OD流动效果支持功能:支持基线(绿色那条线)的半径控制、颜色、亮度控制
2021-10-20 19:07:12
1206
转载 UE4 蓝图与C++交互 UserWidget
1.C++声明函数,蓝图实现该函数,C++调用 首先,在C++类中声明一个方法,使用BlueprintImplementableEvent标识该方法为蓝图实现事件; /*此函数可以在蓝图或关卡蓝图图表内进行重载*/ UFUNCTION(BlueprintImplementableEvent, Category="SplineMesh") void PrintMessage(const FString &Message) 其次,新建一个蓝图继承此类,并重载Pri
2021-10-19 15:24:19
2008
原创 UE4 InteractiveToolsFramework研究
目录一、框架总体结构1) 交互框架(InteractiveToolsFramework)2)工具系统(Tools, ToolBuilders, ToolManager)3)输入接口(Input Behavior System)4)小部件(Gizmos)5)对象管理(SceneObjectsManager)二、总体工作流程三、编辑工具绘制开发三维图形工具软件,开发者往往需要在Runtime模式下进行几何对象的交互编辑,如果完全从头开发难度非常巨大,我们可以通过UE4.26提
2021-10-07 01:12:13
1503
原创 UE4开发踩坑记录
1、APawn对象旋转控制不能直接用SetActorRotation,而应该用APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); if (PlayerController) { PlayerController->SetControlRotation(CurRot); }否则APlaye...
2021-09-27 16:42:07
611
1
原创 UE4 Module加载流程
在UE4中可运行程序(EXE)引用Module可以通过动态调用和静态引用两种方式,这通过当前应用程序工程的目标编译选项决定,即由*.target.cs中的LinkType决定。1)LinkType = TargetLinkType.Monolithic时,编译采用实现包含或者静态链接等方式,不同模块中的代码编译后链接到一个单独的可执行文件中(可执行文件相对会比较大),程序运行时不依赖其他 Module 的 DLL,此处对应在项目代码中S_MONOLITHIC宏的值为true应用系统通过FModu..
2021-09-17 00:20:15
1374
原创 在打包项目时出现!FindPin错误的解决办法
打包时提示如下错误:PackagingResults: Error: Ensure condition failed: !FindPin(FFunctionEntryHelper::GetWorldContextPinName()) 【File:E:/UnrealEngine426/Engine/Source/Editor/BlueprintGraph/Private/K2Node_FunctionEntry.cpp】 【Line: 364】原因是蓝图函数引用了WorldContext作为输入参
2021-08-19 17:22:05
2920
原创 UE4中鼠标键盘事件响应解析
1、如何屏蔽掉输入“~”时,调出控制台ConsoleCommand方法一、ProjectSetting设置方法二、修改代码可见UE4是FSLateApplication,到FSceneViewport,再导UGameViewportClient,到APlayer来传到键盘事件的,关键是找到事件响应的关键逻辑:在bool UGameViewportClient::InputKey(const FInputKeyEventArgs& EventArgs),有如下判断//.
2021-08-03 01:21:15
3044
原创 UE4中为SWindow添加OnSize事件
UE4代码比较奇怪的是SWindow可以支持OnWindowMoved事件,却不支持OnWindowResized事件,想要在窗口大小变化,而为之不变时时进行界面布局处理就很受限当然也可以通过GameViewPort的大小变化绕道实现,不过也会存在问题,比如GameViewport本身不随窗口变化而变化,只好亲自动手加上事件。首先,在SWindow.h中添加事件代理/** Notification that a window has been resized */DECLARE_DEL
2021-07-23 22:32:59
803
原创 虚幻引擎(UE4)中Viewport的解析
在调试UE4代码时往往看到SViewport、FViewport、FViewportClient、FSceneViewport这一大堆viewport相关的类会感到tou'yun'nao
2021-06-11 20:45:37
5388
3
原创 UE4跨平台窗体创建过程源码解析
E:\UnrealEngine426\Engine\Source\Runtime\ApplicationCore\Public\HoloLens\HoloLensPlatformApplicationMisc.h
2021-06-10 14:35:02
914
原创 ue4 development game初始化全局着色库所需的游戏文件缺失解决办法
在ue4中Development模式(通过UnrealVS 设置调试UE4 参数为游戏名 -Game -Debug -skipcomplie)下调试游戏程序很可能会遇到全局着色库问题,主要原因是Development模式下需要对youx
2021-06-06 23:29:35
7450
2
原创 Ue4编译不剥离引擎代码的独立程序
最近基于UE4源码开发独立程序,踩了不少坑。1、模块之间的依赖关系2、编译选项3、编译生成文件名因为ue4编译的Configuration有n多种: Debug This configuration contains symbols for debugging. This configuration builds both engine and game code in debug configuration. If you compile ...
2021-05-21 22:30:25
1290
1
原创 ue4.26 debug版源码编译问题解决
ue4.26源码在编译debug版时出现了很多第三方库lib文件链接错误,如下:amd_ags_x64_2017_MD.lib(AGSMain.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(SharedPCH.Engine.ShadowErrors.h.obj 中)1>amd_ags_x64_2017_MD.lib(AGSMain.obj) : error LNK2038: 检测到“RuntimeLibrar
2021-05-19 03:17:43
1442
原创 Ue4升级chrome内核
1、下载Chromium Embedded Framework (CEF)二进制包选择windows 64bit:https://cef-builds.spotifycdn.com/index.html#windows64下载后将库复制到\Source\ThirdParty\CEF3目录,并按如下方式改名cef_binary_89.0.17.ge7bbb1d_windows642、修改\Source\ThirdParty\CEF3\CEF3.build.cspublic CEF3(Rea
2021-04-05 23:35:10
5022
1
原创 Window10下VS2019编译 Chromium
按照官方的操作说明(https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md#markdown-header-windows-setup)编译会出现不少问题1、首先如果安装的是版本的(Python 3.0以上),在调用(create.bat)生成工程会有一个接口报错,编译会被阻塞unicode("", "utf-8")这个函数在python 3.0版本已经被废除了,因此需要切换道python 2.7才能编译通过,
2021-03-31 13:05:19
1652
4
原创 Deck.gl 中着色器属性(attribute)更新原理
问题1:Deck.gl中vertex-shader中的attribute数据是如何通过layer.props更新的?问题2:layer的props中函数型accessor是如何传入到vertex-shader中的?首先,这两个问题并不太容易理解。第一个问题的背景如下:Deck.lg很多图层(Layer)绘制是通过将几何对象的坐标通过attribute传入到vertex-shader中,比如ArcLayer的shader片段如下:exportdefault`\#defineS...
2020-07-15 02:12:07
947
原创 怎样将ES6 bare module引入到本地程序中,3DTilesRendererJS集成问题解决方案探索
最近想要将NASA的3DTile的解析渲染代码集成到自己的程序中,在github中clone了git+https://github.com/NASA-AMMOS/3DTilesRendererJS.git相关代码在运行其示范代码时却出现以下问题:“Uncaught SyntaxError: Cannot use import statement outside a module”因为引用文件引入了class,这是ES6中module中定义的概念,需要在script中加入type=“mod..
2020-06-22 08:57:24
6084
2
原创 mapbox GL源码编译运行实操记录
1、基础环境安装1)GIT环境搭建:2)Node.JS环境搭建:————————————————————————————————————————————————————————1.Node.js 是运行在服务端的 JavaScript;2.Node.js 是一个基于Chrome JavaScript运行时建立的一个平台。3.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。——————
2020-05-21 18:32:16
1412
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人