自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山中传奇工作室

做深度的数字孪生技术研究

  • 博客(24)
  • 收藏
  • 关注

原创 关于独立程序中LineTraceSingleByObjectType失败问题解决方案

一、应用需求在数字孪生应用桌面中要实现Mesh的中和自由编辑,需要通过LineTraceSingleByObjectType随时选中场景中的任意动态Mesh.二、问题在PIE模式下通过可以通过LineTraceSingleByObjectType,鼠标可以拾取场景中任意绘制的Mesh,然而在独立程序中所有新绘制的对象都无法拾取,LineTraceSingleByObjectType返回空三、分析1、检查Mesh的碰撞设置(CollisionChannel),如下:D...

2022-02-08 17:33:55 590

原创 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 526

转载 UE4 C++填坑系列之Standalone Program加载Niagara插件材质丢失解决方案

最近两天用到Niagara做粒子效果,然后就发现遇到各种坑,下面简单跟大家分享下我遇到的坑及填坑方案,供大家参考:首先说下三大坑:1.源码版Engine,Niagara粒子效果无论是在Editor还是在Program都无法显示;2.解决坑一之后,会发现Niagara能显示了,但是材质丢失;3.坑三是解决坑二时遇到的一个问题:Program修改了插件描述文件后,不起作用,读不到……下面分别说下解决思路:坑一:同一台电脑,我测试了引擎版和源码版,引擎版本新建关卡,添加Niagar

2021-12-03 19:06:52 1772

转载 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 415

原创 DCR命令传输框架设计

一、问题提出 基于虚幻引擎开发数字孪生城市平台,需要定制开发开放的、持续进化的二次开发接口,我们可能面临的开发效率、系统稳定性的挑战需要我们认真考虑以下几个方面的问题: 1、如何避免底层对象、函数修改后开发人员花大量时间维护、反复修改接口映射逻辑 对于接口映射,最简单的逻辑就是通过具有“掌控一切”的“上帝之手”来控制所有的调用过程,这种实现的逻辑对于小型系统来说还是可以接受的,但对于相对较大的系统其灾难性是显而易见的。可以设想如果系统有成百上千个接口,映射到底...

2021-11-03 15:30:38 230

原创 CallFunctionByNameWithArguments支持返回值获取

山中传奇工作室 | 上线了sxl.cnhttps://ctms.mysxl.cn/ ue4中C++与l蓝图交互或外部程序基于字符串调用UObject派生类函数时会常用到CallFunctionByNameWithArguments函数,调用时一个比较麻烦的问题时调用完了无法获取返回值,主要原因是该函数在调用ProcessEvent函数时,并没对函数调用返回值进行处理,而是直接忽略掉了,而实际上该函数中完全可以获得函数的返回值。 // Call native func...

2021-10-31 21:30:52 847

转载 UE4数字孪生 OD线开发浅析

文章转自(山中传奇工作室):UE4数字孪生 OD线开发浅析 - 知乎啦啦啦,我又来啦~这次为大家带来UE4中OD线的开发流程讲解: 支持功能:支持基线(绿色那条线)的半径控制、颜色、亮度控制支持流动物(玫红色粒子)的大小和颜色控制(本省自带发光)支持OD流动速率的控制支持自…https://zhuanlan.zhihu.com/p/423539801啦啦啦,我又来啦~这次为大家带来UE4中OD线的开发流程讲解:OD流动效果支持功能:支持基线(绿色那条线)的半径控制、颜色、亮度控制

2021-10-20 19:07:12 1100

转载 UE4 蓝图与C++交互 UserWidget

1.C++声明函数,蓝图实现该函数,C++调用  首先,在C++类中声明一个方法,使用BlueprintImplementableEvent标识该方法为蓝图实现事件; /*此函数可以在蓝图或关卡蓝图图表内进行重载*/ UFUNCTION(BlueprintImplementableEvent, Category="SplineMesh") void PrintMessage(const FString &Message)  其次,新建一个蓝图继承此类,并重载Pri

2021-10-19 15:24:19 1882

原创 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 1317

原创 UE4开发踩坑记录

1、APawn对象旋转控制不能直接用SetActorRotation,而应该用APlayerController* PlayerController = UGameplayStatics::GetPlayerController(this, 0); if (PlayerController) { PlayerController->SetControlRotation(CurRot); }否则APlaye...

2021-09-27 16:42:07 530 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 1253

原创 在打包项目时出现!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 2656

原创 UE4中鼠标键盘事件响应解析

1、如何屏蔽掉输入“~”时,调出控制台ConsoleCommand方法一、ProjectSetting设置方法二、修改代码可见UE4是FSLateApplication,到FSceneViewport,再导UGameViewportClient,到APlayer来传到键盘事件的,关键是找到事件响应的关键逻辑:在bool UGameViewportClient::InputKey(const FInputKeyEventArgs& EventArgs),有如下判断//.

2021-08-03 01:21:15 2900

原创 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 710

原创 虚幻引擎(UE4)中Viewport的解析

在调试UE4代码时往往看到SViewport、FViewport、FViewportClient、FSceneViewport这一大堆viewport相关的类会感到tou'yun'nao

2021-06-11 20:45:37 4854 3

原创 UE4跨平台窗体创建过程源码解析

E:\UnrealEngine426\Engine\Source\Runtime\ApplicationCore\Public\HoloLens\HoloLensPlatformApplicationMisc.h

2021-06-10 14:35:02 849

原创 ue4 development game初始化全局着色库所需的游戏文件缺失解决办法

在ue4中Development模式(通过UnrealVS 设置调试UE4 参数为游戏名 -Game -Debug -skipcomplie)下调试游戏程序很可能会遇到全局着色库问题,主要原因是Development模式下需要对youx

2021-06-06 23:29:35 5822 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 1173 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 1360

原创 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 4681 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 1524 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 886

原创 怎样将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 6023 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 1290

空空如也

空空如也

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

TA关注的人

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