【UE4 C++】根据指定路径生成静态网格体

这篇具有很好参考价值的文章主要介绍了【UE4 C++】根据指定路径生成静态网格体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上一篇博客中(【UE C++】蓝图调用C++函数),我们用C++创建了一个蓝图函数库,本篇文章在这个蓝图函数库基础上增加一个方法,该方法只需输入一个文件目录路径,就可在场景中生成该目录下得所有静态网格体。(如果不想写C++的话,可以用这篇文章的方法:UE4 | BP | 使用蓝图获取Uasset资源_ue4 蓝图加载uasset资产)

在.cpp文件中增加如下代码:

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

TArray<UObject*> UMyBlueprintFunctionLibrary::FindOrLoadAssetsByPath(const FString& FilePath)
{
	TArray<UObject*> LoadedObjects;

	EngineUtils::FindOrLoadAssetsByPath(FilePath, LoadedObjects, EngineUtils::ATL_Regular);
	return LoadedObjects;
}

 在.h文件中添加如下代码:

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

UFUNCTION(BlueprintCallable, Category="LibraryFunction")
	static TArray<UObject*> FindOrLoadAssetsByPath(const FString& FilePath);

编译后,打开虚幻编辑器,新建一个父类为Actor的蓝图类,这里命名为“BP_CreateStaticMesh”

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 打开“BP_CreateStaticMesh”,添加一个静态网格体组件

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 添加一个变量,这里命名为“Mesh”

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

“Mesh”变量的变量类型是静态网格体的对象引用。勾选可编辑实例、生成时公开

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 在构造函数中添加如下节点,这样在“BP_CreateStaticMesh”生成时,就能根据传入给Mesh的模型来生成静态网格体

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 再新建一个Actor蓝图,这里命名为“BP_CreateStaticMeshByPath”

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 打开“BP_CreateStaticMeshByPath”,在事件图表中添加如下节点

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 如下是我静态网格体的存放路径

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

将“BP_CreateStaticMeshByPath”拖入视口

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 运行游戏可以看到生成了静态网格体

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

有时候用户想自己改变这个静态网格体,该如何做?我目前进展是:

首先打包设置中,取消勾选“使用Pak文件”,这样打包后Content文件夹中就不再仅是一个.pak文件,而是和打包前工程目录中的Content文件夹一样。

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 打包后,比如我删除了“Key”这个文件夹,场景中确实不会出现对应的静态网格体,还原后也还是能生成之前的静态网格体。

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

 但是让人头大的是打包后的模型不再是FBX或是obj之类的模型,而是变成了.uasset格式文件,这样用户就不能直接向文件夹中导入一个3D模型让引擎调用。

我特地搜了一下如何将FBX转.uasset格式文件,例如:[UE4 convert .fbx to .uasset commandlet] - #7 by nyudeb - Pipeline & Plugins - Epic Developer Community Forums

,但是即使生成了.uasset文件还是不行,我将.uexp文件删除后,打包后的exe就无法运行并且弹出报错的窗口。

【UE4 C++】根据指定路径生成静态网格体,# 虚幻4 C++,ue4,c++

如果路过的大佬有什么见解,还希望在评论区指点一下,谢谢~

相关文章

【UE】在游戏运行时,通过选择uasset来生成静态网格体-CSDN博客

参考文章

1. UE4 根据文件夹路径生成文件夹下的所有静态网格体(蓝图)_ue4将静态网格体转换成蓝图

2. UE4 替换打包后的项目资源 - 知乎

3. UE4 | BP | 使用蓝图获取Uasset资源_ue4 蓝图加载uasset资产文章来源地址https://www.toymoban.com/news/detail-552908.html

到了这里,关于【UE4 C++】根据指定路径生成静态网格体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ue4中使用c++实现自定义网格体

    有两个类可以在ue4中实现自定义网格体,分别是UCustomMeshComponent和UProceduralMeshComponent,实现的方法都是构建三角形以实现不同的网格体。 网上的教程以蓝图为主,但我想用c++实现。 我找到了一篇用UProceduralMeshComponent实现的博客,链接如下:https://blog.csdn.net/yb0022/article/details

    2024年02月07日
    浏览(43)
  • 【程序员必备】UE4 C++ 虚幻引擎:详解JSON文件读、写、解析,打造高效开发!

    🙋‍♂️ 作者:海码007 📜 专栏:UE虚幻引擎专栏 💥 标题:【程序员必备】UE4 C++ 虚幻引擎:详解JSON文件读、写、解析,打造高效开发! ❣️ 寄语:人生的意义或许可以发挥自己全部的潜力,所以加油吧! 🎈 最后: 文章作者技术和水平有限,如果文中出现错误,希望大

    2024年02月03日
    浏览(57)
  • UE4:使用样条生成随机路径,并使物体沿着路径行走

    参考自:样条函数 - 馒头and花卷 - 博客园 三次样条(cubic spline)插值 - 知乎 B-Spline(三)样条曲线的性质 - Fun With GeometryFun With Geometry 个人理解的也不是非常深,但是大概要知道的就是样条具有局部特性,每一个区间的曲线只与该区间两端端点的位置和斜率有关。 参考自:ue4

    2023年04月26日
    浏览(49)
  • 想从事UE4开发相关工作,C++学到什么程度可以开始学习针对虚幻4的编程开发呢?

    想从事UE4开发相关工作,C++是一个必须要熟练掌握的语言。在学习C++过程中,需要掌握语法、面向对象编程、数据结构和算法等内容,这些都是开发UE4所需要的基础。 在掌握了C++基础之后,可以先从UE4的官方文档开始学习UE4的基础知识和概念。在这里,我们可以了解到UE4的整

    2024年02月06日
    浏览(52)
  • 【虚幻引擎UE】UE5 实现相机录制视频并导出(C++基于OpenCV生成视频合成exe)

    说明: 该功能暂不支持导出声音。 由于OpenCV3和UE5不太兼容,因此考虑制作外部exe实现视频合成。 1、实现 SavePicToFile 导出图片蓝图函数 .cpp文件

    2024年02月15日
    浏览(108)
  • 虚幻UE 材质-顶点/网格体绘制、Megascans材质混合

    首先很高兴大家能够关注我,提前在2023年结束达到百粉! 然后这篇文章是使用虚幻UE 的网格体/顶点绘制模式来对Megascans材质进行混合的实验。 注意:以下材质都是指材质实例,网格体绘制和顶点绘制一个意思 1、顶点绘制模型: 需要模型的面数尽量多一点,官方的立方体面

    2024年02月03日
    浏览(63)
  • 【UE4 C++】02-编译、生成当前的C++程序

    编译快捷键: Ctrl+F7  如果不使用快捷键,可以点击顶部菜单栏中的下拉按钮,然后选择自定义 点击添加命令  点击“生成”,选择编译“”,点击“确定” 此时可以看到顶部菜单栏多了一个用于编译的按钮 鼠标右键点击“VirtusCourse”,然后点击生成  生成结果如下    双

    2024年02月16日
    浏览(40)
  • 【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(82)
  • 【虚幻引擎】UE4/UE5插件

    Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。 BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数,可以在蓝图中直接调用。 ContentOnly:创建一个只包含内容的空白文件 Editor Toolba

    2024年02月05日
    浏览(75)
  • 【虚幻引擎】UE4优化植被

    在UE4中,我们在做大型的室外场景时,经常会遇到植物过多导致延迟的现象,有时候我们需要在UE4的场景中放置几千几万甚至更多的模型,这些模型具有相同的LOD,并且基础模型都使用同一模型资源。因为模型文件拖入UE4场景中会自动使用Static Mesh Actor来表示,当在程序中放

    2024年02月15日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包