VMDL 物理网格

From Valve Developer Community
Jump to: navigation, search
English

物理网格(PhysicsMesh)代表一个模型的碰撞体积。

显示

  • 切换物理网格显示,选择 视窗(Display) > 触碰体积(Collision Geo)

创建

编辑

  • 网格可在大纲窗口(outliner),物理网格列表(Physics Mesh List) 菜单项下选择。
  • 选中一个物理网格,在属性编辑器中编辑。

数据结构(Data Structures)

VMDL物理网格数据结构如下:

CVphysicsMeshList m_physicsMeshList = CVphysicsMeshList
{
	CVphysicsMesh[] m_meshList = 
	[
		CVphysicsMesh
		{
			string m_meshName = "sdk_static_prop_physics"
			string m_meshFile = "models/sdk_static_prop/fbx/sdk_static_prop_physics.fbx"
			bool m_bUseExactGeometry = false
			bool m_bAutoMass = true
			float m_flMassOverride = 100.000000
			bool m_bOneConvexPiece = true
			bool m_bConcavePerJoint = false
			bool m_bSelfCollisions = false
			bool m_bForceKinematic = false
			bool m_bIgnoreScale = false
			bool m_bIgnoreSkeleton = false
		}
	]
}

m_physicsMeshList

一个CVphysicsMesh元素列表。

Note:一个VMDL可以 有多个物理网格。网组和LOD组将根据名字归属于网格。

CVphysicsMesh

物理网格的数据描述。

Attribute Friendly Name Description Type Default Value
属性 易记名称 描述 类型 默认值
m_meshName Mesh Name 网格名 string
m_bUseExactGeometry Use Exact Geometry 不实用凸面代替精准几何 bool false
m_bAutoMass Auto Mass 使用自动块运算 bool true
m_flMassOverride Mass Override 如果没有开启自动块运算使用这个代替 float 100.0
m_bOneConvexPiece One Convex Piece 凸面作为一个对象,如果关闭将产生多个凸面 bool false
m_bConcavePerJoint Concave Per Joint 创建关节外壳 bool false
m_bSelfCollisions Self Collisions 自身碰撞 bool false
m_bForceKinematic Force Kinematic 给物体强制赋予运动属性 bool false
m_bIgnoreScale Ignore Scale 忽略比列 bool false
m_bIgnoreSkeleton Ignore Skeleton 忽略骨骼 bool false
Note:物体强制运动、忽略比例和忽略骨架可能是暂时的并且不会对已经编译的网格产生影响。