使用 Trajectory Layout 节点¶
使用 Trajectory Layout 节点可沿轨迹路径排列项。
Kanzi Studio 提供多种类型的轨迹。当您需要不同类型的轨迹时,请在第三方工具中创建样条轨迹并将其导入到您的 Kanzi Studio 项目中。请参阅 轨迹 (Trajectories)。
创建一个 Trajectory Layout 节点¶
要创建 Trajectory Layout 节点:
在 Node Tree 中,按 Alt 并右键单击 您要创建 Trajectory Layout 节点的节点,并选择 Trajectory Layout 3D 或 Trajectory Layout 2D。
您只能在 3D 节点中创建 3D 节点,例如 Scene 节点,并且只能在 2D 节点中创建 2D 节点。
小技巧
要查看轨迹,在 Preview 中单击
以进入 Analyze 模式,右键单击
,然后选择 Debug objects。
在 Node Tree 中,将子节点添加到您在上一步中创建的布局中。
例如,如果您创建了一个 Trajectory Layout 3D 节点,请添加几个 Sphere 节点。如果您创建了一个 Trajectory Layout 2D 节点,请添加几个 Image 节点。
当您添加子节点时,Trajectory Layout 节点会将它们沿着 Trajectory Layout 节点使用的轨迹进行定位。
(可选)
Kanzi Studio 默认情况下创建并使用圆形轨迹。您可以使用角度、弧、圆、椭圆、直线、矩形、螺旋、样条或梯形轨迹。请参阅 轨迹 (Trajectories)。
将轨迹拉伸以填充布局¶
默认情况下,Trajectory Layout 节点使用的轨迹大小决定了轨迹在布局中占据的空间量。例如,在 Circle Trajectory 中,Radius 属性决定了轨迹的大小。
要拉伸轨迹以填充布局:
选择一个 Trajectory Layout 节点。
在 Properties 中,添加并启用 Trajectory Layout > Stretch 属性。
调整 Trajectory Layout 节点中项目之间的距离¶
Trajectory Layout 节点会自动计算其子节点之间的距离。
要调整 Trajectory Layout 节点中子节点之间的距离:
选择一个 Trajectory Layout 节点。
在 Properties 中,添加并设置 Trajectory Layout > Override Distance 属性。
调整 Trajectory Layout 节点中项目的位置¶
默认情况下,Trajectory Layout 节点从轨迹样条的起点排列其子节点。
要调整 Trajectory Layout 节点子节点在轨迹上的起始位置:
选择一个 Trajectory Layout 节点。
在 Properties 中,添加并设置 Trajectory Layout > Start Offset 属性。
设置 Trajectory Layout 2D 节点的外观¶
要设置 2D 节点的外观:
您可以使用单色、纹理或材质填充 2D 节点。请参阅 调整 2D 节点的外观。
您可以将后期处理效果应用于2D节点。请参阅 2D 节点的效果。
您可以围绕所有三个轴旋转 2D 节点,以创建 3D 透视效果。请参阅 为2D节点创建3D透视效果。
您可以应用自定义渲染到 2D 节点,以创建后处理效果。请参阅 应用自定义渲染到 2D 节点。
您可以将2D节点渲染为像素完美。请参阅 渲染像素完美的2D节点。
在 API 中使用 Trajectory Layout 节点¶
要创建 Trajectory Layout 3D 节点:
// Create a Trajectory Layout 3D named Trajectory.
TrajectoryLayout3DSharedPtr trajectoryLayout = TrajectoryLayout3D::create(domain, "Trajectory");
要创建轨迹并在 Trajectory Layout 3D 节点中使用它:
// Create a circle trajectory named Circle with radius of 4 device independent units.
// Set the trajectory layout to use it.
TrajectorySharedPtr trajectory = Trajectory::createCircle(Vector3(), Vector3::positiveY(), 0.0f, 4.0f, domain, "Circle");
trajectoryLayout->setTrajectory(trajectory);
要将项添加到 Trajectory Layout 3D 节点:
// Create cube meshes and add them as items of the trajectory layout.
// Items on the trajectory appear in the order you add them to the trajectory layout.
Model3DSharedPtr item1 = Model3D::createCube(domain, "item1", 1.0f, ThemeRed);
trajectoryLayout->addChild(item1);
Model3DSharedPtr item2 = Model3D::createCube(domain, "item2", 1.0f, ThemeGreen);
trajectoryLayout->addChild(item2);
Model3DSharedPtr item3 = Model3D::createCube(domain, "item3", 1.0f, ThemeBlue);
trajectoryLayout->addChild(item3);
Model3DSharedPtr item4 = Model3D::createCube(domain, "item4", 1.0f, ThemeOrange);
trajectoryLayout->addChild(item4);
Model3DSharedPtr item5 = Model3D::createCube(domain, "item5", 1.0f, ThemeGray);
trajectoryLayout->addChild(item5);
要手动将项置于 Trajectory Layout 3D 节点中:
// Position an item in the middle of the trajectory.
TrajectoryLayout3D::setOverrideOffset(*item2, 0.5f);
// Set the distance between the items to one third of the length of the trajectory.
trajectoryLayout->setOverrideDistance(0.3f);
有关详细信息,请参阅 TrajectoryLayout3D 和 TrajectoryLayout2D 类。
Trajectory Layout 属性类型和消息。¶
有关 Trajectory Layout 节点的可用属性类型和消息的列表,请参阅 Trajectory Layout 2D 和 Trajectory Layout 3D。