game4automation教程(五)Group组件,Kinematic 组件


(一)Group Script组件

Group 由 GroupName 命名。

对于 Prefabs (预设件),您还可以定义对另一个对象的引用,这将为组名称创建 Prefix。

如果要生成使用 Group 函数的可重用预制件,这将特别有用。

Group scritp 由 Kinematic 脚本专门使用。


通常一个CAD零件由许多层级的子对象构成。

如下图所示,我们在层级1161292_p05_000_01上加了Group组件,就意味这个CAD零件的所有子对象的mesh都变成一个组。

这个组命名为GripperBase。之后这个组会在Kinematic组件中被调用、Driver组件也会让整个GripperBase组运动起来。

image.png

image.png

如果没有Group和Kinematic组件,你就得修改CAD零件的层级关系,让Drive去运控这个层级的根。

如果修改了CAD零件的层级关系,那后果就比较严重: 一是CAD零件更新了重新导入时你就傻眼了;二是你的工作量将会非常的巨大。


game4automation-->Select Windows(选择窗口)是一个工具,它允许您轻松隐藏和显示组。

下图是Select Windows的面板:

image.png

image.png


Add selected

将选定组件添加到 rvselection 中

To Unity selection

将 rvselection 移动到 Unity 选择

Remove selected

从 rvselection 中删除选定的对象

Remove all

从 rvselection 中删除所有对象

Select Invisible

选择所有不可见对象

Select Visible

选择所有可见对象

Select Unlocked

选择所有未锁定的对象

Select Locked

选择所有锁定的对象

Select Layer

选择已定义图层上的所有对象

Select Material

选择具有已定义材质的所有对象

Assign Material

指定选定材质

Change Shader

更改材质的着色器

Material Update

通过材质更新,场景中定义的材质可以替换为其他材质。

Suppress children

抑制层次结构视图中的所有子零部件

To new Parent

将零部件移动到新的(选定的)父项

Copy to empty Parent

创建零部件的副本并将其移动到新的(选定的)父项

To Layer

将组件移动到定义的图层

Visible

使所选组件可见

Invisible

使所选组件不可见

Isolate

隔离所选零部件(并使其余零部件不可见)

View all

停止隔离并显示所有组件

Lock

锁定组件

Unlocked

解锁组件

To Group

将零部件分配给定义的组。如果该组尚不存在,则会创建该组。

Remove Groups

从选定组件中删除所有组

Collapse same level

将所有组件折叠到同一层次结构级别

Expand same levels

将所有组件扩展到同一层次结构级别

Pivot to origin

将零部件的枢轴移动到已定义零部件的原点

Pivot to center

将零部件的枢轴移动到已定义零部件的中心

Static

使组件成为静态

Movable

使组件非静态 (可移动)

Remove G4A scripts

从所选组件中删除所有 realvirtual.io 脚本

Remove missing scripts

从当前选择中删除所有 null 分量





(二)Kinematic 组件

很多时候,当从外部来源(如 CAD 系统)导入 3D 零件时,3D 数据不是以运动学方式构建的。

realvirtual.io 运动学基于游戏对象的层次结构。这意味着,层次结构还定义了运动链。

要创建运动链,有多种方法。在导出到 Unity 之前,可以在 realvirtual.io 或 CAD 系统中手动重构游戏对象层次结构。

但通常情况下,最好保持导入的结构不变。在设计更改的情况下,如果您再次重新导入 3D 数据,这将有助于更新工作流程。


Kinematic 组件用于重构 Kinematic 链和重新定位对象,而无需手动更改导入的 3D 数据 (也不更改 CAD 系统中的数据结构)。


Kinematic 组件提供这 4 个功能。所有函数都在模拟开始时启动:

1.  重新定位原点并将其与另一个游戏对象原点对齐。这还将移动 Kinematic (运动学) 组件的子项。

2. 移动枢轴中心并保持子游戏对象的位置以定义旋转点。

3. 将已定义组(由Group Script组件定义的)中的零件集成到此 Kinematic 零部件中。

4. 定义 Kinematic 父项,以将 Kinematic 游戏对象及其子项移动到另一个游戏对象下。


image.png


(1) Gizmo

在大型 CAD 设计中,您经常使用大量基于 Integrate Group 功能的运动组。

由于附加了 Kinematic 脚本的游戏对象通常为空,因此可以启用 Show Group Gizmo。

这将高亮显示属于已定义组的所有网格,如下图所示。

image.png

下图是不显示网络的时候。

image.png

因为运动的对象通常由一堆3D零件构成,如果显示它们组的网格,有助于我们观察哪些部分会动起来。


(2)Reposition

在仿真启动时零件可能未按预期放置。如果选择此选项,则可以重新定位任何游戏对象。您需要分配另一个引用游戏对象,此部分将放置在该游戏对象的位置。部件的 Pivot 原点将与定义的 Gameobjects pivot 对齐。该操作将在模拟开始时执行。

image.png


(3)Move Center

您可以移动零件的中心,而不移动底层零件本身的位置。

为此,您可以定义一个矢量(以毫米为单位)和一个旋转(在局部坐标系中),零件的中心应移动到该位置。

该操作将在模拟开始时执行。

image.png


4)Integrate Group

您可以将组集成到此运动零件中。

为此,您需要将 Group 脚本分配给任何其他游戏对象,并为该组命名。

Integrate Group 将在仿真开始时将具有定义组的所有零件移动到该运动零件的下方。

这是最重要的功能。

使用此方法,您可以定义与导入的 CAD 数据并行的 CAD 设计结构独立运动组。

为了重新使用元件,您可以在 Group Name Prefix 指定组前缀的部件。

image.png


(5)New Kinematic Parent

使用 New Kinematic Parent,您可以在模拟开始时将此零件移动到另一个零件的下方。

image.png




本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-11-20 16:11:29 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864