This article's documentation is for anything that uses the Source engine. Click here for more information.

prop_dynamic

From Valve Developer Community
Jump to: navigation, search
English (en)中文 (zh)
... Icon-Important.png

This page was translated by DaKang233 on January 2, 2023 (UTC+8). Anyone is welcome to add new content or fix errors.


类层级(Class Hierarchy)
CDynamicProp 定义于 props.cpp
CBreakableProp
CBaseProp
CBaseAnimating
CBaseEntity

prop_dynamic is a point entity available in all Source Source games.它用于向世界添加一个可以自己播放动画模型

Tip.pngTip:如果你的模型永远不会移动和/或需要更细节的照明,请考虑使用 prop_static(这是更廉价的)。
Note.pngNote:为了强制保持一致性,默认情况下,prop_dynamic 不能使用具有嵌入式物理数据的模型。使用 Hammer 模型浏览器的“信息”选项卡 (Info) 检查是否支持。如果您打算在非物理角色中使用物理模型,请使用 prop_dynamic_override
AltNames.pngAltNames: This entity is also tied to dynamic_prop. 该 Classname 总是在生成时更改为 prop_dynamic


Blank image.pngTodo: 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 输入根据提示分开
    Icon-Bug.pngBug:模型中的生命值设置将覆盖 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> | 布尔值 (存在于自 Source 2009 以来)
禁用为模型在其模型碰撞中的每个凸面部分生成phys_bone_followerphys_bone_follower可以快速占用实体数量,所以启用此选项对于优化有很大帮助。但是这会禁用模型的碰撞 (【证实】 碰撞类型是否变为了Not Solid?),并且模型不能再用于布娃娃了。
保持动画 (Hold Animation) (HoldAnimation) <boolean> | 布尔值 (in all games since Alien Swarm)
如果启用,模型将不会循环播放动画,但会保持在动画的最后一帧。
为每个帧设置动画 (Animate Every Frame) (AnimateEveryFrame) <boolean> | 布尔值 (in all games since Portal 2)
强制此道具为每个帧设置动画。一般不需要修改。

GMODSandbox:
允许物理枪控制 (Allow Physics Gun) (gmod_allowphysgun) <boolean> | 布尔值 (仅存在于 Garry's Mod 中)
如果禁用,玩家无法在此实体上使用物理枪。
沙盒模式工具白名单列表 (Sandbox Tool Whitelist) (gmod_allowtools) <string简体中文> | 字符串 (仅存在于 Garry's Mod 中)
如果设置,只有被指定的工具才能用于该实体.你需要提供工具的类,工具的.lua文件名称。还包括这些工具的上下文属性!

BreakableProp:

爆炸伤害(ExplodeDamage) <float> | 浮点型
如不为0,当实体被破坏时将会产生特定伤害的爆炸.详见爆炸范围.
爆炸范围 (ExplodeRadius) <float> | 浮点型
如不为0,当实体被破坏时将会对指定范围内造成爆炸伤害.详见爆炸伤害.
被击打的声音(puntsound) <sound> (存在于自 Half-Life 2: Episode One 以来)
当被重力枪击打时发出的音效.
模型破坏行为信息(BreakModelMessage) <string简体中文> | 字符串
"如果指定,会将指定的模型破坏行为信息代替正常的破坏行为."
证实:是否是Source SDK 2013的新功能...? 此功能不存在于Alien SwarmSource 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> (in all games since Left 4 Dead)
Left 4 Dead series。谁能打破这个?
  • 0: Everyone | 所有人
  • 1: All Infected | 仅感染者
  • 2: Only Tanks | 仅 Tank

BaseAnimating:

World Model (model) <string简体中文> | 字符串
需要被使用的模型,限制128字符长度。
Skin (skin or ModelSkin Alien Swarm) <integer> | 整数
一些模型带有不同的皮肤,0为默认。
Collisions (solid) <choices>
该实体的碰撞方式。
Warning icon.png
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 hereIf 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.
Hitbox Set (hitboxset) <string简体中文> | 字符串 不存在于FGD!
设置使用的 $hboxset
Body Group (body or SetBodyGroup) <integer> | 整数 不存在于FGD!
设置模型的 $bodygroup
Model Index (modelindex) <short> 不存在于FGD!
给定转储cl_precacheinfo modelprecache表的数字索引将实体模型设置为索引的。
Warning.pngWarning:如果实体具有将要播放的动画,则设置模型也必须有自己的序列,否则游戏会崩溃。
Model Scale (modelscale) <float> | 浮点型 (存在于自 Half-Life 2: Episode Two 以来) (存在于 Portal Left 4 Dead series Source 2013 中) 不存在于FGD!
模型大小的乘数。接受负值。然而,在大多数情况下不会改变物理碰撞。
Warning.pngWarning:负值或极高值可能导致崩溃!

动画

Sequence (sequence) <integer> | 整数 不存在于FGD!
模型生成后播放的默认动画序列。
Playback Rate (playbackrate) <float> | 浮点型 不存在于FGD!
播放动画的 framerate 的乘数,接受负值。默认值为 1.0
Cycle (cycle) <float> | 浮点型 不存在于FGD!
当前动画的当前帧,范围为 0-1。
Texture Frame (texframeindex) <integer> | 整数 不存在于FGD!
此实体上所有动画纹理的初始帧编号。

效果——渲染

Start Fade Distance (fademindist) <float> | 浮点型
实体开始淡出的距离。如果为 0 或更小,实体将在结束淡入淡出时立即消失。如果实体位于三维天空盒中,该值将适当缩放。
End Fade Distance (fademaxdist) <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 Shadows (disableshadows) <boolean> | 布尔值
防止实体创建廉价的渲染到纹理阴影。不影响阴影贴图
Disable Receiving Shadows (disablereceiveshadows) <boolean> | 布尔值
防止实体接收自身的阴影。
Shadow Cast Distance (shadowcastdist) <integer> | 整数
设置实体投射动态阴影的距离。 0 表示与 shadow_control 实体的默认距离。
Lighting Origin (LightingOrigin) <targetname> | 目标名
选择一个实体(不是info_lighting实体!)从这个点采样照明而不是实体的原点
Lighting Origin Offset (LightingOriginHack) <targetname> | 目标名 (存在于 Left 4 Dead series 中) 不存在于FGD!
info_lighting_relative从这个点采样照明而不是实体的原点。
Disable Flashlight (disableflashlight) <boolean> | 布尔值 (in all games since Portal 2)
用于禁用该实体上的投影纹理的光照和阴影。
Disable ShadowDepth (disableshadowdepth) <boolean> | 布尔值 (in all games since Portal 2)
使该实体不会从env_projectedtexture实体投射阴影。
Projected Texture Cache (shadowdepthnocache) <choices> (in all games since Portal 2)
用于提示投影纹理系统是否足以缓存该实体的阴影体积或强制每帧渲染它。
  • 0: Default
  • 1: No cache - render every frame
  • 2: Cache it - render only once

其他

Move Type (MoveType) <choices> (存在于自 Alien Swarm 以来) 不存在于FGD!
为这个实体设置一个移动类型,这会改变它的移动行为。


Collision Group (CollisionGroup) <choices> (存在于自 Alien Swarm 以来) 不存在于FGD!
为这个实体设置一个碰撞组,这会改变它的碰撞行为。


No Animation Sounds (SuppressAnimSounds) <boolean> | 布尔值 (in all games since Portal 2) 不存在于FGD!
静音与动画相关的声音。

SystemLevelChoice:

Minimum CPU Level (mincpulevel) <choices> (in all games since Left 4 Dead)
CPU级别低于此级别的将不在游戏内呈现此对象,级别由视频设置内的效果细节决定。
Maximum CPU Level (maxcpulevel) <choices> (in all games since Left 4 Dead)


Note.pngNote:键值的名称是因为cpu_level命令;效果详细信息使用的命令。
Minimum GPU Level (mingpulevel) <choices> (in all games since Left 4 Dead)
GPU级别低于此级别的将不在游戏内呈现此对象,级别由视频设置内的Shader细节决定。
Maximum GPU Level (maxgpulevel) <choices> (in all games since Left 4 Dead)


Note.pngNote:键值的名字是因为gpu_level命令; Shader Details 使用的命令。

Base/基础:
Name (targetname) <string简体中文> | 字符串
其他实体用来指代该实体的名称。
Parent简体中文 (parentname) <targetname> | 目标名
实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 (parentname [targetname],[attachment]
Tip.pngTip:转换至下一张地图的实体关系会依然存在。
Tip.pngTip:一些不适合做父实体的实体可能难以运行,利用phys_constraint可以解决。
Origin (X Y Z) (origin) <coordinates>
实体处于世界中的位置,旋转实体会以实体坐标原点旋转。
Note.pngNote:Hammer 不会仅在编辑器中相应地移动实体。
Pitch Yaw Roll (X Y Z) (angles) <angle>
实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转。
Note.pngNote:尽管 Hammer 不显示新角度,但其仍然适用于固实体。
Classname (classname) <string简体中文> | 字符串 不存在于FGD!
确定实体之前它生成的特征。
Tip.pngTip:使用AddOutput输入更改 Classname 仍然会影响游戏的代码,例如使类名与 S_PreserveEnts 列表中的一个元素匹配将使实体在新一轮中持续存在!
Flags (spawnflags) <integer> | 整数 不存在于FGD!
实体所具有的标志/标签,依实体所具有而定。
Effects (effects) <integer> | 整数 不存在于FGD!
要使用的效果标志的组合。
Entity Scripts简体中文 (vscripts) <scriptlist> | 脚本列表 (存在于自 Left 4 Dead 2 以来)
在所有实体生成后执行的 VScript简体中文 文件(无文件扩展名)的空格分隔列表。这些脚本都在同一个脚本范围内执行,以后的脚本会覆盖任何相同的变量和函数。
Thinker Function简体中文 (thinkfunction) <string简体中文> | 字符串 (存在于自 Left 4 Dead 2 以来)
此实体脚本中的函数名称,该函数将在脚本持续时间内每 100 毫秒(每秒 10 次)自动调用一次。它可用于创建计时器或模拟自主行为。返回值(如果存在)将设置下一次调用之前的时间。尽量避免在此函数中进行昂贵的操作,因为它可能会导致性能问题。
Lag Compensation (LagCompensate) <boolean> | 布尔值 (存在于自 Left 4 Dead 2 以来) 不存在于FGD!
设置为以延迟补偿此实体。应该非常谨慎地使用!
Is Automatic-Aim Target (is_autoaim_target) <boolean> | 布尔值 (in all games since Counter-Strike: Global Offensive) 不存在于FGD!
如果设置为 1,当实体位于十字准线下方时,该实体将减慢控制台和操纵杆控制器的瞄准移动速度。


标志

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简体中文> | 字符串 (in all games since Alien Swarm)
强制道具播放动画,除非道具已在播放动画。参数应为动画的名称。
FadeAndKill (in all games since Portal 2)
淡出然后移除此道具。

BreakableProp:

Break
打破易碎物。
SetHealth<integer> | 整数
为易碎物品的运行状况设置新值。如果易碎物品的生命值达到零,它就会被打碎。
AddHealth<integer> | 整数
为易碎物品增加生命值。
RemoveHealth<integer> | 整数
从易碎物中去除生命值。
physdamagescale<float> | 浮点型
设置键值 Physics Impact Damage Scale。0 表示禁用此功能以实现向后兼容性。
EnablePhyscannonPickup
使易碎物能够被重力枪拾取。
DisablePhyscannonPickup
使易碎物无法被重力枪拾起。
EnablePuntSound (存在于自 Half-Life 2: Episode One 以来)
允许此道具在被重力枪击打时播放其 Punt Sound 声音。
DisablePuntSound (存在于自 Half-Life 2: Episode One 以来)
防止此道具在被重力枪撑船时播放其 Punt Sound 声音。

Model:
skin<integer> | 整数
从模型的索引中选择一个 skin English,从 0 开始。
SetBodyGroup<integer> | 整数
设置激活的 $bodygroup English
Ignite
使实体无限期着火。
IgniteLifetime<float> | 浮点型
使实体在给定时间内着火。
BecomeRagdoll
杀死实体并从模型中创建一个客户端范围的布娃娃。仅当模型包含 $collisionjoints English 时才传递输入。对于其他模型,可以使用 phys_convert English 代替。
SetLightingOrigin<targetname> | 目标名
将实体的照明原点设置为指定实体的位置。
fademindist<float> | 浮点型
设置实体开始淡出的距离。如果 <0,实体将在结束淡入淡出时立即消失。如果实体在3D天空盒中,该值将适当缩放。
fademaxdist<float> | 浮点型
设置实体结束淡出的距离。如果 <0,则实体根本不会消失。如果实体在 3D天空盒 中,该值将适当缩放。
SetCycle<float> | 浮点型 (仅存在于 Team Fortress 2 中)
跳到当前动画中的特定点。
SetModel<string简体中文> | 字符串 (仅存在于 Team Fortress 2 中)
将模型更改为指定的路径。格式:models/ammo/ammo_us.mdl
Important template.gif 重要: 绝对没有引号!确保使用正斜杠“/”。Merasmus English 说要听从这个建议,否则你会破坏 VMF 的结构。
SetPlayBackRate<float> | 浮点型 (仅存在于 Team Fortress 2 中)
更改动画速度倍数。
Alpha<integer> | 整数
将实体的透明度设置为从 0(不可见)到 255(完全可见)的数字。要求实体将其键值 Render Mode (rendermode) 设置为0以外的数字。
AlternativeSorting<boolean> | 布尔值
交换实体的渲染顺序。用于在渲染时尝试修复排序问题,例如在半透明材质前渲染对象。
Color<color255简体中文>
为实体设置 RGB 颜色。
SetDamageFilter<targetname> | 目标名
为该实体设置一个过滤器,用于当它受到伤害时。
EnableDamageForces
允许实体因对其造成的伤害而被推动(通常力的大小与造成的伤害相关)。
DisableDamageForces
防止实体受到对其造成的伤害而被推动。

Reflection:
DisableDrawInFastReflection (in all games since Portal 2)
在水材质中使用$reflectonlymarkedentities时,在反射中关闭此实体的渲染。
EnableDrawInFastReflection (in all games since Portal 2)
在水材质中使用$reflectonlymarkedentities时,在反射中打开此实体的渲染。

Shadow:
DisableShadow
为该实体关闭动态阴影
EnableShadow
为该实体开启\动态阴影。
DisableReceivingFlashlight (存在于自 Portal 2 以来)
该对象不会接收来自投影纹理的光或阴影。
EnableReceivingFlashlight (存在于自 Portal 2 以来)
该对象可能会从投影纹理接收光或阴影。

Base:
AddContext<string简体中文> | 字符串
添加到实体的 Response Contexts/响应上下文列表。格式是<key>:<value>
AddOutput<string简体中文> | 字符串
在此实体上分配新的键值/输出。对于键值,有些依赖于额外的必要代码来运行,如果它只是通过这个输入改变就行不通。必须遵循严格的格式:
语法:

ClearContext
从此实体的列表中删除所有上下文。
ClearParent
从移动层次结构中删除该实体,使其可以自由移动。
FireUser1FireUser4
触发相应的OnUser输出;详见 User Inputs and OutputsEnglish
Kill
从这个世界中删除此实体。
KillHierarchy
功能类似Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
RemoveContext
从实体列表删除一个上下文。名字应与现有上下文进行匹配。
SetParent<string简体中文> | 字符串
跟随此实体移动,详见 实体层级(依赖关系)
SetParentAttachment<string简体中文> | 字符串
更改此实体到其父级上的特定附属English点。实体将传送,以至于其骨骼方位English与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset<string简体中文> | 字符串
同上,但没有传送。在接收到输入时,实体保持其相对于附件的位置。
Use 不存在于FGD!
与调用 +use English 的玩家相同[玩家按 +use(使用,默认E按钮)];大多数情况下没有影响。
DispatchResponse<string简体中文> | 字符串 不存在于FGD!
向实体发送一个上下文。 详见 ResponseEnglishConceptEnglish.
DispatchEffect<string简体中文> | 字符串 (自从 Left 4 Dead移除) 不存在于FGD!
在实体的原点坐标设置一个特定效果;参见 List of Client EffectsEnglish。自从Left 4 Dead Left 4 Dead后由粒子系统取代。
RunScriptFile<script> | 脚本 (存在于自 Left 4 Dead 2 以来)
从硬盘执行一个 VScript 脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode<string简体中文> | 字符串 (存在于自 Left 4 Dead 2 以来)
在接收输入的实体范围内执行一串 VScript 源代码。通过控制台触发时可能需要字符串引用。
Icon-Bug.pngBug:在 Hammer 中,使用带有字符串的参数会破坏 VMFEnglish 文件的结构,使下一个 Hammer 会话无法查看该文件。
Fix: 使用文本编辑器手动删除带有字符串的参数。
CallScriptFunction<string简体中文> | 字符串 (存在于自 Left 4 Dead 2 以来) 不存在于FGD!
在接受实体脚本域上执行一段 VScript 函数。
SetLocalOrigin<coordinates> (存在于自 Alien Swarm 以来) 不存在于FGD!
将此实体设置到地图中的某个位置。如果此实体是某实体父级,那么它的子级也会随着移动。
SetLocalAngles<angles> (存在于自 Alien Swarm 以来) 不存在于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_igniterIgnite输入。
OnFizzled (仅存在于 Portal 2 中)
当该实体被光圈科技分解网格或任何其他方式清除时触发,除了使用Dissolve输入。请改用SilentDissolve

Base/基础:

OnUser1OnUser4
这些输出将分别响应于 FireUser1FireUser4 输入。 详见 User Inputs and Outputs
OnKilled (only in Left 4 Dead series)
当实体被Kill输入时响应此输出。

另见