Source SDK

Source SDK

Not enough ratings
prop_data "propiedades del prop"
By Oitnemood
prop_data se puede utilizar para hacer un modelo:
Físico (por defecto los modelos con prop_data no pueden ser estáticos)
Rompible (con gib)
Inflamable
Explosivo

es un bloque KeyValues incrustado con el comando QC $keyvalues.

Nota.png Nota: Las propiedades de la superficie de un modelo están definidas por $surfaceprop.
Nota.png Nota: Los modelos para usar con prop_physics también necesitarán $staticprop.

guía traducida de valve aquí el link de su versión original
https://developer.valvesoftware.com/wiki/Prop_data
   
Award
Favorite
Favorited
Unfavorite
Ejemplo
  • $keyvalues
  • {
  • prop_data
  • {
  • base Wooden.Small //material
  • dmg.bullets 0
  • explosive_damage 100 //daño
  • explosive_radius 50 //radio de explosión de impacto
  • }
  • }

Aquí derivamos prop_data del base_type genérico "Wooden.Small". A continuación, utilizamos keyvalues adicionales para dotar al modelo de tres características especiales: será a prueba de balas, pero cuando se rompa explotará y causará hasta 100 de daño a las entidades en un radio de 50 unidades.
Consejos
No necesitas anular nada en absoluto si no quieres
Simplemente establece una base y ya tienes un prop físico que funciona.

No anules los niveles de salud en todos tus accesorios
En su lugar, deja que los tipos de base establezcan la salud. De esta manera no tendrás una silla que reciba el doble de daño que todas las demás.

Siempre que sea posible, evita mezclar tipos de materiales dentro del mismo accesorio
No hagas accesorios mitad metal y mitad madera.

Evita juntar varios objetos en el mismo atrezzo
Especialmente si tú o Valve simulan individualmente objetos de aspecto idéntico en otro lugar.

Evita mover piezas y materiales que Source no simule
No pongas agua en una pecera física.

¿Mi modelo debe ser físico?
En Half-Life 2, Valve intentó seguir estas reglas generales:

Si va a unirse o actuar como soporte de algo que no se mueve...
Debe ser estático.

Si genera luz estática...
Debe ser estático.

Si es muy grande y el jugador no puede moverlo...
Debe ser estático.

Si no...
Debería ser físico.

Además, Valve considera que el metal y el plástico son invulnerables, pero todo lo demás es rompible.
Opciones
Tipo de base
base <cadena>
Da al modelo un tipo prop_data predefinido, proporcionando en un solo movimiento todos los datos que el motor necesita para que el modelo sea físico y rompible. La mayoría de los otros comandos en un bloque prop_data son anulaciones de valores heredados de aquí.

General
health <int>
La cantidad de daño que este puntal debe recibir antes de romperse. 0 significa que no se rompe.
allowtatic <bool>
Permite que el modelo sea usado con prop_static. Para reforzar la consistencia, evítalo si es posible.

physicsmode <opciones>
Establece el modo de física utilizado por prop_physics_multiplayer. Puede ser anulado por la entidad en la Caja Naranja.
Número Nombre Descripción
1 Sólido, Sólido del lado del servidor, empuja al jugador.
2 No Sólido, no sólido del lado del servidor, pero es empujado por el jugador.
3 No sólido, del lado del cliente No sólido, sólo simulado del lado del cliente.

blockLOS <bool>
Anula si el puntal debe bloquear la línea de visión del NPC. Si no se especifica, el motor del juego decidirá basándose en las dimensiones del modelo.

AIWalkable <bool>
¿Deben los NPCs intentar caminar sobre este puntal? Para hacer: ¿Importa el tipo de puntal?

Modificadores de daño

Utiliza los modificadores de daño para reflejar las diferencias entre la cantidad de daño que un objeto recibe de diferentes ataques. No los utilices para reflejar la fuerza del daño en general. (Por ejemplo, la piedra es resistente a todo. Para reflejar esto, aumenta la salud de todos los objetos de piedra, no bajes los modificadores de daño).

dmg.bullets <float>
Modifica el daño causado por las balas.
Paper, Cloth and Glass = 0.5
Wood = 0.75
Flesh = 1.25.
dmg.club <float>
Modifica el daño causado por los impactos contundentes.
Cloth = 0.75
Paper and Pottery = 1.25
Wood = 2.0
dmg.explosive <float>
Modifica el daño causado por las explosiones.
Paper, Cloth, Pottery, Flesh and Wood = 1.5
damage_table <choices>
Las Tablas de Daño por Impacto están definidas en código C++ (en physics_impact_damage.cpp), y contienen información muy detallada sobre el daño que debe sufrir un puntal por diferentes direcciones y fuerzas. Sólo los tipos base Glass y Pottery heredan una.
Tip.png Tip: Use damage_table "" to ignore an inherited table.
glass
Extremadamente frágil, se rompe con sólo dejarlo caer.
player
To do
player_vehicle
To do
npc
To do

Puntales que explotan
Si se especifican estos dos campos para un puntal, y se le da salud para que pueda ser dañado, entonces explotará cuando se rompa.

explosive_damage <float>
La cantidad de daño explosivo.
explosive_radius <float>
El radio de la explosión. El daño disminuye a medida que aumenta la distancia desde el origen.
Véase la interacción de utilería "explode_fire" para las explosiones que sólo encienden entidades
con Interacciones

Gibs

Las interacciones de los props son técnicamente parte de prop_data y pueden ser usadas en los tipos base e incluso dentro de la sección $keyvalues de prop_data, pero normalmente se usan por separado y pueden ser incrustadas en un modelo como bloques independientes sin el uso directo de prop_data en absoluto.
Se utilizan para realizar funciones específicas como pegarse a una pared cuando se lanza el cañón de gravedad o encenderse cuando está a media salud.

Crea una caja de impacto alrededor de un hueso. Estas cajas de impacto son utilizadas por la IA para colisiones simples, como las balas.
Coordenadas
El sistema prop_data maneja las cuñas genéricas. Los gibs genéricos se utilizan para cualquier objeto rompible que no tenga gibs personalizados.

breakable_model <opciones>
Define el conjunto de plumillas genéricas (como se define en scriptspropdata.txt) en las que debe romperse este objeto de utilería. Los puntales con un tipo de base de madera ya se rompen de esta manera. Véase también la creación de gib personalizadas. (mas tarde lo estara hecha)
WoodChunks "Trozos de madera"

GlassChunks "Trozos de vidrio"

ConcreteChunks "Trozos de hormigón"

MetalChunks "Trozos de metal"

breakable_count <int>
El número de gib genéricas rompibles para romper. Si no se especifica, el motor generará un número razonable basado en los tamaños de las gib y del modelo.

breakable_skin <int>
Permite especificar una piel para usar en los modelos de gib, lo que es útil para que coincida con la piel del puntal original.
Sólo los accesorios con Base_types de madera heredan un skin de gib (skin 0).

multiplayer_break <opciones>
Confirmar: Determina dónde se simulan las gib de un prop_physics_multiplayer.
ambos
servidor
cliente (por defecto)
Para hacer: Confirmar si breakable_count, breakable_skin y multiplayer_break no afectan a las mordazas personalizadas.

A hacer: Confirmar si multiplayer_break se establece para el modelo rompible en lugar de cada gib individual.

Si se define alguna caja de impacto de este modo, se desactiva la generación automática de cajas de impacto.
Creación de nuevos tipos de base
Todos los tipos base están definidos en scriptspropdata.txt. Si edita un tipo base en este archivo, afectará al comportamiento de todos los modelos que lo utilicen (que no tengan sus propias anulaciones).

  • El formato del archivo es:
  • PropData.txt
  • {
  • <nombre del tipo de base>
  • {
  • <cualquier número de los KV prop_data enumerados anteriormente>
  • }
  • }

Por lo general, Valve sólo utiliza sus tipos base para establecer los modificadores de salud y daño.

Creación de gib genéricas

Las coordenadas genéricas también se definen en propdata.txt. Valve sólo tiene cuatro, y sólo una (WoodChunks) está asignada a un tipo base - la mayoría de los modelos especifican la suya directamente, con breakable_model.

Definir un nuevo gibset es fácil ya que la mayor parte del trabajo lo hace el motor:

  • PropData.txt
  • {
  • BreakableModels
  • {
  • WoodChunks //Trozos de madera
  • {
  • // De menor a mayor:
  • models\Gibs\wood_gib01e.mdl 1
  • models\Gibs\wood_gib01d.mdl 1
  • models\Gibs\wood_gib01c.mdl 1
  • models\Gibs\wood_gib01b.mdl 1
  • models\Gibs\wood_gib01a.mdl 1
  • }
  • }
  • }

Prototipos de modelos

Cuando se trabaja con prototipos, o cuando no se tienen modeladores a mano, es útil poder trabajar alrededor de la aplicación del sistema de datos de utilería. Para ello, utilice las entidades prop_physics_override y prop_dynamic_override en lugar de prop_physics y prop_dynamic. Una entidad prop_physics_override no se eliminará a sí misma si se le asigna un modelo que quiere ser estático (es decir, no tiene una entrada "prop_data" en su sección $keyvalues .QC). También permitirá al diseñador de niveles establecer su "resistencia/health".

Las entidades de anulación le permiten utilizar temporalmente los modelos de forma incorrecta mientras se crea un prototipo, o a la espera de que un modelador termine un nuevo modelo que tenga las propiedades que usted desea. Se recomienda encarecidamente que utilice la función de informe de entidades de Hammer para comprobar cada uno de sus mapas y asegurarse de que no quedan entidades de anulación cuando los envíe. De lo contrario, puede estar enviando inconsistencias de física, y los jugadores son extremadamente rápidos para notarlas.

Ver también esta guía para objetos de física basados en brush.
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2383305477