虚幻引擎配置物体水面浮力的简便方法

news2025/1/11 23:47:02

虚幻引擎配置物体水面浮力的简便方法

目录

  • 虚幻引擎配置物体水面浮力的简便方法
    • 前言
    • 前期工作
    • 配置水面浮力
      • 针对一个立方体的水面浮力配置
      • 针对船3D模型的水面浮力配置
    • 小结

前言

在使用虚幻引擎配置导入的3D模型时,如何快速地将水面浮力配置正确,从而使得物体正常地浮在水面上?由于是初学,因此可能方法还是有些笨拙,不过也是在此记录一下。

虚幻引擎版本:4.26.2

前期工作

由于本文的重点是配置物体水面浮力,因此前期的一些准备工作,在此一带而过。

  • 创建虚幻引擎项目;
  • 创建水体海洋环境;
  • 导入从免费3D模型网站上下载的fbx格式的船的3D模型;
  • 打开3D模型的蓝图编辑器。

配置水面浮力

配置水面浮力需要用到“Buoyancy”这一组件,这一组件可以用来模拟物体在水中的浮沉效果。并且其具有以下特点:

  1. 物体解析:buoyancy组件可以对物体进行解析,并计算出物体在水中受到的浮力和阻力等影响。
  2. 自定义参数:用户可以自定义水的密度、重力、空气阻力等参数,以模拟不同情况下物体在水中的行为。
  3. 精细化模拟:buoyancy组件还可以根据物体的形状和材质等属性,对水的流动进行精细化模拟,从而更加真实地模拟物体在水中的运动和变形。

针对一个立方体的水面浮力配置

我们直接为一个立方体添加一个浮力组件,并将浮力产生的位置配置为0 0 0。这表明最终该立方体的0 0 0位置最终会漂浮在水面上, 0 0 0 以下的就在水中,0 0 0以上就在水上,从而形成漂浮的效果。

浮力配置

并将”模拟物理“勾选上。

模拟物理

运行之后,可以看到立方体可以浮在在水面上了。

针对船3D模型的水面浮力配置

前面为什么要拿立方体的水面浮力配置举例子那?就是要借助立方体来为船的3D模型来配置水面浮力。

首先要明确的是导入的船的3D模型的重心不一定是在中心(我觉得),因此可能对称式地配置浮力可能不一定能顺利地浮起来,但首先我们肯定是先要对称地配置浮力,从而进一步地调整浮力配置从而来使得船体漂浮起来。

  • 打开船的蓝图编辑器,将”透视“模式改为”上部“

透视视角

上部视角

  • 将6个立方体对应地配置到船体两端

    其实这些立方体并没有实际的作用,他们的存在只是为了确定在三维中的坐标,这些坐标可以作为之后配置浮力的参考。

    如果在”上部“视角中不好配置这些立方体,也可以改为透视视角配置,要注意移动立方体的时候很容易移跑,这是因为在三维空间中不好感知距离,多移动移动就会熟练很多。

    如红框中就是配置的一侧的立方体

配置的立方体

  • 将立方体配置好之后,添加”buoyancy“组件,在Pontoons处添加6个数组元素。

    因为这个船还是比较大的,因此我们用6个浮力来配置这个船的漂浮。主要改的就是”buoyancy“配置的各个数组元素的相对位置。

浮力配置

刚才的6个立方体的位置就用上了,把他们的位置复制粘贴,放置在6个数组元素的XYZ中,然后配置船的模拟物理,类似于之前立方体的模拟物理配置,不过物体质量我们要修改一下,这里修改为20kg,质量对物体是否能够浮起来也是有影响的。

浮力配置

模拟物理配置

  • 配置完之后可以试着运行,我这里运行之后,船是倾斜着浮起来的,并不是水平的

斜着浮

  • 能够斜着浮起来,说明只是浮力配置有些问题,经过浮力配置位置的z轴就可以正常的浮起来了。

正常浮起来

正常浮gif
正常浮gif2

小结

本文主要是利用立方体、圆柱体等简单的元素在3维空间中确定浮力配置的位置,从而快速定位配置浮力的位置,减少试错。也是第一次使用虚幻引擎,使用过程和配置过程难免青涩,有不正确的或更加方便的希望各位指点。

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。

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

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

相关文章

快速原型设计工具(Axure)的简单使用

1.运行 安装好后运行,可以看到欢迎界面(不想每次启动都弹出这个的话建议勾选启动时不显示) ​ 这就是Axure的主要界面了,能成功进到这里就说明安装成功! 2.Axure主要界面 3.展示形式 通过Axure这个软件生成和打开的文件的后缀名是 .rp&#x…

如何在Jetpack Compose中将可滚动项捕捉到屏幕中心

如何在Jetpack Compose中将可滚动项捕捉到屏幕中心 从 Snapper 迁移到 SnapFlingBehavior 之前,我们探讨了Android应用程序开发中一个常见的用例:在fling手势后将可滚动项捕捉到屏幕中心。 为了在Jetpack Compose中实现这一目标,我们使用…

手把手教你写Web自动化测试并生成美观交互的测试报告

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要: Web自动化测试 Allure测试报告 总结 摘要: 在Web应用程序开发中&#xff0c…

ICV: 全球QRNG产业规模在2030年有望突破200亿美元

近日,专注于前沿科技领域的国际咨询机构ICV发布了《全球量子随机数发生器的产业研究报告》,从多个角度对QRNG的市场进行预测。 QRNG 是解决与随机数相关的问题(例如密码解决方案)的重要硬件来源。 QRNG 是随着量子物理技术的发展…

DJ4-4 基本分页存储管理方式

目录 离散分配的基本概念 4.4.1 分页存储管理基本思想 1、分页存储管理的基本方法 2、页面与物理块 3、实现分页存储管理的数据结构 4、实现分页存储管理的地址结构 5、分页存储管理的逻辑地址表示 4.4.2 地址变换机构 1、基本的地址变换机构 2、具有快表的地址变换…

Alibaba技术官熬夜肝出的,Kafka “限量笔记” 牛掰 ~

前言 分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。 要…

GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏

内联函数、内建函数与可变参数宏 一、内联函数1.1 属性声明:noinline1.2 内联函数与宏1.3 编译器对内联函数的处理1.4 内联函数为什么定义在头文件中 二、内建函数2.1 内建函数定义2.2 常用的内建函数2.3 C标准库的内建函数2.4 内建函数:__builtin_const…

WPF异常处理详解

总目录 文章目录 总目录一、WPF异常1 未捕获异常2 模拟未捕获异常场景 二、处理未捕获异常1 DispatcherUnhandledException 异常捕获2 UnhandledException异常捕获3 UnobservedTaskException异常捕获4 异常捕获的综合使用 结语 一、WPF异常 1 未捕获异常 正常情况下&#xff…

《走进对象村5》面向对象的第二大特性——继承

文章目录 🚀文章导读1.1 为什么需要继承1.2 继承的概念**关于继承有如下三点请记住:**1.4 父类成员访问1.4.1 子类中访问父类成员变量1.4.2 super 关键字1.4.3 子类中访问父类成员方法 1.5 子类构造方法1.6 面试题this 和 super 的区别(重点)1.7 再谈代码…

深度解读绩效管理PDCA循环(含操作指南、案例应用)

绩效管理的PDCA循环是一个重要的管理工具,它由四个步骤组成:绩效计划(Plan)、绩效执行(Do)、绩效评估(Check)和结果应用(Action)。这个循环可以帮助组织不断地…

【红黑树】到底是什么,它有哪些基本操作,它的用处是什么,代码如何实现

红黑树是一种自平衡二叉查找树,具有良好的时间复杂度和空间复杂度,被广泛应用于计算机科学领域中,如操作系统、编译器、数据库等。在实际应用中,红黑树主要用于实现高效的查找和排序,如 Linux 内核中的进程调度和空闲内…

VRIK+Unity XR Interaction Toolkit 配置 VR 全身模型(下):实现腿部行走动画

在上一篇教程:VRIKUnity XR Interaction Toolkit 配置 VR 全身模型(上):实现上半身的追踪(附带VRM模型导入Unity方法和手腕扭曲的解决方法)当中,我们通过配置VRIK Unity XR Interaction Toolki…

WiFi(Wireless Fidelity)基础(一)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

小松鼠踩一踩游戏

文章目录 一、 介绍和知识点九、UnityFacade 门面设计模式二、 声音全局管理器测试音频代码UI全局管理器父类抽象类 BaseManager子类 UIManager 四、 UI按钮的引用父类 BasePanel子类主面板 MainPanel子类 游戏中 GamePanel子类 游戏结果 ResultPanel 角色动画器、控制角色移动…

性能测试如何做?一套完整的性能测试流程,“我“拒绝背锅...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、测试准备工作 …

中兴B860AV2.1-T(M)-高安版-当贝纯净桌面线刷固件包

中兴B860AV2.1-T(M)-高安版-当贝纯净桌面线刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件…

有序序列中插入一个整数

思路: 将输入的要插入的数m依次和数组中的元素进行比较。 思: 在排好序的数组中,从右往左比较还是从左往右比较? 其实都可以,但是我觉得从右边(也就是最大的数)依次开始比较,程序比较…

纯前端JS实现文件上传解析渲染页面

AI真的能代替前端吗? 回答:不会完全代替 能用吗?复制到项目中只会报错 爆红 ……他完全不能理解你需要什么JavaScript(简称JS)是一种轻量级的脚本语言,主要用于在Web页面上添加交互行为。它由三个不同的…

5月跳槽有风险,不跳也有?

今天讲讲跳槽。 说实话跳槽是为了寻求更好的发展,但在跳槽前我们也不能确定下家就是更好的归宿,这就更加需要我们审慎地去对待,不能盲目跳槽。 其次,我们离职和跳槽,其中的原因很大一部分是目前薪资不符合预期。 那…

基于python+opencv的人脸识别打卡(手把手教你)

基于pythonopencv的人脸识别打卡 1 创建环境2 准备工作2.1新建members.csv文件2.2新建face文件夹2.3注意事项 3 源码4 操作步骤 1 创建环境 conda create -n face python3.7 conda activate face pip install opencv-python pip install pillow pip install opencv-contrib-py…