UDN
Search public documentation:

AttachingActorsCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 关卡编辑 > 附加 Actor
UE3 主页 > 关卡设计师 > 附加 Actor

附加 Actor


概述


在 UE3 中,通常最好将您的关卡中的对象附加在一起。示例可以是将一个光源附加给一个移动的电梯,或者将一个粒子发射器附加给一个升降机,或者是将一个网格物体附加给一些动画人物的骨骼。该文档会告诉您如何在虚幻编辑器中对它进行设置。

动态 Actors


首先要记住任何‘静态’的 actor 在游戏中都不可以移动,而且您不应该尝试将它们附加给其他对象,因为这样它将无法运行。例如,您不应该尝试并将一个 StaticMeshActor 附加给某些对象,而应该使用一个 Mover (aka InterpActor) 。光源也是一样的 - 使用 PointLightMovable 而不是 PointLight。

Base 指针


Actors 有一个被称为 Base 的属性,它在 Attachment(附加物)部分中。这个 Actor 是它们的“基础” - 或者“附加目标”。如果您想要将 Actor A 附加到 Actor B 上,下面是最简单的方法:

  1. 选择 A。
  2. 在属性窗口上按下‘锁定’按钮,这样就可以在您选择其他 Actors 时使该窗口可以一直显示 A 的属性。
  3. 选择 B。
  4. 打开 Attachment 部分并选择 A 的 Base 属性。
  5. 点击绿色箭头将当前选择的 Actor (B) 赋予该属性。

每当您选择一个基于其他 Actor 的 Actor 时,您应该都会看到一条从 Actor 指向它的 Base 的绿色的线。这使得检查所有对象设置是否正确变得容易。

刚体


注意在使用 PHYS_RigidBody 的 Actors 上使用 Base 指针不起任何作用。要连接到使用物理仿真的 Actor,您将需要使用一个关节(也称为‘约束’)。在 VtmConstraints(视频教学模块约束) 页面上会提供更多相关信息。

将 Actors 附加给骨骼


也可以将一个 Actor 附加给另一个 Actor 的 Skeletal Mesh(骨架网格物体)的特定骨骼。它特别适用于过场动画 - 例如,将一个武器附加给一个动画人物手。要进行该操作,您首先要如上所述设置 Base 指针。然后您输入您想要附加到 BaseBoneName 属性的骨骼的名称,也在 Attachment(附加物)部分中。在您选择附加的 Actor 时,您应该会像以前一样看到绿色的线盒框,但是这次它应该是绕在特定骨骼周围的。它可以使您轻松地检查您是否具有正确的骨骼名称。您可以使用 AnimSet Viewer(动画集查看器)在特定的 Skeletal Mesh(骨架网格物体)中查找骨骼的名称 - 只需在浏览器中双击它即可。

bShadowParented


在 QA_APPROVED_BUILD_JULY_2008 版本之前,bShadowParented 只会将父项的阴影投射到 BaseSkelComponent 上。

从 QA_APPROVED_BUILD_JULY_2008 开始,如果 BaseSkelComponent 有效,bShadowParented 标志会将父项的阴影投射到它上面,否则它会使所有投射当前 actor 的分量的阴影将父项的阴影投射到第一个附加到 Base actor 上的阴影投射分量上。 这会使之前提到的所有分量可以投射同一个阴影,这样渲染会更有效率,而且会避免对象投下阴影重叠的地方出现双阴影。

附加物机制


UE3 中有两个附加物机制。

SoftAttach

其中一个附加物机制是供玩家在他们站立在一个对象上时使用的。它是默认的‘软’附加物。随着基础不断移动,它会计算每帧附加的 Actor 的线性运动,然后通过使用该运动尝试移动它使它一直处于同一个相对位置。将它添加到任何玩家运动中,这样玩家就可以仍然在移动对象的顶部跑动。此外,如果移动器在一个低的边缘下运行,那么会正确地推动玩家向后直到他最后掉下去。虽然它可以随着时间的推移缓慢地累积错误(特别是使用旋转的 Actors),但是附加的对象可能还是会逐渐从它的基础中‘漂移’。

HardAttach

另一种附加物机制被称为 HardAttach,而且可以保证附加物通常有一个相对于它的基础的特定位置/旋转。因为它没有正确处理附加物与环境之间的碰撞,所以只能将它用于非碰撞附加物(bBlockActors 是 FALSE)。

要牢记于心的重要的事情是,如果您看到的是附加物慢慢从它们的基础中分离出来,那么请确保将 bHardAttach 标志设置为 TRUE。对于大多数常见的附加 Actors(Emitter(发射器)、PointLightMovable(可移动点光源)等等),它默认为 TRUE。

Matinee


Matinee 应该正确处理基于其他对象的对象。当您关键帧某个基于其他对象的 Actor 时,会相对于基础考虑运动信息。使用这种方法,设置相对于其他 Actors 移动的 Actors(例如,火车上的门),就会变得很容易。此外,当您在 Matinee 中取消运动和动画时,附加的 Actors 应该进行实时更新。最重要的事情是,在您开始使用 Matinee 关键帧它们 之前 ,设置您的附加物。在您已经设置了运动轨道之后进行这项操作可能会产生逻辑混乱的结果。