Multiple Skins for a Single Model/it

From Valve Developer Community
Jump to: navigation, search
1 modello, 5 skins

In alcuni casi può essere d’aiuto per un mapper scegliere differenti skin per un modello. E’ più facile aggiungere al tuo modello diverse varietà di skin senza creare un modello completamente nuovo.

Il vantaggio di avere diverse skin per un unico modello invece di compilare differenti modelli è:

  • più facile da trovare tramite un overview
  • occupa meno spazio su disco
  • il processo è più veloce piuttosto che compilare ogni singolo modello con una skin differente

Esempio base di una skin sostituta

Questo esempio dispone sia della skin on che della skin off, una differente skin per ogni situazione renderà migliore l’aspetto del modello.

$modelname mymodelfolder/mylamp.mdl
$cdmaterials modeltextures/mytexturefolder
$surfaceprop metal
$staticprop
$body studio "mylamp.smd"
$texturegroup skinfamilies
{
	{ "lampon"  }
	{ "lampoff" }
}
$sequence idle "mylamp.smd" fps 1
$collisionmodel "mylamp_phys.smd"
Qui sono state usate due skin per far apparire il modello con la luce accesa "on" o con la luce spenta "off".
Note.pngNota:$texturegroup necessita di essere preceduto da $body.

Definisci le tue differenti texture tra $texturegroup skinfamilies { e }.}. Il nome della prima texture (in questo caso "lampon") necessita di somigliare al nome della texture che hai usato nel tuo modello (Se non sei sicuro, apri il file .smd con un text editor, e nel Blocco dei triangoli troverai il nome). Altrimenti studiomdl.exe non saprà con quale sostituirla.

In the following lines you can define the new textures between { and } that will be rendered instead of the original one.

Creare differenti combinazioni di skin

In alcune circostanze potrai decidere di dividere le texture per il tuo modello in molti altri materiali. Ciò consente di avere molteplici combinazioni al contrario di tanti diversi modelli. Se, per esempio, stai cercando di creare un modello che abbia due stili ma con tre colori di lampadine, dovresti creare queste combinazioni sotto $texturegroup.

$texturegroup skinfamilies
{
	{ "lampnew"   , "lightbulbred"   }
	{ "lampnew"   , "lightbulbgreen" }
	{ "lampnew"   , "lightbulbblue"  }
	{ "lamprusty" , "lightbulbred"   }
	{ "lamprusty" , "lightbulbgreen" }
	{ "lamprusty" , "lightbulbblue"  }
}

Ancora una volta assicurati che il tuo modello utilizzi i nomi dei materiali nella prima linea.

Come puoi vedere, creare lo schema delle combinazioni delle skin porta diversi vantaggi, tuttavia, usare molteplici materiali sullo stesso modello crea un significante cambio di performance, perciò questa tecnica dovrebbe essere usata spesso!


Definizioni generali

Qui ci sono le definizioni generali per riferimento, se dovete usare parecchie skins:

$texturegroup skinfamilies
{
	{ "original1"  , "original2"  , ... , "originalX"  }
	{ "replace1_1" , "replace1_2" , ... , "replace1_X" }
	{ ...          , ...          , ... , ...          }
	{ "replaceX_1" , "replaceX_2" , ... , "replaceX_X" }
}

Ulteriori informazioni

  • I modelli traslucidi emetteranno solo l’ombra della prima skin

Con l’uso di $shadowlod dovresti riuscire ad aggirare il problema.