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

news2024/11/24 8:37:11

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

将“BP_CreateStaticMeshByPath”拖入视口

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

 

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

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

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

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

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

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

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

参考文章

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

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

3. UE4 | BP | 使用蓝图获取Uasset资源_ue4 蓝图加载uasset资产

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kafka学习笔记(高级篇)

目录 高级功能 高效读写 涉及技术 ZooKeeper 自定义拦截器 监控 延迟消费 一些改进手段 高级功能 高效读写 涉及技术 高吞吐量&#xff1a;Kafka 每秒可以处理数百万消息。这是因为 Kafka 消息的处理是以批处理&#xff08;Batching&#xff09;的方式来完成的&…

python+unittest+requests+HTMLRunner搭建接口测试框架,执行用例请求多个不同请求方式的接口

问题描述&#xff1a; 搭建接口测试框架&#xff0c;执行用例请求多个不同请求方式的接口 实现步骤&#xff1a; ① 创建配置文件config.ini&#xff0c;写入部分公用参数&#xff0c;如接口的基本url、测试报告文件路径、测试数据文件路径等配置项 1 [DATABASE] 2 data_addre…

一文带你快速了解如何在Linux上部署项目

文章目录 前言一、手工部署项目1.在IDEA中开发SpringBoot项目并打成jar包2. 将jar包上传到Linux服务器3. 输入指令启动SpringBoot程序4. 检查防火墙&#xff0c;确保80端口&#xff08;项目端口&#xff09;对外开放&#xff0c;访问SpringBoot项目5. 在windows访问项目6. 改为…

Layui选项卡Tab:完美实现网页内容分类与导航

目录 什么是Layui选项卡&#xff1f; Layui选项卡的作用 实现步骤 1、编写公共jsp&#xff08;header.jsp&#xff09; 2、jsp界面&#xff08;main.jsp&#xff09; 3、JS代码&#xff08;main.js&#xff09; 4、PermissionDao类的修改 5、最终运行结果 什么是Layui选…

数据备份与还原,(mysqldump,source)索引(index),创建视图(view)

一、备份与还原 /***************************样例表***************************/ CREATE DATABASE booksDB; use booksDB;CREATE TABLE books (bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL ); INSERT INTO books VALUES (11078…

【i阿极送书——第五期】《Python机器学习:基于PyTorch和Scikit-Learn》

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;…

【CANN训练营】Atlas 200I DK A2开发板运行ChatYuan-large对话机器人应用

环境介绍 PC 操作系统&#xff1a;Ubuntu 22 内存&#xff1a;32GB Python&#xff1a;3.8 开发板 华为Atlas 200I DK A2 内存&#xff1a;4G NPU&#xff1a;昇腾310B 环境准备 只需要一台Linux 系统的PC机即可 Python版本需要3.7、3.8、3.9 准备CANN ToolKit 下载CANN T…

Centos6.5 用户权限例题

例题一&#xff1a;为网站管理员创建一个FTP帐户webmaster&#xff0c;将其加入到ftp组中&#xff0c;其登录的主目录为WEB站点的主目录/var/www/jnds.net&#xff0c;设置其为系统帐户&#xff0c;但却没有登录系统的权限&#xff0c;备注该用户为“FTP User” 解&#xff1a…

【RocketMQ】005-Docker 部署 RocketMQ

【RocketMQ】005-Docker 部署 RocketMQ 文章目录 【RocketMQ】005-Docker 部署 RocketMQ一、部署1、拉取镜像MQ 镜像可视化平台镜像 2、创建挂载目录创建 nameserver 挂载目录创建 broker 目录创建 broker 配置文件目录 3、编辑配置文件4、启动服务启动 nameserver启动 broker启…

pytorch保存、加载和解析模型权重

1、模型保存和加载 主要有两种情况&#xff1a;一是仅保存参数&#xff0c;二是保存参数及模型结构。 保存参数&#xff1a; torch.save(net.state_dict()) 加载参数&#xff08;加载参数前需要先实例化模型&#xff09;&#xff1a; param torch.load(param.pth) net.load_…

AWS 中文入门开发教学 47- S3 - 基本的使用

知识点 S3 - 基本的使用方法实战演习 创建存储桶 阻止所有公网访问: 打开版本控制、添加标签: KMS是收费的: 创建成功: 上传文件 选择存储类:

这是中国人工智能AI激情澎湃的一周

融资 贝联珠贯完成 5000 万元天使轮融资&#xff0c;业务涵盖 AI 型算力市场据投中网报道&#xff0c;近日&#xff0c;云资源管理服务提供商浙江贝联珠贯宣布完成 5000 万元天使轮融资&#xff0c;由元璟资本、红杉中国种子基金和舟轩股权投资。 盛大网络 CEO 陈天桥再投 1…

springboot就业信息管理系统

本次设计任务是要设计一个就业信息管理系统&#xff0c;通过这个系统能够满足就业信息管理功能。系统的主要功能包括&#xff1a;首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;导师管理&#xff0c;企业管理&#xff0c;招聘信息管理&#xff0c;应聘信息管理&…

DMA是一个超级简化版的cpu吗?

来自群友的讨论 我的理解是DMA某种程度相当于一个CPU是因为DMA拥有访问其他地址空间的权利。 从系统角度考虑&#xff0c;对整个系统的观测者一般CPU DSP GPU DMA是一个级别&#xff0c;其他都是slave。cache一致性POC是要保证所有观测者&#xff0c;包括DMA观测到相同数据。 …

【学习bubbliiiing代码-2】从txt中获取类别名称以及类别数量

本系列主要用于自我学习&#xff0c;参考的为bubbliiiing的代码 写一个优雅的&#xff1a;从txt文件中获得类别名与类别数的函数&#xff0c;如下&#xff1a; #---------------------------------------------------# # 获得类别名与类别数 #-----------------------------…

Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接

Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接 1. 前言2. 实现过程3. 运行结果 1. 前言 文章内容可能存在版权问题&#xff0c;为此&#xff0c;小编不提供相关实现代码&#xff0c;只是从js逆向说一说到底怎样实现这个的过程&#xff0c;希望能够帮助到那些正在做…

主动配电网故障恢复的重构与孤岛划分统一模型(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SIP协议学习(2)

文章目录 注册&#xff08;REGISTER&#xff09;1、AOR和Contact区别2、注册概述3、注册与定位服务4、注册超时处理5、注册消息6、多Contact地址处理7、下期预告 注册&#xff08;REGISTER&#xff09; 1、AOR和Contact区别 在学习注册之前&#xff0c;首先区分一下AOR和Cont…

Threads上线5天用户增至1亿,Threads软件常见问题百问百答

7月10日&#xff0c;脸书&#xff08;Facebook&#xff09;母公司Meta旗下新应用程序Threads上线的第5天&#xff0c;其用户数量已经超过1亿。这一增长速度打破聊天机器人ChatGPT的纪录——推出两个月内活跃用户量才破亿。 Threads或成为史上用户数增长速度最快的消费者应用。 …

Mysql数据库基础和增删改查操作

目录 一、数据库基本概念 二、数据库类型和常用数据库 1.关系型数据库 2.非关系型数据库 三、数据库的数据类型 四、SQL语句 1.简介 2.分类 五、SQL语句的使用 1.数据库操作 &#xff08;1&#xff09;创建数据库 ​编辑 &#xff08;2&#xff09;查看数据库 &am…