MSM szerkesztés avagy mob/npc más textúrával vagy effektekkel.

Indította picur111, 2016-03-20, 21:11:53

2016-03-20, 21:11:53 Utolsó szerkesztés: 2016-03-27, 09:39:58 Szerző: 66Dragon99
Peace!részben azért nyitom a témát,mert eshetőségek szerint vagy bővíteni fogom majd vagy valakit bevonok a release-be és ezzel remélem változást hozok az eddigi fejlesztők nézeteiben+részben pedig tuti mindenki gondolt már arra,hogy hogy is lehetne simábbá tenni a régi vagy régiből megújított mobok,npc-k vagy npcként kezelt objektek átszínezését vagy egyéb tuningolását.:(szal más textúrát bevágni rájuk+ effekteket elhelyezni rajtuk!)

#ha nem lenne világ mi ez:
~Van egy model, amire új textúrát tennénk,de nekünk a régi változatra is szükség van,na most ezt vezetem le a szöveg első részében.
~A második rész levési h kb h a francba tudunk effekteket tenni a modellek csontjaihoz/ra



1.Rész: Új textúra rendelése egy meglévő npc-hez v mobhoz...
A példánk egy pet lesz!
Eredetileg volt egy leopard_young1_yellow.msm -ünk,ezt másoltuk és a másolatot átneveztük leopard_young1_white.msm -re.

Megnyitás után kb ezt láttuk.:

Kód (leopard_young1_yellow.msm) Kijelölés
ScriptType            RaceDataScript
[hr]
BaseModelFileName     "D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.GR2"
Group ShapeData
{
    PathName ""
    ShapeDataCount 0
}
Group AttachingData
{
    AttachingDataCount       2
   
    Group AttachingData00
    {
        AttachingDataType    1
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01"
       
        CollisionType        1
       
        SphereDataCount      1
        Group SphereData00
        {
            Radius           28.000000
            Position         0.000000 0.000000 0.000000
        }
    }
   
    Group AttachingData01
    {
        AttachingDataType    1
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01"
       
        CollisionType        3
       
        SphereDataCount      1
        Group SphereData00
        {
            Radius           37.000000
            Position         0.000000 0.000000 0.000000
        }
    }
}



Az msm első fele
+magyarázat a kövi.
BaseModelFileName -> model elérése és neve.gr2 például az előbbi esetben D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.GR2
Ezt többnyire nem szerkesztjük,ha csak nem alkotunk egy új npc-hez valamit.



A második fele+ a magyarázatok lentebb.:

Group ShapeData --> modelhez való textúrarendelés




Két féle változat létezik a textúrák modelhez való rendeléséhez
Az egyik.:

Group ShapeData
{
    PathName ""
    ShapeDataCount 1
Group ShapeData00
{
ShapeIndex 0

Model "D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.GR2"
SourceSkin "D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.dds"
TargetSkin "D:\Ymir Work\npc2\leopard_young1\leopard_young1_white.dds"
}
}

Vagy más esetben:
Group ShapeData
{
PathName "d:/ymir work/npc2/leopard_young1/"

ShapeDataCount 1

Group ShapeData00
{
ShapeIndex 0

Model "leopard_young1_yellow.gr2"
SourceSkin "leopard_young1_yellow.dds"
TargetSkin "leopard_young1_white.dds"
}
}




A dolog egyik magyarázata:
Group ShapeData ->ez itt egy textúrabetöltéshez kellő group
{ <-megnyitjuk a csoport elemeit

PathName-> ha van ilyen akkor ez még leírja,hogy honnan a fenéből töltjük be a modelt és a textúrákat

{ <-megnyitjuk az adott részen lévő csoport elemeit

ShapeDataCount -> nekünk most 1(mert csak a karik hajai és vértjei/kosztümjei bírnak több elemmel[azaz ott több lekérhető modell+textúra van])

ShapeIndex -> az értéke 0 ,mert ez dettó az előző okból kifolyólag egy "alap" jellegű lekérés.

Model ->értelemszerűen a lekérés+a modell vagy szimplán a model , ha van pathname csak szimplán a model,azaz modelnév.gr2

(GR2 viewerünkkel a gr2-es model'ünk texturelistjén megnézhetjük,hogy mégis milyen textúrát kér a model)
SourceSkin -> a textúra  (GR2 viewerben célszerű megnézni,hogy mégis honnan akarja betölteni a dolgokat,mert az elérés fontos lesz ha újabb textúrát akarunk betölteni)
TargetSkin -> a textúra helyére betöltendő textúra (elv az msm mellé szoktuk tenni az adott elérésen levő dds-t)
[spoiler=Több textúra esetén]
SourceSkin2 -> a  model 2.textúrájának neve.kiterjesztése
TargetSkin2 -> a 2.textúra helyére betöltendő  újabb textúra
SourceSkin3 -> a model 3.textúrájának neve.kiterjesztése
TargetSkin3 -> a 3.textúra helyére betöltendő újabb textúra
És így tovább...
[/spoiler]
} -group ShapeData00 lezárása
} group ShapeData lezárása

A kapcsoszárójelek olyan sémát alkotnak,amit ha megszegünk kaputt a fájl betöltésének!
A kliens dds,tga,jpg és png képeket is kezel (tudtommal) ,szóval emez a példa




A harmadik részlete a magyarázattal együtt:

Group AttachingData <---Csoport csatolása a modelhez (pl mounton való csücsülés pozíciója vagy effektek vagy csontokra csatolt effektek)
{ <--nyitás
    AttachingDataCount       2 <--csoport csatolmányainak száma,ha növeljük akk amennyi effekt vagy extra kerül rá annyival kell megnövelni.

    Group AttachingData00 <-- első csatolmánya
    { <--nyitás
        AttachingDataType    1 <--csatolmány típúsa
       
        isAttaching          1 <--csatolva van
        AttachingModelIndex  0 <--az érték,amit ritkán láthatunk 1-es értékkel
        AttachingBoneName    "Bip01" <--adott csont neve (GR2viewerbe skeleton menüpontban Bone Names-el hozhatjuk elő emezeket)
       
        CollisionType        1 <--"ütközés/csatlakozás értéke" ~én úgy tom h mindig 1-es az elsőnél
       
        SphereDataCount      1 <-" kiindulási adataiank száma "~dettó úgy tom,h mindig 1-es ,de emezt nem csak az elsőnél láthatjuk így...
        Group SphereData00 <-" kiindulási adataiank első azaz 0.eleme"
        { <- SphereData00 nyitása
            Radius           28.000000 <-hatótáv\hatósugár értéke
            Position         0.000000 0.000000 0.000000 <pozíciója ~x y z-n ha jól rémlik ez az elsőnél mindig a nullásoknál van
        } <-SphereData00 lezárása
    } <- első AttachingData00 lezárása
   
    Group AttachingData01 <--második csatolmány
    {  <--AttachingData01 nyitása
        AttachingDataType    1 <--csatolmány típúsa
       
        isAttaching          1 <--csatolva van
        AttachingModelIndex  0 <--az érték,amit ritkán láthatunk 1-es értékkel
        AttachingBoneName    "Bip01" <--adott csont neve (szintén GR2viewerbe skeleton menüpontban Bone Names-el hozhatjuk elő emezeket)
       
        CollisionType        3  <--"ütközés/csatlakozás értéke" ~én úgy tom h mindig 1-es az elsőnél
       
        SphereDataCount      1 <-" kiindulási adataiank száma "~fentebb leírtam a jelentését.
       Group SphereData00 <-" kiindulási adataiank első azaz 0.eleme"
        { <-- nyitás
            Radius           37.000000 <-hatótáv\hatósugár értéke
            Position         0.000000 0.000000 0.000000 <pozíciója ~x y z-n ha jól rémlik ez az elsőnél mindig a nullásoknál van
        } <--lezárás
    } <--AttachingData01 lezárása
} <-- -Csoport csatolása lezárása





Ha megkérdeznétek mért magyaráztam el majdnem minden egyes pontját azt feleném,hogy meg kell érteni mi a franc okozhat hibát,ha az ember kifelejti vagy valahol véletlenül törli...a syserr nem úgy jelzi nekünk az msm-eket,hogy jajj ebben a sorban vagy abban a sorban valami hiba van,hanem szimplán nem fogadja el és nem tudja betölteni az adott msm-et...Sőt ha az msm fájl üres a kliens bezárul és ez már elég jó ok a hibakeresésre.





Az effektek berakása

a csatolt elemeknél első dolgunk bővíteni az attachingdatacount értékét,a téma elején levő kettest 4-el növeltem és így összesen 6 elemet fogok az adott állathoz hozzácsatolni!


    Group AttachingData02 <-- harmadik csatolmány (mert ugyé 00-al kezd mindegyik msm és volt 01,értelemszerűen most jön 02 aztán 03 ... 99-ig,majd 100-ig)
    { <--nyitás
        AttachingDataType    2 <--csatolmány típúsa
       
        isAttaching          1 <--csatolva van
        AttachingModelIndex  0 <--tudtommal megint egy állandó nullás érték,miután ezen belül nincs több extra csatolható elem
        AttachingBoneName    "Bip01 L Hand" <--adott csont neve (GR2viewerbe skeleton menüpontban Bone Names-el hozhatjuk elő emezeket és az adott "L Hand" környékén láthatjuk a helyét)
       
        EffectScriptName     "D:\ymir work\npc2\leopard_young1\wit.mse" <-betötendő effekt
        EffectPosition       0.000000 0.000000 0.000000 <-effekt pozíciója
        EffectRotation       0.000000 0.000000 0.000000 <-effekt forgatása
    } <-lezárás


Az effektekkel megtoldott Group AttachingData a fenti fájlnál
Group AttachingData
{
    AttachingDataCount       6
   
    Group AttachingData00
    {
        AttachingDataType    1
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01"
       
        CollisionType        1
       
        SphereDataCount      1
        Group SphereData00
        {
            Radius           28.000000
            Position         0.000000 0.000000 0.000000
        }
    }
   
    Group AttachingData01
    {
        AttachingDataType    1
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01"
       
        CollisionType        3
       
        SphereDataCount      1
        Group SphereData00
        {
            Radius           37.000000
            Position         0.000000 0.000000 0.000000
        }
    }
    Group AttachingData02
    {
        AttachingDataType    2
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01 L Hand"
       
        EffectScriptName     "D:\Ymir Work\npc2\leopard_young1\wit.mse"
        EffectPosition       0.000000 0.000000 0.000000
        EffectRotation       0.000000 0.000000 0.000000
    }
    Group AttachingData03
    {
        AttachingDataType    2
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01 R Hand"
       
        EffectScriptName     "D:\Ymir Work\npc2\leopard_young1\wit.mse"
        EffectPosition       0.000000 0.000000 0.000000
        EffectRotation       0.000000 0.000000 0.000000
    }
    Group AttachingData04
    {
        AttachingDataType    2
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01 R Toe0"
       
        EffectScriptName     "D:\Ymir Work\npc2\leopard_young1\wit.mse"
        EffectPosition       0.000000 0.000000 0.000000
        EffectRotation       0.000000 0.000000 0.000000
    }
    Group AttachingData05
    {
        AttachingDataType    2
       
        isAttaching          1
        AttachingModelIndex  0
        AttachingBoneName    "Bip01 L Toe0"
       
        EffectScriptName     "D:\Ymir Work\npc2\leopard_young1\wit.mse"
        EffectPosition       0.000000 0.000000 0.000000
        EffectRotation       0.000000 0.000000 0.000000
    }
}




Ha sikerült megkűzdenünk a szerkesztéssel vagy az msm-ünk összerakásával;
az msm-et értelemszerűen abba a mappába kell tennünk,ahonnan majd az msm a dolgokat betölti;
az npclistbe úgy kerül be az új msm-ünk,hogy az npclist elején megadjuk a következőket:

0TABULÁTORnév.msmnélkülTABULÁTORmappaneve
azaz a példámmal szemléltetve:
0 leopard_young1_white leopard_young1

npclist végére:
IDTABULÁTORnév.msmnélkül
azaz a példámmal.:
34062 leopard_young1_white
eztán ha az npclist végén nincs üres sor az előbb bevágott sorunk után csinálunk 1 új üres sort!
#Megjegyézés: SZÓKÖZÖKKEL TABULÁTOR NÉLKÜL A JÁTÉKOT SZABOTÁLNI SZOKTA A KLIENS!
#Második fontos dolog: az utolsó sort direkt üresen kell hagyni,ezért is harap a drága kliens!



Esetleges értelmezési problémák vagy kérések esetén szerkeszteni fogom a témát ill mint fentebb írtam tervezem,hogy másokat is bevonjak ennek az adott téma bővítésébe!
Tisztelettel Hatvanhatdragonkilencvenkilenc / 66Dragon99
#Amennyiben kifogást emelnél ellenem kérlek először privátban konzultálj velem!
nincs megosztható adat