Sub-models
#1
Buenos días, queridos usuarios del foro! Busqué info sobre cómo agregar sub-models a un model de varias maneras pero no logré encontrar nada al respecto. Hoy estoy aquí para pedirles si me pueden enseñar o en su defecto guiar y pasar fuentes para poder agregarle sub-models a un model ya creado, es decir que se le pueda cambiar las texturas, en pawn se puede seleccionar esas texturas diferentes mediante "pev_skin" una función de fakemeta.
Muchas gracias por su atención! Saludos!
Responder
#2
No estoy muy seguro la ultima parte sobre el "pev_skin" ya que ese atributo corresponde a los Skins y no a los submodelos (o capaz entendi mal), ya que de 1 modelo se puede desglosar:

1) Skins
2) Submodelos

Obviamente cada uno tiene una propiedad diferente, siendo los Submodelos seteados mediante:

Código PHP:
set_pev (idpev_bodyNUMERO


(Partiendo desde 0)

y los Skins con:

Código PHP:
set_pev(idpev_skinNUMERO

_________________________________________________

Para agregar submodelos, debes tener en consideración el tema de las animaciones, si las comparten y son idénticas, no hay problema, recuerda que el modelo solo posee 1 set de animaciones para todos los submodelos.

Yo en este caso trabajare con 2 submodelos.

1 modelo de sandbags amarillo y otro set de sandbags plateado.

[Imagen: 7bd186d1c4e1bd3f185c5fcd1ee36616.png]

Tengo los 2 modelos ya descompilados en una carpeta.

[Imagen: b90fba4f0c59fe18bb5be98a65b1fd98.png]

En mi caso, me arrojaron 2 referencias.

"NormalSandbags.smd" (Referencia del sandbag amarillo)
"PlatinumSandbags.smd" (Referencia del sandbag plateado)

Los 2 comparten 1 misma animación, "idle" (esta es una animación estática, no hace nada), idle.smd.

Y nos arrojara la descompilacion sus texturas en .bmp (de cada modelo que queremos agregar).

Siendo skin1.bmp y skin2.bmp las de Sandbags amarillo y skin1_platinum.bmp y skin2_platinum.bmp las del Sandbags plateado.

Y el archivo que importa. el *.qc

En este caso trabajare con 1 solo .qc (nos debería arrojar 2, 1 por cada modelo).

[Imagen: 18ec87aed0e111d2a1975b628792b3d3.png]

Lo que importa es el $bodygroup "MisSubmodelos"

ahi pones la primera referencia que seria el Modelo1 y la segunda referencia que seria el Modelo2 y asi para cada modelo...

Al tener eso, guardamos y compilamos.

Resultado:

[Imagen: 59a3220e87900b80890d4208a830eedf.png]

[Imagen: 88966ea9a8ea78618cdb5ad795bb6a72.png]

Es un poco tedioso de explicar porque no es taaan simple de primeras, cualquier cosa si necesitas algo mas exacto te puedo ayudar.
Responder
#3
Muchas gracias hermano!!!! Intentaré y si necesito algo mas aviso! Se agradece de corazón!
Preguntas: Cuál es la diferencia entre skin y body? Ya que yo necesito que sea si o si con "skin" porque el pev_body lo utilizo para almacenar información en las entidades. Pregunto xq vi que trabajaste con el $bodygroup. Para las skins sería $skingroup? y funciona de la misma manera? Gracias!
Responder
#4
(23/03/2019, 07:19 PM)Gonza.-* escribió: Muchas gracias hermano!!!! Intentaré y si necesito algo mas aviso! Se agradece de corazón!
Preguntas: Cuál es la diferencia entre skin y body? Ya que yo necesito que sea si o si con "skin" porque el pev_body lo utilizo para almacenar información en las entidades. Pregunto xq vi que trabajaste con el $bodygroup. Para las skins sería $skingroup? y funciona de la misma manera? Gracias!

La diferencia es que con Skins tu trabajas con las texturas (.bmp) y no con las referencias.

$bodygroup -> 1 referencia = 1 Submodelo

Los skins trabajan con los .bmp

La forma de setearlo es mucho mas facil de hecho, mira:

[Imagen: c831b741756f54ebad6fca5c2f775efa.png]

Cada fila representa 1 skin.

Esta explicado de una forma "simple", cualquier cosa me comentas acá o por MP y te puedo instruir mejor. No soy muy bueno explicando jaja

Acá tienes mas documentación acerca de los skins, submodelos, parametros, etc dentro de un *.qc
GOLDSRC MDL QC COMMANDS
Responder
#5
(23/03/2019, 06:15 PM)Gonza.-* escribió: Busqué info sobre cómo agregar sub-models a un model

(23/03/2019, 06:15 PM)Gonza.-* escribió: es decir que se le pueda cambiar las texturas


Son cosas totalmente diferentes.

El primero, se implementa con la directiva $bodygroup, que permite añadir varios modelos creados, para que co-existan en uno solo.

El segundo, implementado por $texturegroup, permite utilizar diferentes texturas, que esten aplicadas a una misma parte de un modelo (o el modelo completo).

Dejando de lado la teoría, paso a explicarte como usarlo.



Directiva: $bodygroup

Para utilizar $bodygroup, solo necesitas tener los modelos que deseas unir, descompilarlos para obtener los archivos que poseen sus estructuras (SMD Files). Asumiendo que ya posees todo esto, puedes utilizarlo así (preferiblemente ANTES de la parte de las animaciones):

Código:
$bodygroup "algún_nombre_si_quieres"
{
studio "nombre_del_smd_del_modelo_1"
studio "nombre_del_smd_del_modelo_2"
....
studio "nombre_del_smd_del_modelo_N"
}

Donde:

[•] algún_nombre_si_quieres: Un nombre para identificar al bodygroup.
[•] studio: Esto identifica que incluirás el modelo que sigue.
[•] nombre_del_smd_del_model_X: Simplemente el nombre del modelo cuando lo descompilaste (mas exactamente el nombre del SMD de referencia asociado a ese modelo).

Lo siguiente es compilar el modelo, y si no arroja algun error, verificar qué tal quedo en el HLMW.



Directiva: $texturegroup

Para utilizar $texturegroup, solo necesitas tener la textura (o texturas) que quieres añadir. Asumiendo que ya posees todo esto, puedes utilizarlo así (preferiblemente DESPUÉS de la parte del bodygroup):

Código:
$texturegroup "algún_nombre_si_quieres"
{
{ "nombre_de_la_textura_default.bmp" }
{ "nombre_de_la_textura_nueva_1.bmp" }
{ "nombre_de_la_textura_nueva_2.bmp" }
...
{ "nombre_de_la_textura_nueva_N.bmp" }
}

Donde:

[•] algún_nombre_si_quieres: Un nombre para identificar al texturegroup.
[•] nombre_de_la_textura_default: Esta es la textura que tenia (o tiene) el modelo por defecto.
[•] nombre_de_la_textura_nueva_X: Esta es la nueva textura (o las texturas) que tendrá el modelo. Una pequeña acotación es que esto se aplica para TODOS LOS MODELOS QUE TENGAN APLICADA LA TEXTURA POR DEFECTO.



Y ya para utilizarlo tienes a la mano los pev->body | pev->skin, por lo que sugiero que investigues un poco como funcionan.

Por ultimo, se que la explicación no es ni la mejor (ni cerca), pero espero que entiendas. Y como dijo el de arriba, si tienes alguna duda solo comenta que alguno de nosotros te respondera.

Saludos.

FUENTES:
Directiva: $texturegroup
Directiva: $bodygroup


Responder
#6
Muchas gracias Metita!! Logré lo que necesitaba, mucho amor y bendiciones para vos! :*
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)