Page 2 of 2 FirstFirst 12
Results 11 to 20 of 20
  1. #11
    Datatraveler
    Datatraveler is offline
    New member
    Join Date
    2011 Jul
    Location
    Malaysia
    Posts
    19
    Thanks
    1
    Thanked 3 Times in 3 Posts
    Rep Power
    0
    I do have a question, what is this program for? is it to create/making own new design used by gaming artis?

  2. #12
    CriticalError
    CriticalError is offline
    Senior Member CriticalError's Avatar
    Join Date
    2011 Jun
    Posts
    204
    Thanks
    21
    Thanked 44 Times in 27 Posts
    Rep Power
    0
    Quote Originally Posted by Datatraveler View Post
    I do have a question, what is this program for? is it to create/making own new design used by gaming artis?
    a .ms files are max scripts, this is for import files in this case .msh from Aika Online.

    .msh= 3D Model

  3. #13
    CriticalError
    CriticalError is offline
    Senior Member CriticalError's Avatar
    Join Date
    2011 Jun
    Posts
    204
    Thanks
    21
    Thanked 44 Times in 27 Posts
    Rep Power
    0
    well guys trying get .mesh original with bones and fail today I get that thanks a lot chrox for this great script and Dwar too anyway good job, here a model load.

    Correct Script.

    PHP Code:
    if (heapSize 20000000then
       heapSize 
    200000000 -- allow 40 MB instead of just 7.5 MBPrevents "Runtime Error: Out of scripter memory"

    fname getOpenFileName \
    caption:"Open Aika Model File" \
    types:"Aika Model File(*.msh)|*.msh" \
    historyCategory:"AikaObjectPresets"
    fopen fname "rb"
    getFilenameFile fname
    gg 
    substring h 1 4 ".bon"
    g2 getFilenamePath fname gg
    fopen g2 "rb"
    print g
    total_size 
    getFileSize g2 8
    boneparentidarray 
    #()
    for 1 to total_size Do (
    boneparentid readlong g
    realboneid 
    readlong g
    printoffset boneparentid
    print realboneid
    append boneparentidarray boneparentid
    )
    fn PrintOffset Var =
    (
       
    local Var = Var
    print (
    "This is the offset 0x" + (bit.intAsHex Var) as string)
       Var
    )
    fn PrintCount Var =
    (
       
    local Var = Var
    print (
    "This is the Count 0x" + (bit.intAsHex Var) as string)
       Var
    )

    fn Readword fstream = (
    return 
    readshort fstream #unsigned
    )

    fn ReadFixedString bstream fixedLen =
    (
       
    local str ""
       
    for 1 to fixedLen do
       (
          
    str += bit.intAsChar (ReadByte bstream #unsigned)
       
    )
       
    str
    )

    struct Mesh_Info_Struct
    (
       
    Mesh_Name,vertstart,vertend,vertcount,facecount
    )
    struct Offset_Info_Struct
    (
       
    Section_Start,Vert_Start,Face_Start,vertsize
    )
    unk01 readlong f
    unk02 
    readlong f
    unk03 
    readlong f
    Count01 
    readlong f
    VertSize 
    readlong f
    unk06 
    readlong f
    BoneCount 
    readlong f
    VertCount
    readlong f
    FaceCount 
    readlong f

    struct Bone_Table_Data
    (
       
    BoneName,BoneParentID,BoneID
    )
    BoneStart = (ftell f)
    fseek f (0x40 BoneCount#seek_cur
    Bone_ID_Array #()
    for 1 to BoneCount Do (
    boneid readlong f
    append Bone_ID_Array boneid
    )
    fseek f BoneStart #seek_set
    BNArr #()
    for 1 to BoneCount Do (

    m11 readfloat fm12 readfloat fm13 readfloat fm14 readfloat f
    m21 
    readfloat fm22 readfloat fm23 readfloat fm24 readfloat f
    m31 
    readfloat fm32 readfloat fm33 readfloat fm34 readfloat f
    m41 
    readfloat fm42 readfloat fm43 readfloat fm44 readfloat f
    tfm2 
    matrix3 [m11,m12,m13] [m21,m22,m23] [m31,m32,m33] [m41,m42,m43]
    tfm inverse tfm2
    if isvalidnode (getnodebyname ("Bone_" Bone_ID_Array[i] as string)) == true then (
    append BNArr (getnodebyname ("Bone_" Bone_ID_Array[i] as string))
    )
    if 
    isvalidnode (getnodebyname ("Bone_" Bone_ID_Array[i] as string)) != true then (
       
    newBone bonesys.createbone   \
                  
    tfm.row4   \
                  (
    tfm.row4 0.01 * (normalize tfm.row1)) \
                  (
    normalize tfm.row3)
               
    newBone.name   = ("Bone_" Bone_ID_Array[i] as string)
             
    newBone.width  0.03
             newBone
    .height 0.03
             newBone
    .transform tfm
             newBone
    .wirecolor yellow
             newbone
    .showlinks true
             newBone
    .setBoneEnable false 0
             newBone
    .pos.controller      TCB_position ()
             
    newBone.rotation.controller TCB_rotation ()
    append BNArr newBone
                  
    )

    )
    for 
    1 to BoneCount Do (
    select (getnodebyname ("Bone_" + (Bone_ID_Array[i]) as string))
    if  
    boneparentidarray[Bone_ID_Array[(i)]] != 0 then
    $.parent = (getnodebyname ("Bone_" boneparentidarray[Bone_ID_Array[(i)] + 1] as string))
    boneid readlong f
       
    print boneid
    print (getnodebyname ("Bone_" boneparentidarray[Bone_ID_Array[(i)]] as string))
    )
    struct weight_data
    (
       
    boneids,weights
    )
    Vert_array #()
    Normal_array #()
    UV_array #()
    Face_array #()
    Weight_array #()
    for 1 to VertCount Do (
    vx readfloat f     --read xyz coordinates
    vy 
    readfloat f
    vz 
    readfloat f
       
    if VertSize == 0x24 do (
    bone1 readbyte f#unsigned
    bone2 readbyte f#unsigned
    bone3 readbyte f#unsigned
    bone4 readbyte f#unsigned
    weight1 readfloat f
    weight1 
    1.0
    weight2 
    0
    weight3 
    0
    weight4 
    0
    fseek f 0x8
    #seek_cur
       
    )
       if 
    VertSize == 0x28 do (
    weight1 readfloat f
    weight2 
    0
    bone1 
    readbyte f#unsigned
    bone2 readbyte f#unsigned
    bone3 readbyte f#unsigned
    bone4 readbyte f#unsigned
    weight3 0
    weight4 
    0
    fseek f 0xC
    #seek_cur
       
    )
          if 
    VertSize == 0x2C do (
    weight1 readfloat f
    weight2 
    readfloat f
    bone1 
    readbyte f#unsigned
    bone2 readbyte f#unsigned
    bone3 readbyte f#unsigned
    bone4 readbyte f#unsigned
    weight3 0
    weight4 
    0
    fseek f 0xC
    #seek_cur
       
    )
    tu readfloat f
    tv 
    readfloat f * -1
    = (weight_data boneids:#() weights:#())
    maxweight 0
       
    if(weight1 != 0then
       maxweight 
    maxweight weight1
    if(weight2 != 0then
       maxweight 
    maxweight weight2
    if(weight3 != 0then
       maxweight 
    maxweight weight3
    if(weight4 != 0then
       maxweight 
    maxweight weight4

    if(maxweight != 0) Do   
       (
          if(
    weight1 != 0) Do
       (
             
    w1 weight1 as float
             append w
    .boneids (bone1+1)
             
    append w.weights w1
          
    )
          if(
    weight2 != 0) Do
          (
             
    w2 weight2 as float
             append w
    .boneids (bone2+1)
             
    append w.weights w2
          
    )
          if(
    weight3 != 0) Do
          (
             
    w3 weight3 as float
             append w
    .boneids (bone3+1)
             
    append w.weights w3
          
    )
          if(
    weight4 != 0) Do
          (
             
    w4 weight4 as float
             append w
    .boneids (bone4+1)
             
    append w.weights w4
          
    )      
       )      
       

    append Vert_array [vx,vy,vz] --save verts to Vert_array
    append UV_array 
    [tu,tv,0]  --save UVs to UV_array
    append Weight_array w
    )
    for 
    1 to facecount do (
    f1 = (readshort f) + 1   --read face indicesgames are start form 0but Max start from 1
    f2 
    = (readshort f) + 1   --so we add 1 to each index
    f3 
    = (readshort f) + 1
    append Face_array 
    [f1,f2,f3] --save faces to Face_array
    )

    msh mesh vertices:Vert_array faces:Face_array
    msh
    .numTVerts UV_array.count
    buildTVFaces msh
    --msh.name Mesh_Name_array[a]
    for 
    1 to UV_array.count do setTVert msh j UV_array[j]
    for 
    1 to Face_array.count do setTVFace msh j Face_array[j]
    for 
    1 to Normal_array.count do setNormal msh j Normal_array[j]

    max modify mode
    select msh
    skinMod 
    skin ()
    addModifier msh skinMod
    for 1 to BNArr.count do
    (
       
    maxbone getnodebyname BNArr[i].name
       
    if != BNArr.count then
          skinOps
    .addBone skinMod maxbone 0
       
    else
          
    skinOps.addBone skinMod maxbone 1
       
    )

    modPanel.setCurrentObject skinMod

    for 1 to Weight_array.count do
    (
       
    Weight_array[i]
       
    bi #() --bone index array
       
    wv #() --weight value array
       
       
    for 1 to w.boneids.count do
       (
          
    boneid w.boneids[j]
          
    weight w.weights[j]
          
    append bi boneid
          append wv weight
       
    )   
       
       
    skinOps.ReplaceVertexWeights skinMod i bi wv
       
    )
    max create mode

    printoffset 
    (ftell f)
    fclose f
    fclose g 

    Please register or login to download attachments.


  4. The Following 2 Users Say Thank You to CriticalError For This Useful Post:


  5. #14
    duinha
    duinha is offline
    New member
    Join Date
    2012 Mar
    Posts
    21
    Thanks
    5
    Thanked 8 Times in 6 Posts
    Rep Power
    0
    got an error on 3dsMax 2012
    --Runtime error: Unable to increase heap size to:200000000

  6. #15
    Drawing
    Drawing is offline
    New member
    Join Date
    2012 Jan
    Posts
    18
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Hi guys,
    i've expolored all file in mesh's folder but i can't find the weapon.
    Maybe they are in objects' folder, but the format of this kind of files is "MS3".
    Someone that have exported from this game can help me?

  7. #16
    hengle.lee
    hengle.lee is offline
    New member
    Join Date
    2012 Oct
    Location
    xian cn
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    COOL~~~~~thx

  8. #17
    kazhuki01
    kazhuki01 is offline
    Guest
    Join Date
    2012 Dec
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    When i use the script. i always getting an error

  9. #18
    CriticalError
    CriticalError is offline
    Senior Member CriticalError's Avatar
    Join Date
    2011 Jun
    Posts
    204
    Thanks
    21
    Thanked 44 Times in 27 Posts
    Rep Power
    0
    Quote Originally Posted by kazhuki01 View Post
    When i use the script. i always getting an error
    Hello what type of error? can you provide more information? you get error with script of 3DS MAX or Script for Unpack files?

  10. #19
    ipukio
    ipukio is offline
    Member-in-training ipukio's Avatar
    Join Date
    2013 Aug
    Location
    Hestia Drago
    Posts
    56
    Thanks
    13
    Thanked 24 Times in 13 Posts
    Rep Power
    0
    Dwar, where to place the script? on any software?
    Gift A Thanks Please...If I Did Helped You ^^~


  11. #20
    CriticalError
    CriticalError is offline
    Senior Member CriticalError's Avatar
    Join Date
    2011 Jun
    Posts
    204
    Thanks
    21
    Thanked 44 Times in 27 Posts
    Rep Power
    0
    what mean where put script? copy text and paste into notepad, after that save but with extention .ms, this is a maxscript file, after that, open max and open Maxscript and load script from there.

  12. The Following User Says Thank You to CriticalError For This Useful Post:


Page 2 of 2 FirstFirst 12
Visitors found this page by searching for:

aikaj2d

Aika msh

msh importer

Perfect World .bon

aika .msh

.msh importer

msh to max

Aika Max Script

Aika models

.msh

aika fn

aika online importer

aika online Mesh

aika .msh import

AIKA texture

aika 3d model

mSH FN ERROR

aika mesh

aika online 3d modelaika online modelsaika online model importervjltkb bp aika onlineaika game models.msh to .maxaika online weapon obj

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •