Új katona modell
Szerk: Először is szeretném leszögezni, hogy most már én sem így csinálom a hasonló dolgokat de régebben ez volt :) Szendvics
A következő tutor azt fogja bemutatni, hogy hogyan tudunk egyszerűen előre már megírt cuccokból összerakni egy új játékos modell-t, hogy majd később pl egy admin kliensben hasznosíthassuk.
(megjegyzés: ha csak helyet írok azt a CallofDuty mappában található uotools mappa tartalmáról írok, ha ettől eltérek azt jelzem)
Egy német modellen fogom megmutatni!
1. Lépés:
model_export\iw\character_models\us\airborne mappát másoljuk:
ge_admin néven az airborne mellé
a ge_admin mappában USAirborneAHigh.XMODEL_EXPORT fájl nevezzük át:
ge_admin.XMODEL_EXPORT névre
2. Lépés:
Persze olyan skinekkel dolgozol amivel akarsz, én Moss Mantid elite Wehrmact skinjét használom.
Csomagoljuk ki a skineket a ge_admin mappába. Mindegyik nevének végére írjunk egy _a mint admin végződést (vagy totalcommander CTRL+M):
pl: body@wehrmacht_boot_a.dds
(Ezt azért javaslom, hogy ne akadjunk össze semmi gyári skinnel.)
(a metal@wehrmact_helmet.dds most megy a kukába)
Szerkesszük a ge_admin.XMODEL_EXPORT fájlt! A végén vannak a material bejegyzések, ezek kellenek!
Ebből:
NUMMATERIALS 8
MATERIAL 0 "body@air_chest.tga"
MATERIAL 1 "body@air_upperarm.tga"
MATERIAL 2 "body@air_forearm.tga"
MATERIAL 3 "body@air_crotch.tga"
MATERIAL 4 "body@air_upperleg.tga"
MATERIAL 5 "body@air_lowerleg.tga"
MATERIAL 6 "body@characterhand.tga"
MATERIAL 7 "body@air_boots.tga"
Ez lett:
NUMMATERIALS 8
MATERIAL 0 "body@wehrmacht_tunic_a.dds"
MATERIAL 1 "body@wehrmacht_uparm_a.dds"
MATERIAL 2 "body@air_forearm.tga"
MATERIAL 3 "body@wehrmacht_crotch_a.dds"
MATERIAL 4 "body@wehrmacht_upperleg_a.dds"
MATERIAL 5 "body@air_lowerleg.tga"
MATERIAL 6 "body@characterhand.tga"
MATERIAL 7 "body@wehrmacht_boot_a.dds"
A skinek nem egyeznek teljesen, de ezt össze lehet szuttyogni! (Kicsit szétcsúsznak, de kb megigazítottam...)
3. Lépés:
bin\asset_manager.exe
CTRL+S és mentsük a model_export mappába admin.gdt néven. (Igen tudom, hogy üres...)
· válasszuk ki az xmodel típust
· new entry (a neve legyen: ge_a_m_)
· type>>multiplayerbody
· filename>>model_export\iw\character_models\us\ge_admin\ge_admin.XMODEL_EXPORT
Mentsünk majd futtassuk bin\uoconvertor.bat kötegfájlt, ne görcsöljünk, jó ideig is eltarthat.
4. Lépés:
A test-modell már készen van. Mivel egyszerűbb a már elkészített gsc-ket átírni mint az assetmanagerben írogatni ezért:
(nem az uotoolsban!)a CallofDuty\main\pak4.pk3\mptype\german_wehrmacht.gsc-t kimásoljuk: láthatjuk, hogy amennyi katona variácó van annyi ága van a switchnek (mi csak kettőt készítünk) kis átírás után ezt kapjuk:
MENTSÜK: mp_ge_admin néven
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY
main()
{
switch(randomint(2))
{
case 0:
character\g_a_01::main();
break;
case 1:
character\g_a_02::main();
break;
}
}
precache()
{
character\g_a_01::precache();
character\g_a_02::precache();
}
Vegyük észre a scriptben, hogy át lett írva
- mp_german_wehrmacht01>>g_a_01 (main és precache fvben egyaránt)
- mp_german_wehrmacht02>>g_a_02 (main és precache fvben egyaránt)
- a randomint() argumentuma 2-re (a randomint fv egy ál véletlen egész számot állít elő a [0,argumentum-1] intervallumban
5. Lépés:
Most elkészítjük a 4. lépésben hivatkozott scripteket:
· character\g_a_01
· character\g_a_02
(nem az uotoolsban!)a CallofDuty\main\pak5.pk3\character\mp_german_wehrmacht01.gsc és az ugyan itt található mp_german_whermact02.gsc és mp_german_whermact01.gsc fájl másolatát fogjuk szerkeszteni.
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY
main()
{
self setModel("xmodel/ge_a_m_");
character\_utility::attachFromArray(xmodelalias\head_axis::main());
self.hatModel = "xmodel/germanhelmet";
self attach(self.hatModel);
self setViewmodel("xmodel/viewmodel_hands_whermact");
if (character\_utility::useOptionalModels())
{
self attach("xmodel/gear_german_load2_w");
self attach("xmodel/gear_german_k98_w");
}
self.voice = "american";
}
precache()
{
precacheModel("xmodel/ge_a_m_");
character\_utility::precacheModelArray(xmodelalias\head_axis::main());
precacheModel("xmodel/germanhelmet");
precacheModel("xmodel/viewmodel_hands_whermact");
if (character\_utility::useOptionalModels())
{
precacheModel("xmodel/gear_german_load2_w");
precacheModel("xmodel/gear_german_k98_w");
}
}
Változott a:
self setModel("xmodel/ge_a_m_");
precacheModel("xmodel/ge_a_m_");
Mind a kettő helyre a mi elkészített modellünk ment!
Már minden meg van csak a pk3-at kell összerakni!
(forrás>>cél)
Modellek:
UOTools\game\uo\xmodel\ge_a_m_ >> xmodel mappába
UOTools\game\uo\xmodelparts\ge_admin3 >> xmodelparts mappába
UOTools\game\uo\xmodelsurfs\ge_admin3 >> xmodelsurfs mappába
Skinek:
UOTools\model_export\iw\character_models\us\ge_admin mappából kell a:
· body@characterhand.tga
· body@wehrmacht_boot_a.tga
· body@wehrmacht_crotch_a.tga
· body@wehrmacht_forearm_a.tga
· body@wehrmacht_lowerleg_a.tga
· body@wehrmacht_tunic_a.tga
· body@wehrmacht_uparm_a.tga
· body@wehrmacht_upperleg_a.tga
Ezek a skins mappába mennek.
Scriptek:
mp_ge_admin.gsc menjen az mptype mappába
g_a_01.gsc és g_a_02.gsc menjen a character mappába
Zippeljük és nevezzük át pk3ra majd mehet az uo könyvtába.
6. Lépés: A TESZT
· Készítsünk egy gyors mappot!
A mapp gsc a következő legyen (ez egy alap gsc :
main() {
ambientPlay("ambient_mp_harbor");
maps\mp\_load::main();
game["defenders"] = "axis";
game["allies"] = "russian";
game["russian_soldiertype"] = "veteran";
game["axis"] = "german";
game["russian_soldiertype"] = "veteran";
game["german_soldiertype"] = "mp_ge_admin";
}
A fontos változtatás ennyi:
game["german_soldiertype"] = "mp_ge_admin";
Ezzel beállítottuk a mi modellünket németnek a mappra. De ezt még a _teams.gsc-ben is be kell írni, hogy ebben a katona modell esetén mit csináljon.
pakuo01.pk3\maps\mp\gametypes\_teams.gsc másoljuk be a pk3-unkba a megfelelő mappaszerkezettel!
· Ugorjunk a scriptben:
switch(game["german_soldiertype"])
{
case "wehrmacht":
· A case „wehrmacht” sor elé jöjjön a következő script rész:
case "mp_ge_admin":
mptype\mp_ge_admin::precache();
game["axis_model"] = mptype\mp_ge_admin::main;
break;
Indítsuk a mappunkat és kész! (Lehetőleg pure szerveren teszteljük először!)
(A mellékletben csatolom a tutor alatt elkészített pk3-at és mappot, ja és a mappon semmi sincs tesztelve, és csak dm van!)
http://dl.dropbox.com/u/4410106/tutorials/tutor_melleklet.zip
Szendvics |