prop_dynamic
本页面由大康翻译于2023年1月2日 (UTC+8)。欢迎任何人补充新内容或者修改其中的错误。
类层级(Class Hierarchy) |
---|
CDynamicProp 定义于 props.cpp 中
|
prop_dynamic
是一个点实体存在于所有的 起源 游戏。它用于向世界添加一个可以自己播放动画的模型。
提示:如果你的模型永远不会移动和/或需要更细节的照明,请考虑使用
prop_static
(这是更廉价的)。注意:为了强制保持一致性,默认情况下,prop_dynamic 不能使用具有嵌入式物理数据的模型。使用 Hammer 模型浏览器的“信息”选项卡 (Info) 检查是否支持。如果您打算在非物理角色中使用物理模型,请使用
prop_dynamic_override
。AltNames: 此实体也绑定到
dynamic_prop
。 该 Classname 总是在生成时更改为 prop_dynamic。
待完善: This template is currently using deprecated
suf
or {{Lang}}-based translations. Please use the main {{Code class}} instead, which uses {{Autolang}}.
在源代码中,它由 class CDynamicProp
代表,定义于 props.cpp
。
使用
- 可以通过将 prop_dynamic 的 Parent 设置为
func_button
固体来创建按钮。这将导致道具上的 +use 输入被转发到func_button
,它可以放置在地图中的任何位置(甚至地图外,只要原点在里面)。然后,可以使用 SetAnimation 输入使道具在与之交互时动画化。 - 同样,可以通过将 prop_dynamic 的 Parent 设置为
func_rot_button
(或momentary_rot_button
)固体来创建杠杆。这不需要动画 - 固体将自行旋转道具。和上面一样,实体可以放置在任何位置,只要原点位于你希望它旋转的点即可。 - prop_dynamic 可以配置为在受到伤害后或使用 Break 输入根据提示分开。错误:模型中的生命值设置将覆盖 Hammer 中的生命值设置!
键值
DynamicProp:
- 默认动画 (Default Animation)
(DefaultAnim)
<string
> | 字符串 - 不执行动画时所将播放的动画。
- 随机动画 (Randomly Animate)
(RandomAnimation)
<boolean>
| 布尔值 - 使模型在最小/大随机动画间隔时长 键值的定义下。随机性的播放模型动画,当播放完毕后,将变回默认动画。
- 最小随机动画间隔时长 (Min Random Anim Time)
(MinAnimTime)
<float>
| 浮点型 - 每一次随机动画间隔的最小时长。
- 最大随机动画间隔时长 (Max Random Anim Time)
(MaxAnimTime)
<float>
| 浮点型 - 每一次随机动画间隔的最大时长。
- 更新子实体 (Update children)
(updatechildren)
<boolean>
| 布尔值 - 证实:此值默认为1。当设置为0时,作为附件绑定到该实体的Attachment的任何子实体都不会更新 (似乎没啥用)
- 禁用Bone Followers (Disable Bone Followers)
(DisableBoneFollowers)
<boolean>
| 布尔值 (存在于自 以来) - 禁用为模型在其模型碰撞中的每个凸面部分生成
phys_bone_follower
。phys_bone_follower
可以快速占用实体数量,所以启用此选项对于优化有很大帮助。但是这会禁用模型的碰撞 (【证实】 碰撞类型是否变为了Not Solid?),并且模型不能再用于布娃娃了。 - 保持动画 (Hold Animation)
(HoldAnimation)
<boolean>
| 布尔值 (存在于自 以来) - 如果启用,模型将不会循环播放动画,但会保持在动画的最后一帧。
- 为每个帧设置动画 (Animate Every Frame)
(AnimateEveryFrame)
<boolean>
| 布尔值 (存在于自 以来) - 强制此道具为每个帧设置动画。一般不需要修改。
GMODSandbox:
- 允许物理枪控制 (Allow Physics Gun)
(gmod_allowphysgun)
<boolean>
| 布尔值 (仅存在于 中) - 如果禁用,玩家无法在此实体上使用物理枪。
- 沙盒模式工具白名单列表 (Sandbox Tool Whitelist)
(gmod_allowtools)
<string
> | 字符串 (仅存在于 中) - 如果设置,只有被指定的工具才能用于该实体.你需要提供工具的类,工具的.lua文件名称。还包括这些工具的上下文属性!
BreakableProp:
- 爆炸伤害(ExplodeDamage)
<float>
| 浮点型 - 如不为0,当实体被破坏时将会产生特定伤害的爆炸.详见爆炸范围.
- 爆炸范围 (ExplodeRadius)
<float>
| 浮点型 - 如不为0,当实体被破坏时将会对指定范围内造成爆炸伤害.详见爆炸伤害.
- 被击打的声音(puntsound)
<sound>
(存在于自 以来) - 当被重力枪击打时发出的音效.
- 模型破坏行为信息(BreakModelMessage)
<string
> | 字符串 - "如果指定,会将指定的模型破坏行为信息代替正常的破坏行为." 证实:是否是Source SDK 2013的新功能...? 此功能不存在于Alien Swarm或Source 2007的代码里,但在Source 2013里出现了.是L4D的新功能?
Breakable (common):
- Performance Mode
(PerformanceMode)
<choices>
- 出于性能原因,用于限制此实体中断时产生的 Gib (碎片) (实体残骸的高级行为) 数量。
- 0: Normal | 普通
- 1: No Gibs | 无碎片
- 2: Full Gibs on All Platforms (Xbox 360, PS3, etc) | 在所有平台上使用完整的碎片 (Xbox 360, PS3 等)
- 3: Reduced gibs | 减少碎片
- Min Damage to Hurt
(minhealthdmg)
<integer>
| 整数 - 如果对物体的单次打击至少没有造成这里指定的伤害,那么道具将不会承受它试图给予的任何伤害。
- Pressure Delay
(pressuredelay)
<float>
| 浮点型 - 延迟从压力中被破坏掉的秒数。允许播放吱吱声/呻吟声。
- Health
(health)
<integer>
| 整数 - 物件的血量。
- Maximum Health
(max_health)
<integer>
| 整数 - Heath 不能超过这个数量。
- Physics Impact Damage Scale
(physdamagescale)
<float>
| 浮点型 - 此实体被物理对象击中时的伤害量乘数。值为 0 时,实体不会受到物理伤害。
- Breakable By
(BreakableType)
<choices>
(存在于自 以来) - 仅 。谁能打破这个?
- 0: Everyone | 所有人
- 1: All Infected | 仅感染者
- 2: Only Tanks | 仅 Tank
BaseAnimating:
This article has been marked as a candidate for speedy deletion because it has been deprecated.
If you object to this decision, then please discuss why here. If this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators - Remember to check if anything links here and the page history (last edit) before deleting.
If you object to this decision, then please discuss why here. If this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators - Remember to check if anything links here and the page history (last edit) before deleting.
- 2: Bounding Box | 碰撞边界
- 3: Oriented Bounding Box (用于运行时生成的旋转固体实体) 不存在于FGD!
- 4: Oriented Bounding Box, 仅限于 Yaw 不存在于FGD!
- 5: Custom/Test | 自定义/测试 (通常不会与任何东西发生碰撞) 不存在于FGD!
- 6: VPhysics
- Body Group
(body or SetBodyGroup)
<integer>
| 整数 不存在于FGD! - 设置模型的 $bodygroup。
- Model Index
(modelindex)
<short>
不存在于FGD! - 给定转储
cl_precacheinfo modelprecache
表的数字索引将实体模型设置为索引的。警告:如果实体具有将要播放的动画,则设置模型也必须有自己的序列,否则游戏会崩溃。
- Model Scale
(modelscale)
<float>
| 浮点型 (存在于自 以来) (不存在于 中) 不存在于FGD! - 模型大小的乘数。接受负值。然而,在大多数情况下不会改变物理碰撞。
- 警告:负值或极高值可能导致崩溃!
动画
效果——渲染
- Start Fade Distance
(fademindist)
<float>
| 浮点型 - 实体开始淡出的距离。如果为 0 或更小,实体将在结束淡入淡出时立即消失。如果实体位于三维天空盒中,该值将适当缩放。
- Fade Scale
(fadescale)
<float>
| 浮点型 - 如果在
worldspawn
中指定,或者如果引擎在 DirectX 8 下运行,即使没有指定上面的淡出距离,实体也会淡出。这个值可以更好地控制何时发生这种情况:小于 1 的数字会导致实体在更远的距离淡出,而大于 1 的数字会导致它在更近的距离淡出。使用 0 会完全关闭强制淡入淡出。另见$noforcedfade
。
- Render FX / Transparency (0 - 255)
(renderamt)
<integer>
| 整数 - 透明度数,需要正常以外的渲染模式。 0 是不可见的,255 是完全可见的。
- Render Color (R G B)
(rendercolor)
<color255>
- 色调。
- Render FX
(renderfx)
<choices>
- 外观效果的预设模式。
- Render Mode
(rendermode)
<choices>
- 在此实体上设置非标准渲染模式。
效果——环境
- Disable Receiving Shadows
(disablereceiveshadows)
<boolean>
| 布尔值 - 防止实体接收自身的阴影。
- Shadow Cast Distance
(shadowcastdist)
<integer>
| 整数 - 设置实体投射动态阴影的距离。 0 表示与 shadow_control 实体的默认距离。
- Lighting Origin
(LightingOrigin)
<targetname>
| 目标名 - 选择一个实体(不是
info_lighting
实体!)从这个点采样照明而不是实体的原点。
- Lighting Origin Offset
(LightingOriginHack)
<targetname>
| 目标名 (不存在于 中) 不存在于FGD! info_lighting_relative
从这个点采样照明而不是实体的原点。
- Disable ShadowDepth
(disableshadowdepth)
<boolean>
| 布尔值 (存在于自 以来) - 使该实体不会从
env_projectedtexture
实体投射阴影。
- Projected Texture Cache
(shadowdepthnocache)
<choices>
(存在于自 以来) - 用于提示投影纹理系统是否足以缓存该实体的阴影体积或强制每帧渲染它。
- 0: Default
- 1: No cache - render every frame
- 2: Cache it - render only once
其他
- Move Type
(MoveType)
<choices>
(存在于自 以来) 不存在于FGD! - 为这个实体设置一个移动类型,这会改变它的移动行为。
- Collision Group
(CollisionGroup)
<choices>
(存在于自 以来) 不存在于FGD! - 为这个实体设置一个碰撞组,这会改变它的碰撞行为。
SystemLevelChoice:
注意:键值的名称是因为
cpu_level
命令;效果详细信息使用的命令。
注意:键值的名字是因为
gpu_level
命令; Shader Details 使用的命令。Base/基础:
- Parent
(parentname)
<targetname>
| 目标名 - 实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 (
parentname [targetname],[attachment]
)提示:转换至下一张地图的实体关系会依然存在。提示:一些不适合做父实体的实体可能难以运行,利用phys_constraint
可以解决。
- Origin (X Y Z)
(origin)
<coordinates>
- 实体处于世界中的位置,旋转实体会以实体坐标原点旋转。注意:Hammer 不会仅在编辑器中相应地移动实体。
- Pitch Yaw Roll (X Y Z)
(angles)
<angle>
- 实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转。注意:尽管 Hammer 不显示新角度,但其仍然适用于固实体。
- Classname
(classname)
<string
> | 字符串 不存在于FGD! - 确定实体之前它生成的特征。提示:使用
AddOutput
输入更改 Classname 仍然会影响游戏的代码,例如使类名与 S_PreserveEnts 列表中的一个元素匹配将使实体在新一轮中持续存在!
- Entity Scripts
(vscripts)
<scriptlist>
| 脚本列表 (存在于自 以来) - 在所有实体生成后执行的 VScript 文件(无文件扩展名)的空格分隔列表。这些脚本都在同一个脚本范围内执行,以后的脚本会覆盖任何相同的变量和函数。
- Thinker Function
(thinkfunction)
<string
> | 字符串 (存在于自 以来) - 此实体脚本中的函数名称,该函数将在脚本持续时间内每 100 毫秒(每秒 10 次)自动调用一次。它可用于创建计时器或模拟自主行为。返回值(如果存在)将设置下一次调用之前的时间。尽量避免在此函数中进行昂贵的操作,因为它可能会导致性能问题。
- Lag Compensation
(LagCompensate)
<boolean>
| 布尔值 (存在于自 以来) 不存在于FGD! - 设置为是以延迟补偿此实体。应该非常谨慎地使用!
标志
DynamicProp:
- [
64
] : Use Hitboxes for Renderbox | 将命中框用于渲染框
- [
256
] : Start with collision disabled | 开始时禁用碰撞
BreakableProp:
- [
16
] : Break on Touch | 触碰时破裂
- [
32
] : Break on Pressure | 受到压力时破裂
输入
DynamicProp:
SetAnimation
<string
> | 字符串- 强制道具播放已命名动画。
SetDefaultAnimation
<string
> | 字符串- 更改不在随机/强制序列中播放的动画。
SetPlaybackRate
<float>
| 浮点型- 设置播放动画的帧速率。
TurnOff
- 通过
EF_NODRAW
隐藏道具。Disable
输入执行完全相同的操作。
TurnOn
- 显示道具(通过删除
EF_NODRAW
)。Enable
输入执行完全相同的操作。
DisableCollision
- 禁用道具的碰撞。
EnableCollision
- 启用道具的碰撞。
SetAnimationNoReset
<string
> | 字符串 (存在于自 以来)- 强制道具播放动画,除非道具已在播放动画。参数应为动画的名称。
BreakableProp:
Break
- 打破易碎物。
SetHealth
<integer>
| 整数- 为易碎物品的运行状况设置新值。如果易碎物品的生命值达到零,它就会被打碎。
AddHealth
<integer>
| 整数- 为易碎物品增加生命值。
RemoveHealth
<integer>
| 整数- 从易碎物中去除生命值。
physdamagescale
<float>
| 浮点型- 设置键值 Physics Impact Damage Scale。0 表示禁用此功能以实现向后兼容性。
EnablePhyscannonPickup
- 使易碎物能够被重力枪拾取。
DisablePhyscannonPickup
- 使易碎物无法被重力枪拾起。
Model:
SetBodyGroup
<integer>
| 整数- 设置激活的
$bodygroup
。
Ignite
- 使实体无限期着火。
IgniteLifetime
<float>
| 浮点型- 使实体在给定时间内着火。
BecomeRagdoll
- 杀死实体并从模型中创建一个客户端范围的布娃娃。仅当模型包含
$collisionjoints
时才传递输入。对于其他模型,可以使用phys_convert
代替。
SetLightingOrigin
<targetname>
| 目标名- 将实体的照明原点设置为指定实体的位置。
fademaxdist
<float>
| 浮点型- 设置实体结束淡出的距离。如果 <0,则实体根本不会消失。如果实体在 3D天空盒 中,该值将适当缩放。
SetCycle
<float>
| 浮点型 (仅存在于 中)- 跳到当前动画中的特定点。
SetModel
<string
> | 字符串 (仅存在于 中)- 将模型更改为指定的路径。格式:models/ammo/ammo_us.mdl。
重要: 绝对没有引号!确保使用正斜杠“/”。Merasmus 说要听从这个建议,否则你会破坏 VMF 的结构。
SetPlayBackRate
<float>
| 浮点型 (仅存在于 中)- 更改动画速度倍数。
Alpha
<integer>
| 整数- 将实体的透明度设置为从 0(不可见)到 255(完全可见)的数字。要求实体将其键值 Render Mode (rendermode) 设置为
0
以外的数字。
AlternativeSorting
<boolean>
| 布尔值- 交换实体的渲染顺序。用于在渲染时尝试修复排序问题,例如在半透明材质前渲染对象。
Color
<color255>
- 为实体设置 RGB 颜色。
SetDamageFilter
<targetname>
| 目标名- 为该实体设置一个过滤器,用于当它受到伤害时。
EnableDamageForces
- 允许实体因对其造成的伤害而被推动(通常力的大小与造成的伤害相关)。
DisableDamageForces
- 防止实体受到对其造成的伤害而被推动。
Reflection:
Shadow:
Base:
AddContext
<string
> | 字符串- 添加到实体的 Response Contexts/响应上下文列表。格式是
<key>:<value>
。
语法:
ClearContext
- 从此实体的列表中删除所有上下文。
ClearParent
- 从移动层次结构中删除该实体,使其可以自由移动。
FireUser1
到FireUser4
- 触发相应的
OnUser
输出;详见 User Inputs and Outputs。
Kill
- 从这个世界中删除此实体。
KillHierarchy
- 功能类似
Kill
,尽管此实体与其父实体都被删除了,但比Kill
快一点。
RemoveContext
- 从实体列表删除一个上下文。名字应与现有上下文进行匹配。
SetParent
<string
> | 字符串- 跟随此实体移动,详见 实体层级(依赖关系)。
SetParentAttachmentMaintainOffset
<string
> | 字符串- 同上,但没有传送。在接收到输入时,实体保持其相对于附件的位置。
DispatchResponse
<string
> | 字符串 不存在于FGD!- 向实体发送一个上下文。 详见 Response 和 Concept.
DispatchEffect
<string
> | 字符串 (自从 被移除) 不存在于FGD!- 在实体的原点坐标设置一个特定效果;参见 List of Client Effects。自从 求生之路后由粒子系统取代。
RunScriptCode
<string
> | 字符串 (存在于自 以来)- 在接收输入的实体范围内执行一串 VScript 源代码。通过控制台触发时可能需要字符串引用。错误:在 Hammer 中,使用带有字符串的参数会破坏 VMF 文件的结构,使下一个 Hammer 会话无法查看该文件。
- 修复: 使用文本编辑器手动删除带有字符串的参数。
SetLocalOrigin
<coordinates>
(存在于自 以来) 不存在于FGD!- 将此实体设置到地图中的某个位置。如果此实体是某实体父级,那么它的子级也会随着移动。
输出
DynamicProp:
OnAnimationBegun
- 动画开始时触发。
OnAnimationDone
- 动画结束时触发。
BreakableProp:
OnBreak
- 当此物件被破坏时触发。
!activator
是执行破坏者。
OnHealthChanged
<float>
| 浮点型- 每当易碎物品的生命值增加或减少时触发。如果地图作者没有用其他内容覆盖参数,则此输出会自动将新的生命值作为十进制百分比(例如 45% = 0.45)放入输入的参数框中。
OnTakeDamage
- 当受到伤害时触发。
OnPhysCannonAnimatePreStarted
- 当道具开始活动
ACT_PHYSCANNON_ANIMATE_PRE
时触发。由重力枪拾取的物体引起。
OnPhysCannonAnimatePullStarted
- 当道具开始活动
ACT_PHYSCANNON_ANIMATE
时触发。ACT_PHYSCANNON_ANIMATE_PRE
一旦执行,然后ACT_PHYSCANNON_ANIMATE
开始持续执行。
OnPhysCannonDetach
- 当道具开始活动
ACT_PHYSCANNON_DETACH
时触发 (由重力枪将其从墙上弄破引起的)。
OnPhysCannonAnimatePostStarted
- 当道具开始活动
ACT_PHYSCANNON_ANIMATE_POST
时触发 (由于玩家让道具从重力枪上移开而引起)。
OnPhysCannonPullAnimFinished
- 在道具完成所有与重力枪相关的动画时触发。
Model:
OnIgnite
不存在于FGD!- 当实体着火时触发,例如来自
env_entity_igniter
或Ignite
输入。 OnFizzled
(仅存在于 中)- 当该实体被光圈科技分解网格或任何其他方式清除时触发,除了使用
Dissolve
输入。请改用SilentDissolve
。
Base/基础:
OnUser1
到OnUser4
- 这些输出将分别响应于
FireUser1
到FireUser4
输入。 详见 User Inputs and Outputs。 OnKilled
(仅存在于 之中)- 当实体被Kill输入时响应此输出。