ObjectSpace的对象关系

博主之前写的DelayLoading方法资源消耗大,且不能明显体现对象间关系。通过查看MSDN中对ObjectSpace成员的描述,发现ObjectManager类或可控制包含关系,还有ObjectHolder和ObjectList等泛型内容。博主打算继续探索,发挥ObjectSpace最大能力。

现在为这个问题在摸索和郁闷。我之前写了篇DelayLoading,但里面提到的方法对资源的消耗太大,而且不能明显的体现对象间的关系(聚合,包含)。而且我看了下MSDN里面对ObjectSpace成员的描述对了ObjectManager 类,估计就是用来控制包含关系的,而且里面继续有ObjectHolder和ObjectList而且还是用泛型写的。要继续探索下,把ObjectSpace的能力发挥到最大。
2004年4月12日17:06:30

该问题属于“普通文本型”。 --- ### Maya 中父对象和父子层级之间的关系 在 Autodesk Maya 中,“**父对象**”与“**父子层级**”是紧密关联的概念,共同构成场景中对象的**变换继承结构**。 --- #### ✅ 基本定义 - **父对象(Parent Object)**:控制其他对象的对象。 - **子对象(Child Object)**:被父对象控制的对象,其变换受父影响。 - **父子层级(Parent-Child Hierarchy)**:由父与子形成的树状结构关系。 > 当一个对象成为另一个对象的子对象时,它们之间就建立了**父子层级关系**。 --- #### 🧩 变换继承规则 一旦建立父子层级: | 属性 | 是否继承 | 说明 | |------|----------|------| | 平移 $T_x, T_y, T_z$ | ✅ | 子对象随父移动 | | 旋转 $R_x, R_y, R_z$ | ✅ | 子对象随父转动 | | 缩放 $S_x, S_y, S_z$ | ✅ | 子对象随父变大/小 | | 隐藏状态 | ✅ | 隐藏父则子不可见 | > 子对象的变换基于父对象的**局部坐标系**(Local Space) --- #### 🔧 创建方法 1. 选择要作为**子对象**的物体(如 `wheel`) 2. 按住 **Shift**,再选择**目标父对象**(如 `car_body`) 3. 执行: - 菜单:`Edit → Parent` - 或快捷键:`P` ✅ 结果:形成父子层级,子对象出现在父对象的下方节点树中。 --- #### 📁 实际应用示例 ```text car_group ├── car_body (父对象) │ ├── wheel_front_L → 继承 car_body 的运动 │ ├── wheel_front_R → 随车体移动旋转 │ └── door_left → 开门动画可在局部空间进行 ``` - 移动 `car_body`,所有部件自动跟随。 - 可单独对 `door_left` 添加开合旋转,不影响整体位置。 --- #### ⚠️ 注意事项 - 解除父子关系:选中子对象 → `Edit → Unparent`(Ctrl+Shift+P) - 多个对象可同时被 parenting 到同一父对象 - 父子层级会影响动画、绑定、导出等流程,需合理组织 --- ### 知识点 1. **父子层级结构** 构成场景中的变换继承链,子对象跟随父对象运动。 2. **局部坐标系继承** 子对象的移动、旋转基于父对象的方向和原点。 3. **Parent 命令作用** 建立层级关系,改变对象在大纲视图中的组织结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值