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 Thanks Given 
    1
    Thanks Thanks Received 
    3
    Thanked 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 Thanks Given 
    21
    Thanks Thanks Received 
    44
    Thanked 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 Thanks Given 
    21
    Thanks Thanks Received 
    44
    Thanked 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 Thanks Given 
    5
    Thanks Thanks Received 
    8
    Thanked 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 Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked 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 Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0
    COOL~~~~~thx

  8. #17
    kazhuki01
    kazhuki01 is offline
    Guest
    Join Date
    2012 Dec
    Posts
    1
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked 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 Thanks Given 
    21
    Thanks Thanks Received 
    44
    Thanked 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 Thanks Given 
    13
    Thanks Thanks Received 
    24
    Thanked 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 Thanks Given 
    21
    Thanks Thanks Received 
    44
    Thanked 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

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
  •