Nowy ork na starym modelu 3D... 5738 18

O temacie

Autor Kino

Zaczęty 3.01.2010 roku

Wyświetleń 5738

Odpowiedzi 18

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?

Kino

Nowy ork na starym modelu 3D...
2010-01-03, 14:53(Ostatnia zmiana: 2010-01-03, 16:02)
Witajcie ponownie,
Otóż potrzebuję stworzyć w Gothicu unikalnego Orka, innego od innych. Już wyjaśniam:
-Chodzi o orka na modelu 3d Orka Elity; tyle tylko, że z innymi teksturami nóg, rąk, torsu i twarzy. Zabrałem się wczoraj za coś takiego, ale w skrypcie MST_OrcElite (_work/data/scripts/content/story/npc/orc) można zamienić tylko teksturę torsu i twarzy. Sami zobaczcie:
//**************
// Visuals
//**************

func void B_SetVisuals_OrcElite()
{
Mdl_SetVisual (self, "Orc.mds");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex ARMOR
Mdl_SetVisualBody (self, "Orc_BodyElite", DEFAULT, DEFAULT, "Orc_HeadWarrior", DEFAULT,  DEFAULT, -1);
};

W "Orc_BodyElite" zapewne mam wpisać nazwę tekstury torsu (oczywiście najpierw wkleiłem wszystkie cztery w formacie .TEX do folderu _work/data/textures/_compiled), czyli przykładowo zamiast "Orc_BodyElite", "orkcialo", bo tak nazywa się tekstura torsu. Podobnie z "Orc_HeadWarrior" - zmiana na "orkglowa". I zapewne potem w Gothicu dla tegoż orka, tekstura nóg i rąk byłaby niezmieniona.

Czy mógłby ktoś od początku do końca, krok po kroku, wytłumaczyć co mam zrobić, żebym w grze oprócz zwykłego orka elity, mógł wbić kod na mojego orka, na 3d modelu elity, ale z moimi teksturami? Bo później chciałbym jeszcze nowego orka wojownika i szamana - ale jeśli będę umieć jednego, to myślę, że i z nimi sobie poradzę ^_^  Chodzi nawet o jakąś radę, wskazówkę.

I jeszcze coś.
Odkąd zacząłem robić drobne szacher-macher w Gothicu, po wklepaniu Marvina i używaniu K+F8 do szybszego poruszania się, gra się czasem zacina - ale tak, że można z niej wyjść tylko poprzez świętą trójcę Alt, Ctrl i Del, następnie Menedżera zadań. Boję się, że im więcej zmienię w grze, tym częściej się będzie tak zacinać. A już wkrótce potrzebować będę używania K i F8 nieco częściej.
Dlaczego tak się dzieje, no i oczywiście - czy tak jest u każdego?
 

paladinho

paladinho

Użytkownicy
posty59
  • Użytkownicy
Ja zrobiłem coś takiego. Jeśli masz:
ORC_BODYHEAVY-C

Robisz swoją teksturę i zapisujesz jako np.ORC_BODYHEAVY_V5-C
i Jeśli masz
func void B_SetVisuals_OrcElite()
{
    Mdl_SetVisual        (self,    "Orc.mds");
    //                            Body-Mesh            Body-Tex    Skin-Color    Head-MMS    Head-Tex    Teeth-Tex    ARMOR
    Mdl_SetVisualBody    (self,    "Orc_BodyElite",    DEFAULT,    DEFAULT,    "Orc_HeadWarrior",    DEFAULT,      DEFAULT,    -1);
};

To zmieniasz na to:
func void B_SetVisuals_OrcElite()
{
    Mdl_SetVisual        (self,    "Orc.mds");
    //                            Body-Mesh            Body-Tex    Skin-Color    Head-MMS    Head-Tex    Teeth-Tex    ARMOR
    Mdl_SetVisualBody    (self,    "Orc_BodyElite",    5,    DEFAULT,    "Orc_HeadWarrior",    DEFAULT,      DEFAULT,    -1);
};

I body masz z bańki.
 

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?

Kino

Nowy ork na starym modelu 3D...
#2 2010-01-03, 16:16(Ostatnia zmiana: 2010-01-03, 16:41)
No dobrze, a co z resztą? Bo oprócz torsu zrobiłem bardzo duże zmiany także jeśli chodzi o ręce i nogi.
A zupełnie do nich nie pasowałoby, gdybym zmienił tylko tors...
 

paladinho

paladinho

Użytkownicy
posty59
  • Użytkownicy
Wiesz co prościej będzie zrobic nowy plik asc, w którym zdefiniujesz textury. Napisze ci na pw jak wygląda mój plik z różnymi texturami.
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Po prostu do każdej tekstury dopisuj _V5-C.
i chyba jeszcze zamiast "Orc_HeadWarrior",    DEFAULT,      wpisać    "Orc_HeadWarrior",    5,
@down:
No jakżeby nie...
 
Spoiler

paladinho

paladinho

Użytkownicy
posty59
  • Użytkownicy
Ja zrobiłem swoim sposobem i na razie działa:P
 

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?

Kino

Nowy ork na starym modelu 3D...
#6 2010-01-04, 07:23(Ostatnia zmiana: 2010-01-04, 16:03)
No dobra, najpierw spróbuję dopisać do każdej tekstury "_V5-C", bo wydaje się łatwiejsze. Ale jeśli nie zadziała, to spróbuję z Twoim sposobem, paladinho :lol2:
Więc oprócz tego, że do każdej tekstury dopiszę "_V5-C", to co jeszcze mam zrobić?
Bo to, co podałeś, paladinho (post drugi w temacie), zmieni mi chyba wszystkich orków elit, nie sądzisz?
Każdy ma w swoim Visualu nazwę "OrcElite", czyli będzie wyglądać tak, jak prototyp orka. A wtedy prototypem będzie ten ze zmienionym torsem... A można w takim razie zrobić dwa Visuale? Np.:
//**************
// Visuals
//**************

func void B_SetVisuals_OrcElite()
{
Mdl_SetVisual (self, "Orc.mds");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex ARMOR
Mdl_SetVisualBody (self, "Orc_BodyElite", DEFAULT, DEFAULT, "Orc_HeadWarrior", DEFAULT,  DEFAULT, -1);
};
func void B_SetVisuals_OrcElite6()
{
Mdl_SetVisual (self, "Orc.mds");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex ARMOR
Mdl_SetVisualBody (self, "orkcialo", DEFAULT, DEFAULT, "orkglowa", DEFAULT,  DEFAULT, -1);
};
I potem w jakimś orku użyć:
// ------ visuals ------
B_SetVisuals_OrcElite6();
Czy tak można? Bo przydałoby się to, gdyby zadziałała rada MaciejaG :lol2:



Paladinho - mówiąc, że działa; masz na myśli to, że możesz przywołać i orka elitę, i twojego orka tak, żeby przykładowo stanęli koło siebie?

[EDIT]
Cholera, nie działa mi sposób, który jest w poście drugim i piątym tematu. Żadna tekstura nie jest w ogóle zamieniona, nawet ta torsu... Pozostaje tylko zmiana w pliku .asc. Z tym, że nie mam zielonego pojęcia gdzie tego szukać i jak to otworzyć.
 

paladinho

paladinho

Użytkownicy
posty59
  • Użytkownicy
Otwierasz plik Orc_BodyElite.asc zmieniasz tak jak ci napisałem zapisujesz jako np. Orc_BodyElite2.asc i w pliku orca (gdzieś w monsters)


//-------------------------------------------------------------
func void Set_OrcElite_Visuals()
{
Mdl_SetVisual    (self,   "Orc.mds");
//         Body-Mesh      Body-Tex Skin-Color Head-MMS          Head-Tex   Teeth-Tex ARMOR
Mdl_SetVisualBody(self,   "Orc_BodyElite",   DEFAULT, DEFAULT,   "Orc_HeadWarrior", DEFAULT, DEFAULT,  -1);
};

i robisz nową funkcje:

func void Set_OrcElite2_Visuals()
{
Mdl_SetVisual    (self,   "Orc.mds");
//         Body-Mesh      Body-Tex Skin-Color Head-MMS          Head-Tex   Teeth-Tex ARMOR
Mdl_SetVisualBody(self,   "Orc_BodyElite2",   DEFAULT, DEFAULT,   "Orc_HeadWarrior", DEFAULT, DEFAULT,  -1);
};


I orka:


INSTANCE OrcElite   (Mst_Default_OrcElite)
{
   //-------- general --------
   name                     =   "Elitarny Ork";
   level                     =   30;

   //-------- visuals --------
   Set_OrcElite2_Visuals();

   //-------- attributes --------
   attribute   [ATR_STRENGTH]      =   90;
   attribute   [ATR_HITPOINTS_MAX]   =   400;
   attribute   [ATR_HITPOINTS]      =   400;

   //-------- protection --------
   protection   [PROT_BLUNT]      =   100;
   protection   [PROT_EDGE]         =   100;
   protection   [PROT_POINT]      =   50;
   protection   [PROT_FIRE]         =   50;

   //-------- inventory --------
   EquipItem (self, ItMw2hOrcaxe04);
};

Musi działać
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Jasne, możesz zrobić, nowe setvisual, i potem instance nowego orka na bazie prototypu. Co do tekstur to muszą być w formacie tex, żeby działało, lub w tga, do Work/Data/Textures i zreparsowac skrypty.
func void B_SetVisuals_OrcElite6()
{
Mdl_SetVisual (self, "Orc.mds");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex ARMOR
Mdl_SetVisualBody (self, "Orc_BodyElite", 5, DEFAULT, "Orc_HeadWarrior", 5, DEFAULT, -1);
};

INSTANCE OrcElite6_Roam (Mst_Default_OrcElite)
{
// ------ visuals ------
B_SetVisuals_OrcElite6();

//-------- inventory --------
EquipItem (self, ItMw_2H_OrcSword_02);

//----- Daily Routine ----
start_aistate = ZS_MM_AllScheduler;

aivar[AIV_MM_RoamStart] = OnlyRoutine;
};
EDIT:
Co do drugiego sposobu, musisz zdekompilowac Gothic Sourcerem i skopiować ORC_BODYELITE.ASC na ORC_BODYELITE2.ASC i podmienić:
//Tors
*BITMAP "ORC_BODYHEAVY.TGA"na
*BITMAP "ORC_BODYHEAVY2.TGA"//Ramiona
*BITMAP "ORC_ARMSHEAVY.TGA"na
*BITMAP "ORC_ARMSHEAVY2.TGA"//Nogi
*BITMAP "ORC_LEGSHEAVY.TGA"na
*BITMAP "ORC_LEGSHEAVY2.TGA"Ten plik edytujesz notatnikiem. Potem musisz skompilowac Gothic Sourcerem.
Potem, tak jak napisał przedmówca musisz tylko wpisac w skrypty:
func void Set_OrcElite2_Visuals()
{
Mdl_SetVisual (self, "Orc.mds");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex ARMOR
Mdl_SetVisualBody(self, "Orc_BodyElite2", DEFAULT, DEFAULT, "Orc_HeadWarrior", DEFAULT, DEFAULT, -1);
 
Spoiler

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?

Kino

Nowy ork na starym modelu 3D...
#9 2010-01-05, 14:44(Ostatnia zmiana: 2010-01-05, 14:45)
Nie, za szybko.
Po pierwsze, nie mogę znaleźć nigdzie pliku OrcBodyElite.asc.
Po drugie, wypakowałem GothicVDFS'em plik Anims.vdf tak, jak powiedziałeś, paladinho (na pulpicie jest). Ale tam są (Pulpit/_WORK/DATA/ANIMS/_COMPILED) tylko pliki typu .MDM, .MDL...; wybrałem notatnikiem plik ORC_BODYELITE.MDM, ale tam było tylko (podam początek) coś takiego:


Pamiętajcie proszę, że moddingiem (jeśli na tym moim poziomie można to tak nazwać) zajmuję się od czterech dni. Nie będę więc taki 'lotny' w tych sprawach  ^_^
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Musisz ORC_BODYELITE.MDM zdekompilowac Gothic sourcerem. I tam, gdzie to zdekompilujesz pojawi się folder asc_orc i tam będziesz miał parę plików, m.in. ORC_BODYELITE.ASC.
MDM to animacja skompilowana ASC edytowalna.
 
Spoiler

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Źle powiedziałem, zdekompiluj ORC.MSB, nie MDM.

Potem Dynamic (MDS, MSB) i zaznaczasz Gothic II.
 
Spoiler

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?

Kino

Nowy ork na starym modelu 3D...
#13 2010-01-05, 15:33(Ostatnia zmiana: 2010-01-05, 15:33)
No, mam coś takiego w tym folderze:

Tekstury o nazwach ,,ORC_ARMSHEAVY2-C.tex", ,,ORC_BODYHEAVY2-C.tex" i ,,ORC_LEGSHEAVY2-C.tex" wpakowałem do folderu _Work/data/Textures/_compiled. "-C" dodałem dlatego, iż wszystkie inne tekstury tak się kończą. Dziwi mnie tylko, że miałem zmienić na *BITMAP "ORC_BODYHEAVY2.TGA", skoro tekstury mają rozszerzenie .TEX; no ale jeśli to zadziała, to nie mam sprzeciwu ^_^

Co więc teraz mam z tym folderem zrobić?
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
.TGA są dlatego, że TEX to skompilowane TGA i początkowo w założeniu każdy TEX to TGA, tak jak 3DS to MAX.
Wcześniej skopiuj asc_orc do Gothic/_work/Data/Anims bo masz w głównym folderze Gothica.
Teraz musisz wybrac Tools>Compiler>Dynamic (MDS) wybierasz Gothic 2 i Working Directory na Gothic/_Work/Data. Otwierasz Select of model i wybierasz Gothic/_Work/Data/Anims/Orc.mds i kompilujesz.
 
Spoiler

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?
Zrobione. Teraz tylko stworzyć nowego Visuala w skryptach, przynajmniej mam taką nadzieję :)
 

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?
Ork, którego stworzyłem, otrzymał teksturę, którą dla niego planowałem.
Tylko, że... Nie ma już tekstury Orka Elity z podstawki! Wszyscy elici (orcelite_roam, orcelite_rest, orcelite_antipaladin1, orcelite_antipaladin2 itd.) mają tę samą teksturę :)  
Co mogłem zrobić źle...? Może coś w skryptach, nie wiem?
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Ale ten ASC, którego edytowałeś, to skopiowałeś go i podpisałeś ORC_BODYELITE2.ASC ? Jeśli tylko edytowałeś ORC_BODYELITE.ASC, to wszystkie będą miały taką teksturę. Potem skompiluj Orc.mds, ale wcześniej dopisz gdzieś w nim (koło innych) registerMesh ("Orc_BodyElite2.ASC"). Wcześniej o tym zapomniałem.
 
Spoiler

Kino

Kino

Użytkownicy
No co ty?
posty105
Propsy95
  • Użytkownicy
  • No co ty?
W takim razie cieszę się, że sobie o tymże "registerMesh" przypomniałeś, bo... działa! ;(  
Mój ork ma unikalną, inną od innych elit teksturę! Teraz muszę zrobić jeszcze unikalnego wojownika i szamana. Ale teraz pójdzie już z górki :)

Wielkie dzięki dla MaciejaG i paladinho'a. Na prawdę, wielkie dzięki ;)
Temat w takim razie do zamknięcia.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry