机器人与机电一体化3D数字孪生机器-Day2
以下为AI生成的图文笔记的内容
一、创建简化场景
1. 创建房间空游戏对象
- 场景搭建思路:先创建一个空游戏对象作为“房间”容器,再在其中添加方块来搭建地板和墙壁。
- 创建步骤:右键点击层级面板 → 选择创建空游戏对象 → 命名为“房间”。
- 简化原则:所有物体保持默认形状(方块、球体),不额外添加复杂模型。
2. 创建地板
- 创建方法:在“房间”下创建方块(Cube),作为地板。
- 缩放调整:在Y轴上不扩展,仅在X轴和Z轴上调整大小,使其成为扁平的地板形状。
- 重命名技巧:按F2键快速重命名,或右键点击物体选择“重命名”,将地板命名为“Floor”。
3. 创建墙壁
- 创建第一面墙:在“房间”下创建新的方块,切换到顶视图(点击Y轴),调整其大小和位置。
- 复制墙壁:选中已创建的墙,按Ctrl+C复制,再选中“房间”按Ctrl+V粘贴,即可快速创建第二面墙。
- 旋转调整:对于第三面墙,按Ctrl+C、Ctrl+V复制后,需要绕Y轴旋转90度,使其垂直于已有墙壁。
- 尺寸微调:根据实际需要拉伸墙壁的长度,使其覆盖完整。
- 注意事项:复制粘贴时,确保粘贴到“房间”层级下,否则新物体不会成为房间的子对象。
4. 材质上色
- 上色方法:在材质(Materials)面板中创建新材质,为墙壁赋予蓝色,为地板赋予绿色。
- 美化目的:上色仅用于美化场景,方便区分不同物体,不影响物理属性。
- 视图操作回顾:点击Y轴获得顶视图,点击X轴获得侧视图,点击方块图标获得垂直视角,右键拖动可旋转视图。
二、摄像机
1. 主摄像机预览
- 主摄像机的作用:场景中主摄像机所指向的方向,就是游戏运行时玩家看到的画面。
- 预览视图:在编辑界面中,预览窗口显示的内容即为摄像机当前视角所捕捉的画面。
- 游戏模式视图:进入游戏模式后,画面会切换到摄像机视角,模拟玩家实际看到的场景。
2. 旋转操作
- 旋转摄像机:在编辑模式下,可以使用旋转工具调整主摄像机的角度,以选择想要的观察视角。
- 操作示例:稍微旋转摄像机后,再进入游戏模式,画面会随之改变,呈现新的视角。
- 游戏模式限制:在游戏模式下,无法移动或旋转摄像机,画面完全固定。
- 若尝试旋转或调整视角,不会有任何反应。
- 这是游戏模式与编辑模式的核心区别。
3. 编辑视图与部署视图
- 编辑视图:用于编辑和准备所有内容,可以自由调整场景、物体和摄像机。
- 部署视图(游戏视图):用于实际的部署和运行,展示玩家最终看到的画面。
- 课程关注点:本课程主要关注场景的编辑与搭建,不涉及实际的部署环节。
- 场景编辑是课程的核心内容,部署视图仅作为预览参考。
三、碰撞器
1. 碰撞器定义
- 碰撞器的作用:使物体之间能够发生碰撞,例如球体与其他物体发生碰撞。
- 碰撞的本质:当两个物体在表面上相互接触,且没有互相穿透时,即发生碰撞。
- 核心地位:碰撞器与刚体是数字训练中最关键的两个工具,需要重点掌握。
2. 默认碰撞器
- 默认配置:在Unity中创建的每个3D对象默认都会带有碰撞器。
- 常见类型:
- 球体 → 球形碰撞器
- 箱子 → 箱型碰撞器
- 圆柱体 → 圆柱形碰撞器
3. 碰撞器边界
- 边界显示:橙色线表示碰撞器的边界范围。
- 边界贴合:碰撞器边界应完全贴合物体形状,否则会出现部分区域可穿透、部分区域可碰撞的情况。
- 注意事项:导入CAD文件时,物体不会自动带有碰撞器,需要手动适配。
4. 半径调整
- 调整方法:通过修改半径参数,可以使碰撞器比物体本身更大。
- 碰撞判定:碰撞发生时以碰撞器边界为准,而非物体可见边界。例如,球体碰撞器扩大后,箱子会在碰到绿色边缘时被推动,而非蓝色或橙色边缘。
5. 箱型碰撞器
- 尺寸调整:箱型碰撞器可以分别更改X、Y、Z三个方向的尺寸。
- 位置调整:可以沿左右、上下、前后方向移动碰撞器位置。
- 与球形碰撞器的区别:球形碰撞器只能调整半径,箱型碰撞器可调整三个维度。
6. 胶囊型碰撞器
- 形状特征:胶囊型碰撞器外观呈胶囊状,并非圆柱形。
- 底部问题:胶囊型碰撞器底部为胶囊形状,没有平滑的底部,导致物体无法稳定站立,会掉落。
7. 碰撞器类型
- 3D碰撞器类型:包括胶囊型碰撞器、网格碰撞器、球形碰撞器等。
- 2D与3D区分:名称中不提及“2D”的均为3D碰撞器。
- 网格碰撞器的重要性:网格碰撞器会根据物体的形状自动调整,是最重要的碰撞器类型,但仅适用于不太复杂的物体。
8. 网格碰撞器
- 使用方法:选择网格碰撞器后,可禁用或删除原有的胶囊碰撞器。
- 工作原理:网格碰撞器会创建一个与物体形状相同的网格,如同覆盖在物体表面的布料,随物体形状调整。
9. Convex选项
- Convex功能:勾选Convex选项后,网格碰撞器会完美覆盖物体形状,例如圆柱体。
- 模拟效果:点击模拟后,网格碰撞器会生成与物体形状一致的碰撞区域。
- 局限性:仅拥有碰撞器不足以阻止物体相互穿透,还需要配合刚体使用。
四、刚体
1. 刚体定义
- 刚体的作用:赋予物体运动属性,使其具备可移动物体的物理特性。
- 使用场景:需要让物体产生物理交互(如下落、碰撞、弹跳)时,必须添加刚体组件。2. 聚焦物体
- 操作方法:点击任意物体后按 F 键,即可聚焦到该物体上,消除线段分隔干扰。
- 适用对象:适用于任何 3D 组件。
3. 添加刚体组件
- 添加路径:点击"添加组件"并输入"刚体",注意区分 2D 和 3D 类型,选择不带 2D 的刚体。
- 添加效果:添加后物体立即受物理引擎控制,在模拟模式下会开始下落。
4. 模拟模式注意事项
- 重要警告:在模拟模式下所做的修改(如添加刚体)会在停止模拟后消失,必须从头开始。
- 操作建议:工作时确保不在模拟模式中,避免修改被删除。
5. 刚体属性
- 核心属性:
- 质量(Mass):控制物体的重量,影响碰撞效果。
- 阻力(Drag):影响物体在运动中的减速程度。
- 角阻力(Angular Drag):影响物体旋转时的减速程度。
- 使用重力(Use Gravity):决定物体是否受重力影响。
- 运动学(Is Kinematic):控制物体是否受物理力驱动。
- 约束条件:可冻结位置或旋转,限制物体的运动自由度。
6. 静态物体与碰撞器
- 静态物体处理:对于不应移动的物体(如地面),只需添加碰撞器,无需添加刚体。
- 碰撞器作用:使静态物体在与其他物体碰撞时能弹开,防止穿透。
7. 运动物体与刚体
- 运动物体处理:需要移动的物体必须同时添加碰撞器和刚体。
- 质量设置:可根据需求调整质量值(如设为 50),并决定是否启用重力。
8. 模拟下落与弹跳
- 模拟效果:开始模拟后,物体在重力作用下下落并与地面碰撞弹跳。
- 物理交互:刚体与碰撞器协同工作,实现真实的物理反馈。
9. 碰撞器与物体贴合
- 碰撞器贴合:碰撞器是实际接触地面的部分,而非物体本身。
- 常见问题:碰撞器尺寸过大时,物体与地面之间会出现空隙,看起来不真实。
- 例如:球形碰撞器半径过大,导致球体悬浮。
- 盒子碰撞器大于方块本身,同样产生空隙。
- 正确做法:确保碰撞器与物体轮廓完美贴合,使碰撞器接触地面。
10. 恢复原始碰撞器
- 恢复方法:删除调整过的碰撞器,添加新的默认碰撞器。
- 删除球形碰撞器,添加新的球形碰撞器。
- 删除盒子碰撞器,添加新的盒子碰撞器。
- 操作目的:避免手动调整尺寸,快速恢复默认贴合状态。
11. 下落速度调整
- 现象:物体下落速度过慢,不符合真实重力效果。
- 原因:Unity 中的重力值受多种因素影响,可在"编辑"中随时调整。
- 调整方法:进入编辑设置,修改重力参数以匹配预期物理效果。
12. 禁用重力
- 操作:取消勾选"使用重力"选项后,物体不再受重力影响,不会下落。
- 物理交互:即使不受重力,物体仍可被其他物体推动,产生碰撞反应。
- 注意事项:禁用重力可能导致物理行为异常,如穿透或奇怪的推动效果。
13. 插值与连续碰撞检测
- 设置建议:为刚体碰撞检测选择"连续"模式,并将插值设置为"插值"。
- 作用原理:
- 连续碰撞检测:更频繁地处理碰撞,避免高速运动时穿透。
- 插值:更频繁地处理物理模拟,使运动更加平滑真实。
- 应用范围:对所有刚体对象统一设置,确保交互效果真实可靠。
五、控制重力
1. 重力参数调整
- 调整路径:停止模拟后,进入编辑 → 项目设置,找到物理相关参数。
- 重力默认值:设置为 9.81,这是现实世界中的重力值。
- 游戏中的重力:现实中的重力并不总是适用于游戏场景,需要根据游戏设计进行近似调整。
2. 物体大小与下落速度
- 物体大小的影响:创建的物体越大,下落越慢;体积越小,下落越快。
- 调整策略:需要根据场景中物体的大小来合理设置重力值,以获得真实的物理效果。
3. 重力效果验证
- 调整示例:将重力值设为 90.81(约为默认值的10倍),点击模拟后观察物体下落明显加快。
- 效果对比:重力值提高约十倍后,物体下落效果更接近真实。
- 参考价值:本操作可作为后续调整重力的参考方法。
七、知识小结
|
知识点 |
核心内容 |
考试重点/易混淆点 |
难度系数 |
|
场景搭建基础 |
创建空游戏对象作为“房间”,使用立方体搭建地板和墙壁;通过右键创建3D对象并重命名(F2键或右键重命名) |
视图切换:点击Y轴=顶视图,X轴=侧视图,方块图标=透视/正交视角切换;物体聚焦快捷键F |
⭐⭐ |
|
碰撞器(Collider) |
Unity中每个3D对象默认自带碰撞器(球形/盒形/圆柱形);碰撞器边界由橙色线显示,需确保完全贴合物体 |
碰撞器可独立于物体移动/缩放(如半径调整);圆柱体默认是胶囊碰撞器而非圆柱形,底部不平滑会导致物理异常 |
⭐⭐⭐ |
|
网格碰撞器(Mesh Collider) |
选择网格碰撞器并勾选Convex选项,可完美贴合任意形状物体(如圆柱体);需删除默认的胶囊碰撞器 |
网格碰撞器适用于复杂形状,但必须勾选Convex才能参与物理碰撞;适用于导入的CAD文件 |
⭐⭐⭐ |
|
刚体(Rigidbody) |
刚体赋予物体物理属性(质量、重力、阻力);静态物体只需碰撞器,运动物体需碰撞器+刚体 |
模拟模式下修改会被删除,必须退出模拟模式再编辑;刚体属性包括:质量、阻力、角阻力、使用重力、运动学、约束条件 |
⭐⭐⭐ |
|
物理模拟优化 |
刚体需设置插值(Interpolate) 和碰撞检测(Continuous) 模式,使交互更真实 |
插值=平滑运动,连续碰撞检测=防止高速穿透;所有运动物体都应设置这两项 |
⭐⭐⭐ |
|
重力调整 |
编辑→项目设置→物理→重力(默认9.81);游戏中的重力需根据物体大小调整 |
物体越大下落越慢,越小下落越快;可设置为90.81(约10倍)获得更真实效果 |
⭐⭐ |
|
物理材质 |
通过物理材质(Physics Material)调整物体的弹性和摩擦力 |
物理材质需在Assets中创建,可设置动态/静态摩擦力和弹性系数 |
⭐⭐ |
|
C#脚本基础 |
实现实际物理运动需要编写C#脚本;脚本可控制物体运动、交互逻辑 |
脚本是后续实现交互功能的基础,需掌握创建和挂载方法 |
⭐⭐⭐⭐ |
|
对比项 |
静态物体 |
动态物体 |
|
碰撞器 |
✅ 必须 |
✅ 必须 |
|
刚体 |
❌ 不需要 |
✅ 必须 |
|
插值设置 |
— |
✅ 建议开启 |
|
连续碰撞检测 |
— |
✅ 建议开启 |
|
典型应用 |
地板、墙壁 |
球体、可移动物体 |
|
操作步骤 |
关键动作 |
注意事项 |
|
1. 创建房间 |
新建空对象→创建立方体→重命名 |
使用F2快速重命名 |
|
2. 搭建地板/墙壁 |
调整缩放(Y轴高度,X/Z轴长度) |
顶视图便于对齐 |
|
3. 添加碰撞器 |
默认自带→检查贴合度→必要时改用网格碰撞器 |
圆柱体需删除胶囊碰撞器 |
|
4. 添加刚体 |
选择运动物体→添加刚体组件→设置插值和连续检测 |
退出模拟模式后再编辑 |
|
5. 调整重力 |
编辑→项目设置→物理→修改重力值 |
根据物体大小调整(约10倍) |
|
6. 测试物理效果 |
进入模拟模式→观察碰撞与下落 |
模拟模式修改不会被保存 |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)