UDN
Search public documentation:

UsingStaticMeshActorsCH
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


概述


静态网格物体是虚幻3引擎中的可渲染集合体的基础种类。要用这些网格物体来美化您的世界,可以用静态网格actor。这种显示单个静态网格物体的actor并且在运行时不能进行移动或修改操作;比如说,它是 静态 的。这些actor用来创建在地图中的世界几何体的主体。

staticmeshactor.jpg

放置


静态网格actor通过使用标准actor放置方法放置在地图中,也可以通过右击视口中的关联菜单,或者从 Content Browser(内容浏览器) 中拖曳放置。

关联菜单

  1. 在内容浏览窗口中,选中您想以静态网格actor的形式添加到地图里的静态网格物体。
    place_select.jpg
  2. 在视口中右击您想放置网格物体的位置并从关联菜单中选择 Add StaticMesh: [MeshAssetPath](添加静态网格:[网格物体路径]) 。关联菜单中的 Add RigidBody(添加刚体):[MeshAssetPath(网格物体路径)] 。位置不必非常精确。您也可以事后任意进行重新放置、旋转和框选网格物体。
    place_context_add.jpg
  3. 静态网格物体已经以静态网格actor的形式放置在地图中了, 如 Property Window 所示。
    place_complete.jpg

拖曳并放置

  1. 在浏览窗口中,定位您想以静态网格actor的形式添加进地图中的静态网格物体。
    place_select.jpg
  2. 在内容浏览器中左击静态网格物体,从内容浏览器中用鼠标拖拽(同时压低鼠标左键)到视口中您想要放置网格物体的位置。位置不必非常精确。您也可以事后任意进行重新放置、旋转和框选网格物体。
    place_drag.jpg
  3. 放开鼠标左键在地图中以静态网格actor的形式放置网格物体,如 Property Window 所示。
    place_complete.jpg

转换到/从其他actor转换


静态网格actor能同其他特定种类的actor相互转换,只要这些actor在视口的右击关联菜单中可以显示一个静态网格物体即可。果您决定需要将事先放置在地图中的KActor或InterpActor改成静态网格actor,操作起来将十分方便,反过来操作也很方便。

转换到一个静态网格actor

  1. 在视口中,选中您想要转换成静态网格actor的actor。
    convert_select.jpg
  2. 右击该actor并选择 Convert(转换) > Convert [CurrentActorType] to StaticMeshActor (转换当前actor种类到静态网格物体actor)
    convert_context.jpg
  3. 该actor已经转换成一个静态网格actor,您可以在 Property Window 中查看。
    convert_complete.jpg

从静态网格actor转换

从静态网格actor转换到其他种类的过程和其他种类转换到静态网格actor的过程是一样的,如上所示。下面列出的是能转换成静态网格actor的actor类型:

材质覆盖


在每个actor上都能覆盖应用在一个静态网格物体上的材质。这样就能在一个单张地图中或整个游戏中反复使用一个单个静态网格物体,使每个静态物体都呈现出独特的外表。*Materials(材质)* 属性位于静态网格actor的静态网格组件 Rendering渲染 类别中,它是通过Static Mesh Editor(静态网格物体编辑器) 直接映射到那些应用到静态网格物体上的一系列材质。材质可以手动应用到数组中,或者通过从内容浏览器中拖拽和放置,在视口中直接将材质应用到网格物体上。

手动赋值

  1. 在视口中,选中您想要赋予新材质的静态网格actor并按 F4 在属性窗口中打开它的属性。
    material_properties.jpg
  2. StaticMeshComponent(静态网格组件)Rendering(渲染) 类别中,通过点击 add_item_button.jpg 按钮添加一个新的项到 Materials 数组。如果该静态网格物体有多个材质槽,您必须在数组中添多个项,使它们的数量能同静态网格物件的材质槽数量相符。
  3. 在内容浏览窗口中,选中您想在地图里应用到静态网格actor上的材质。
    material_select.jpg
  4. Materials(材质) 数组中按下 use_selected_button.jpg 给相关项的按钮赋予材质。现在显示材质已经应用到网格上了。
    material_complete.jpg

拖曳并放置

  1. 在内容浏览窗口中,定位您想应用到地图中的静态网格物体actor上的材质。
    material_select.jpg
  2. 在浏览窗口中在材质上左击并从Conteng Browser(内容浏览器)中拖曳鼠标(同事压低鼠标左键)到视口中您想应用该材质的静态网格Actor部分。
    material_drag.jpg
  3. 放开鼠标左键应用该材质。现在所看到的网格物体已经应用了材质,并且在属性窗口中的 Materials(材质) 数组已经更新。
    material_complete.jpg

碰撞


静态网格actor默认使用 COLLIDE_BlockAll(碰撞_屏蔽所有) Collision Type(碰撞种类).。这意味着要它们要屏蔽所有的actor和在世界中所有的轨迹。既然静态网格actor通常应用在放置世界几何体时,这一般也是所期望的。但是,碰撞计算需要代价,所以任何不需要同其他actor碰撞的静态网格actor应该关闭他们的碰撞。例如,在场景中玩家碰触不到的那些小的装饰物和背景并不真的需要阻挡任何东西。

选定的静态网格物体是装饰性的网格物体,可能不需要碰撞。
collision_deco.jpg

所选中窗外的的静态网格actor组成了玩家触碰不到的背景场景。 collision_unreachable.jpg

Collision Types-碰撞种类

Collision Type(碰撞种类) 属性呈现多个碰撞属性的简单方法。在虚幻编辑器中更改这个数值会在actor上设置低关卡标记,如 CollideActors(碰撞actor), BlockActors(屏蔽actor), BlockZeroExtent(屏蔽零粗细) 以及它的 CollisionComponent(碰撞组件) 以便同碰撞种类的描述匹配。

Collision Type(碰撞种类) 描述
COLLIDE_CustomDefault 程序员设置碰撞。选中该项时在默认属性中把碰撞恢复到默认设置。
COLLIDE_NoCollision actor既不会屏蔽也不会触碰其他actor或者轨迹。
COLLIDE_BlockAll actor会屏蔽其他actor和轨迹
COLLIDE_BlockWeapons actor只会屏蔽零粗细轨迹,如即时击打武器。
COLLIDE_TouchAll actor会碰撞其他actor和轨迹。
COLLIDE_TouchWeapons actor只会触碰零粗细轨迹,如即时击打武器。
COLLIDE_BlockAllButWeapons actor只会阻挡其他actor和非零粗细轨迹
COLLIDE_TouchAllButWeapons actor只会触碰其他actor和非零粗细轨迹。
COLLIDE_BlockWeaponsKickable COLLIDE_BlockWeapons 相同,但也会允许玩家踢这个actor

Collision Properties(碰撞属性)

Collide Complex(复杂碰撞)
如果启用,在这个actor上简化碰撞会被忽略,并且会表现在每个多边形上。简化碰撞几何体在虚幻编辑器中或3D内容创建包中生成。碰撞每个多边形对非零粗细踪迹来说十分有用,这样子弹就能精确碰撞。碰撞每个多边形不推荐在actor移动中应用,这样对性能要求太高。
Block Rigid Body(屏蔽刚体)
如果启用,使用Physx的actor应该同actor对碰。
No Encroach Check(侵占检测)
如果启用,当这个actor移动关闭时,启用encroachment check(侵占检测)。启用该项将会加速游戏的运行,但是 Actor 将不能触碰触发器、推动玩家,进入或走出体积。
Path Colliding(路径碰撞)
如果启用,该actor在虚幻编辑器建立路径时屏蔽路径。
Collision Component(碰撞组件)
用来计算这个actor碰撞的组件引用

距离剔除


依据照相机到静态网格物体的距离,使用__StaticMeshComponent(静态网格物体组件)__ (位于 Rendering 类别中)的 MinDrawDistanceMaxDrawDistance 属性可以控制静态网格actor的可见性。这两个属性能使您指定从相机的最大和最小距离,相机的位置为将要渲染静态网格actor的地方。

distance_cull.jpg

在渲染网格物体的地方控制距离的功能可以在玩家距离网格物体过远而看不见它们时用来隐藏网格物体,或者可以通过在低分辨率的 MinDrawDistance 和高分辨率的 MaxDrawDistance 相同的地方放置多个静态网格actor的方法,使用低分辨率替代物(或者单个替代多个高分辨率网格物体的替代物)来替代一个或多个高分辨率网格物件。

distance_swap.jpg

当然,仅仅使用由静态网格物体过度而来的LOD系统可以达到如上所述同样的效果,但是这种方法可以使关卡设计师修改设置,因为 Mesh Simplification Tool(网格物体简化工具)? 可以在虚幻编辑器中使用现有网格物体来制作低分辨率版本。如上所述,多个高分辨率网格物体可以使用单个低分辨率替代品替代,这样不仅能降低多边形数量,而且能降低描画函数调用的次数。Massive LOD系统也是基于同样的概念。

请参阅 Visibility Culling 获取更多如何在虚幻3引擎中控制静态网格物体和其他几何物体可见性的信息。