UE5制作一条底部挂着物体的悬垂的绳子

news2024/9/21 14:44:31

主要涉及cable(缆索)组件、PhysicsConstraint(物理约束)组件的灵活运用,经过摸索,写下本文以供探讨。

在这里插入图片描述

一、关卡中制作

关卡中制作最简单

1. cable组件加入场景

打开放置Actor面板,在其中找到缆索组件CableActor
在这里插入图片描述

2. 放入一个cube组件

这一步是核心操作:在场景中放入一个立方体Cube,在大纲中拖动该Cube放在CableActor缆索组件上,这时候会有一个弹窗,根据需要选择缆索末端或前端。
在这里插入图片描述
注意,这个立方体必须是可移动的,模拟物理启用重力都需要根据需求打开,否则可能悬空而没有效果。
在这里插入图片描述

3. 成功后的大纲视图和细节面板

Cube自动放入CableActor下级
在这里插入图片描述
选中CableActor后看细节面板,将末端附加到-参考的Actor中显示为刚才选中的Cube,说明成功了。
也可以使用吸管去选择场景中的新的网格体。
在这里插入图片描述

如果要实现下垂则需要把附加末端的勾取消
修改缆索长度等。

4. 看看效果

在视口中调整好,看看效果。物理、碰撞等特性自己去研究吧。
在这里插入图片描述

二、角色(Actor)蓝图中制作

关卡的制作思路用到角色蓝图中就行不通了,因为在角色蓝图中不存在可参考的Actor这个选项,所以无论怎么拖动CubeCable组件上都不会弹出绑定到末端的窗口。

1. 思路

当取消附加末端的勾时,缆索确实会下垂,但也同时失去了该末端,无法获得末端实时的坐标值,只能获得初始位置,这样也就无法通过事件图表的相关节点让Cube跟随末端坐标改变位置。

在这里插入图片描述

好了,现在我们把思路反一下,不让立方体跟随缆索末端位移,而是让缆索末端跟随立方体进行位移。
基本理念就是让cable末端绑定CubeCubeCable前端位置用另一个方式连接,缆索被迫跟随运动~~

2. 加入以下组件

蓝图中加入CubeCable组件,在Cable面板的缆绳-将末端附加到-组件名称中写上立方体组件名称Cube(如果取别的名字请自行修改),完成后别忘了点编译。

在这里插入图片描述
在关卡视口中拖入该角色蓝图,调整位置后播放,可以发现立方体直接坠落,缆绳跟着拉长(无论缆绳设置多长,都会被拉长)

在这里插入图片描述

3.增加PhysicsConstraint (物理约束)组件和开端固定点

很显然上面并不是我们要的效果,我们希望的是绳子能有长度限制,立方体是在空中摇晃,而不是直接坠地且绳子末端跟着立方体把绳子拉长。
这时候就要用到PhysicsConstraint(物理约束)组件了,这个组件其实就是把两个刚体连接起来。

因为物理约束组件是用来连接两个刚体的,而缆索Cable组件并不是刚体,所以需要在缆索的开端位置放一个立方体组件,取名FixedPoint,然后选中PhysicsConstraint组件,在细节面板中的组件命名1组件命名2里填上固定点FixedPointCube

在这里插入图片描述
注意,缆索细节面板中不要开启模拟物理,否则该固定点在运行时会坠落~~
在这里插入图片描述

编译运行效果:

在这里插入图片描述
绳子并没有在立方体中间位置,感觉怪怪的。原因很简单,因为我的误操作,导致:

  • 立方体的轴中心不在物体中心,而是在表面位置~~所以缆索末端就锁定到表面了;
    在这里插入图片描述

  • 缆索末端位置的轴值不为0,所以它末端会在原有基础上偏移一定距离;
    在这里插入图片描述

那么改动就很简单了,把立方体的轴心放到中心,把缆索末端的轴值设为0,再运行,一切是那么丝滑~
在这里插入图片描述

注意:这种方法下,Cable的长度不能超过开端到末端的直线距离,否则的效果也是喜人的

5. 错上加错来修正(另设末端固定点)

本段内容是错上加错的操作,对于这个案例是无意义的,但是可以拓展未来开发的思路。

既然缆索末端无法准确固定到立方体中心,那么我就造一个小的球体作为末端固定点。

  • 将该末端固定点放入立方体Cube层级以下,保证可以与Cube一起运动(记得把CenterPoint的的模拟物理关闭);
    在这里插入图片描述

  • 物理约束组件的组件命名2修改为CenterPoint
    在这里插入图片描述

  • Cable的细节面板中将末端附加到-组件名称修改为CenterPoint
    在这里插入图片描述

单独设置一个固定点来锚定缆索末端,立方体则跟着该固定点走。
有了这一招,未来还可以在事件图表中根据该末端固定点的各种位置参数来实现更多的功能。

5. 编译运行看看效果

在这里插入图片描述

6. 事件图表中绑定末端

那如果我们不在这里写绑定,也可以在事件图表中取绑定固定点,比如

在这里插入图片描述
其实和这个功能一致

在这里插入图片描述

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

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

相关文章

docker swarm 集群创建

1,目的: 通过docker swarm 工具将一台或者多台安装了docker的服务器组成一个完整的集群,该集群中的node节点可以通过Leader节点管理。在使用docker stack部署时,可以将容器自动分发到合适的节点上。 2,服务器准备&am…

探秘开源隐语:架构深度剖析与隐私计算技术之旅

1.隐语架构 隐语(SecretFlow)作为蚂蚁集团开源的可信隐私计算框架,其架构设计具有多层次的特点,虽然具体分层名称可能会根据实际描述略有差异,但我们可以依据已有的技术和信息对其进行结构化的拆解: 硬件层…

GraalVM详细安装及打包springboot、java、javafx使用教程(环境安装篇)

下一篇:GraalVM详细安装及打包springboot、java、javafx使用教程(打包普通JAVA项目篇) GraalVM介绍 GraalVM是一款由Oracle公司开发的一款具有高效性能、降低基础设施成本、支持Java发展、与其他编程语言无缝集成、创建本机镜像等优点的跨平台虚拟机。它支持多种编程语言&…

Multi-Raft 架构, 数据Shard分区,数据迁移

Raft 与 Multi Raft PingCAP TiKV课程笔记课程链接 数据是以region(也叫Raft Group)为单位进行存储的。一个region默认会有3个副本,存在不同的TiKV Node上。副本中的一个节点为leader。所有的读写流量只走leader,leader定期向follower发送心…

谷歌应用上架,如何选择IP?

在讨论IP对于谷歌上架的重要性或影响时,需要明确一点:开发者账号质量可以直接影响上架成功率,而IP是影响账号质量的重要因素之一。因此,IP对于谷歌上架的重要性,不言而喻。 我们都清楚,谷歌是不允许一个用户…

vue+element 前端实现增删查改+分页,不调用后端

前端实现增删查改分页&#xff0c;不调用后端。 大概就是对数组内的数据进行增删查改分页 没调什么样式&#xff0c;不想写后端&#xff0c;当做练习 <template><div><!-- 查询 --><el-form :inline"true" :model"formQuery">&l…

PHP的IntlChar类:处理Unicode字符的强大工具

PHP的IntlChar类&#xff1a;处理Unicode字符的强大工具 在处理多语言和国际化应用程序时&#xff0c;Unicode字符的解码是必不可少的一环。PHP的IntlChar类为我们提供了强大的工具来解码Unicode字符。本文将深入探讨PHP的IntlChar类&#xff0c;介绍其功能、用法和优势&#x…

鸿蒙:@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

在实际应用开发中&#xff0c;应用会根据开发需要&#xff0c;封装自己的数据模型。对于多层嵌套的情况&#xff0c;比如二维数组&#xff0c;或者数组项class&#xff0c;或者class的属性是class&#xff0c;他们的第二层的属性变化是无法观察到的。这就引出了Observed/Object…

基于python+vue的幼儿园管理系统flask-django-php-nodejs

随着信息时代的来临&#xff0c;过去的传统管理方式缺点逐渐暴露&#xff0c;对过去的传统管理方式的缺点进行分析&#xff0c;采取计算机方式构建幼儿园管理系统。本文通过课题背景、课题目的及意义相关技术&#xff0c;提出了一种活动信息、课程信息、菜谱信息、通知公告、家…

视频批量爬虫下载工具|可导出视频分享链接|抖音视频提取软件

便捷的视频批量爬虫软件操作指南 抖音视频下载界面图解 主要功能&#xff1a; 关键词批量提取视频和单独视频提取&#xff0c;提取后下载功能。 功能解析&#xff1a; 1. 关键词批量采集视频的解析 对特定关键词进行搜索和视频提取&#xff0c;例如输入“汽车配件”&#x…

基于深度学习的心律异常分类系统设计——算法设计

基于深度学习的心律异常分类系统——算法设计 第一章 研究背景算法流程本文研究内容 第二章 心电信号分类理论基础心电信号产生机理MIT-BIH 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…

LeetCode刷题记录:(13)N皇后(难题不难)

leetcode传送通道 传说中的N皇后&#xff0c;不难&#xff0c;进来了就看完吧 注释序号代表鄙人写代码的顺序和思考逻辑&#xff0c;供参考 class Solution {// 1.定义结果数组List<List<String>> result new ArrayList<>();public List<List<String&…

.NET EF Core(Entity Framework Core)

文章目录 EF Core与其他ORM比较EF Core与EF比较Migration数据库迁移反向工程Migrations其他命令修改表结构 EF Core操作数据库插入数据查询数据修改、删除其他数据库 EF Core实体的配置Data Annotation配置方式Fluent API配置方式Fluent API 通过代码查看EF Core的sql语句方法1…

分布式链上随机数和keyless account

1. 引言 相关论文见&#xff1a; Aptos团队2024年论文 Distributed Randomness using Weighted VRFs 相关代码实现见&#xff1a; https://github.com/aptos-labs/aptos-core&#xff08;Rust&#xff09; 在链中生成和集成共享随机数&#xff0c;以扩展应用和强化安全。该…

基于python+vue体育场馆设施预约系统flask-django-php-nodejs

时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;体育场馆设施预约系统当然不能排除在外。整体设计包括系统的功能、系统总体结构、系统数据结构和对系统安全性进行设计&#xff1b;最后要对系统…

Tomcat启动报错 因为在清除过期缓存条目后可用空间仍不足

在Tomcat部署路径下的./conf/context.xml配置文件的标签内添加如下内容&#xff1a; <Resources cachingAllowed"true" cacheMaxSize"100000" />

图解 LFU 缓存淘汰算法以及在 Redis 中的应用(附带个人完整代码实现)

文章目录 LFU 算法理论介绍算法实现数据结构查询操作插入/更新操作 Redis 缓存淘汰算法缓存污染难题Redis LFU缓存淘汰策略 本篇博客的主要内容&#xff1a; 以图解的方式&#xff0c;介绍 LFU 算法的一种实现&#xff1b;介绍 LFU 算法在 Redis 中的应用。 LFU 算法 理论介…

Docker 搭建私人仓库

docker 搭建私人仓库有下面几种方式&#xff1a; 1、docker hub 官方私人镜像仓库2、本地私有仓库 官方私人镜像仓库搭建很简单(就是需要有魔法&#xff0c;否则就异步到第二种方法吧)&#xff0c;只需要 login、pull、tag、push 几种命令就完事了。而本地私人镜像仓库则比较麻…

探究BufferedOutputStream的奥秘

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java IO相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

[音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt +VS2022,都什么年代了还在写传统播放器?

前言 参考了雷神的自制播放器项目&#xff0c;100行代码实现最简单的基于FFMPEGSDL的视频播放器&#xff08;SDL1.x&#xff09; 不过老版本的代码参考意义不大了&#xff0c;我现在准备使用Qt VS2022 FFmpeg59重写这部分代码&#xff0c;具体的代码仓库如下&#xff1a; …