Page 2 of 5 FirstFirst 12345 LastLast
Results 51 to 100 of 248

[TOOL] Space Marine Tools - UPDATED 18-09 - OPPCExtract v0.1.0 released!

  1. #51
    Any news from the non-working files front? A missing comma or something? I tried to look what could be the problem, but MAX scripts are pretty much all gibberish to me.

  2. #52
    Fixed: https://rapidshare.com/files/1257225485/SMImport.ms (replace Scripts/SMImport/SMimport.ms)

  3. #53
    Thank you very much, hope it wasn't too much of a bother.

  4. #54
    Member Snakeb1te's Avatar
    Join Date
    Nov 2008
    Location
    Plymouth, UK
    Forgive me for being a little clueless, but I've seen this thread every day since it was made, and I have no idea what it's for xD. I suppose its some sort of mod tools but how would they work?

  5. #55
    Good point. Added a short description for each tool in the first post. Basically you can use the smoppc program to unpack files from game's OPPC archives and if you happen to have 3D Studio MAX, you can also import some models from DCM files. Not much functionality atm but the game is not even released yet.

  6. #56
    uncle_anaesthes

    Yeah, tried that and all I got was a quick glimpse of the Dos window and then nada...

    Santos

    Hi Santos, thanks for this awesome tool! Truth be told, I looked at the readme file and it made no sense to me on how to acutally use it, all I got out of it was how [src] and [dest] should work.... Maybe I'm not the kind of person to be using this tool.

    Should this work on other .oppc files or just from Space Marine?

    Thanks for your responses!

  7. Forum Subscriber  #57
    Greymane pack-father Lleman's Avatar
    Join Date
    Dec 2005
    Location
    On my way back to my cubs, eternally.
    Quote Originally Posted by SMTools' readme
    When both 'src'and 'dest' are empty, script will load all OPPC files from current directory and extract them all into the same directory.
    Have you checked your ..\steamapps\common\warhammer 40,000 space marine demo\data\chunks folder (from which, in all evidence, you've drag'n'dropped the OPPCs) ? Now you should see one or several folders named accordingly with the oppc files you've thusly decompiled.
    We look to the heavens so that one day our children may look back towards home.

  8. #58
    Ok, let me explain this in more detail than. Space Marine demo assets (textures, models, etc.) are stored within archive files with OPPC extension. These files can be found in data/chunks and data/packeges directories under your Space Marine demo path (steamapps\common\warhammer 40,000 space marine demo). In essence OPPC files are similar to ZIP or RAR archives. Unfortunately their file format is not readable by any existing tool, so I prepared a simple command line program (smoppc) which can extract data from OPPC archives.

    To run the program open your Windows prompt (Start => Run => 'cmd') and navigate to directory where smoppc.exe can be found. Program reads two arguments from command line (src and dest), both are optional. With src you can specify which OPPC file to unpack or you can point to directory with OPPC files inside, if you want to unpack more than one file at once. Dest will tell the program where to put extracted files.

    Examples:

    > smoppc

    Unpacks all OPPC files in current directory to the same directory (folder is created for each unpacked archive).

    > smoppc c:\space_marine_demo\data\packages

    Unpacks all OPPC files from packages directory into current directory (where smoppc.exe was called from).

    > smoppc c:\space_marine_demo\data\packages\test.oppc

    Unpacks single file called test.oppc into current directory.

    > smoppc c:\space_marine_demo\data\packages c:\temp

    Unpacks all OPPC files from packages directory into c:\temp.

    > smoppc c:\space_marine_demo\data\packages\test.oppc c:\temp

    Unpacks test.oppc file from packages directory into c:\temp

    Pressing Enter will run the program. Program will print out paths of all unpacked files. When command prompt appears again it means extraction is done and you can look for extracted files in whatever directory you provided as dest argument.

    TIP: The simplest way you can use the program is to copy it into data/chunks or data/packages directory and just run it with double click. Program will unpack all OPPC files found in this directories at once.
    Hope this helps...

  9. #59
    It works! Thank you for the great explanation, Santos! It all makes sense now!

  10. #60
    I came here because of a link to the reskins by NastyNoodle and now I saw this. I'm realy astounded by what your achieving here.

    The only probleme is I'm not using 3dsmax so I can't use your import script. It would be pretty cool to have a stand alone App to create .obj; .3ds or .fbx files out of the data.

    And you guys are realy F***ing fast considering the game isn't actually out yet.

    big props to you Santos

  11. #61
    Member Carl's Avatar
    Join Date
    Aug 2006
    Location
    The Crossroads of Inertia
    The only probleme is I'm not using 3dsmax so I can't use your import script. It would be pretty cool to have a stand alone App to create .obj; .3ds or .fbx files out of the data.
    I may be mistaken but i don't belive our freindly tool creator is that skilled a programmer, once he does a write up on the "format" (hope thats the right word), somone else with the coding knowlage will come along and do he work there. Don't look at me for it though, don't know a sasuage about programming, would like to learn but...
    I don't know what i'm talking about, ignore me.

    Thousands of years ago, Egyptians worshipped what would become our ordinary housecat. The cats have never forgotten this.


  12. Modding Senior Member  #62
    Quote Originally Posted by Santos
    @I_am_a_Spoon
    Stats are stored in attr_pc files. Upon inspection in hex editor they appear very similar to DoW2 RBFs. I'm sure Cope will have no trouble figuring this one out.
    I am able to write/read/edit attr_pc (BAF) files but there is no point in releasing my converter. It is utterly useless because Space Marine does not load files from outside OPPC archives. We need to be able write OPPC archives in order to mod the game.
    "When life gives you lemons, make lemonade. Then use the profits to buy an assault rifle. See if life makes the same mistake twice."
    When to report?

  13. #63
    @Chisui

    I may do something like that in the future.

    @Carl
    To put it in your own words: I don't know what i'm talking about, ignore me.

    @Copernius

    Well, that's a step forward at least. Try looking at OPPC format yourself. Maybe you will succeed in figuring out the missing bits.

  14. Modding Senior Member  #64
    I'm currently working on it. Looks like a hash (or rather: multiple hashes) or something along these lines.

  15. #65
    Looks way to big for a single hash. It's different in every file though, so it might be some way of integrity check.
    I may be mistaken but i don't belive our freindly tool creator is that skilled a programmer, once he does a write up on the "format" (hope thats the right word), somone else with the coding knowlage will come along and do he work there. Don't look at me for it though, don't know a sasuage about programming, would like to learn but...- Carl

  16. Modding Senior Member  #66
    There are 480 bit hashes but afaik they are not commonly used. That's why I'm going for multiple hashes .

  17. #67
    Figured out some more bits from OPPC files. Here's the updated format:

    Code:
    ================
    OPPC File Format
    ================
    Version: 0.1.2
    Author: Santos
    ================
    
    Resource Types
    --------------
    
    4 - Default
    7 - Texture2D
    8 - Model
    9 - Texture3D
    
    ------
    HEADER
    ------
    
    CHAR[4]     signature (OBPK)
    UINT8        flag? (0)
    UINT32        major version? (10)
    UINT32        minor version? (0)
    UINT32        num files
    UINT32        ? (8-53)
    UINT32        header size (337)
    UINT32        index size
    UINT32        data size (uncompressed)
    UINT32        ? (0)
    UINT32        ? (0)
    UINT32        ? (10000)
    UINT32        ? (50000)
    DATA[288]    ?
    
    -----
    INDEX
    -----
    
    // Unknowns
    
    UINT32        num unknowns
    FOR (num unknowns) DO
        UINT32    count
        FOR (count) DO
            INT32     ? (-1, 60085-64143)
    
    // Strings
    
    UINT32        num strings
    FOR (num strings) DO
        STRING    string
    
    // Types
    
    UINT32        num types
    FOR (num types) DO
        DATA[8]        type id
        UINT32        num entries
    
    // Entries
    
    FOR (num types) DO
        FOR (type => num entries) DO
            STRING        name
            STRING      dir
            UINT32      size
            INT32        index into unknown table
            UINT32      size
            UINT32      ? (0)
            UINT32      ? (0)
            UINT8        resource type
            CASE (resource type) OF
                4: UINT32    size
                7: UINT8    texture compression? (6 - None, 13 - ?, 15 - DXT1, 17 - DXT5)
                    UINT8    num mipmaps? (1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
                    UINT8    ? (1)
                    UINT16    texture width
                    UINT16    texture height
                8: UINT32    file header size
                    UINT32    file data size
                7: UINT8    texture compression? (6 - None)
                    UINT8    num mipmaps? (1)
                    UINT8    ? (2)
                    UINT16    texture width
                    UINT16    texture height
                    UINT16    texture length
    
    // Padding
    
    DATA[N}        padding (00 up to index size)
    
    ----
    DATA
    ----
    
    UINT32        uncompressed data size
    DATA[N]        compressed data (to end of file)
    Last edited by Santos; 27th Aug 11 at 11:26 AM.

  18. Modding Senior Member  #68
    I'm also making some progress; I have successfully loaded a texture w/o using any extra tools (such as texmod) or packing it into an OPPC:


    Unfortunately I still haven't gotten attr_pc files to be loaded .

  19. #69
    Whoa! How did you do that?

  20. #70
    Very nice. Editing those and making the game load them would be a major breakthrough, simply changing the armour parts and textures will keep the modding scene busy for weeks.

  21. Modding Senior Member  #71
    I was trying to tell you via Steam but somehow it didn't work.
    It is rather simple:
    1. Add -usepreview as a launch option. (Alternatively you can use UsePreview = true in gamePC.cfg)
    2. Go into your Space Marine directory and create a folder called preview.
    3. Extract an oppc-package of your choice, e.g. bolter.oppc.
    4. Open packages.xml.bin from data\config with a hexviewer of your choice.
    5. packages.xml.bin stores the base-directories for packages (among other things). So search for the name of the oppc-package, 12 bytes after the name of the oppc-package will be its base directory, in our case that's art/race_marine/characters/spacemarine/weaponranged.
    6. Create the base directory within the preview folder and move the extracted folder into it (e.g. preview\art\race_marine\characters\spacemarine\weaponranged\bolter\).
    7. Done.

    Doing this with attr_pc-files will make the game load these files as well but so far wargear etc. loaded this way does not appear ingame, weapons are not selectable -- but still they're loaded, confirmed this multiple times.

  22. #72
    Ah, I was hoping there might be a -dev mode of some kind, like the one in DoW2 and indeed there is! I salute you for figuring that out, well done!

    Unfortunely I cannot play around with this at the moment, because I happen to be one of those unfortunate souls for whom the demo crashes soon after playing initial videos. Tried pretty much everything at this point (apart from reinstalling windows) and still cannot run it. Hopefully Relic will do some fixes before release...

    Than again If I can't play, I can at least write some tools. I wonder if you could verify this also works with models?

  23. Modding Senior Member  #73
    How soon? When playing the THQ-movie? Because this normally happens when I accidentally damage a file in any way.
    I could probably verify it if I knew my way around models and stuff. But I don't, seriously. I once wrote a raytracer but other than that I've never dealt with models. If you give me a step-by-step guide how I would verify it, I'd be pleased to test it.

  24. #74
    That is... easier than i feared it would be. I love it.

    Santos, have you tried running a Steam integrity check? Maybe there's just one file not downloaded correctly, happens sometimes.

  25. #75
    How soon? When playing the THQ-movie?
    Couple seconds after . I tried running the game before I started messing around with it, so it's not crashing due to some damaged files I think. But how would I know anyway, if it doesn't even write anything to freaking logs. There are tons of people with this problem on official forums and it seems Relic really screwed something badly...

    As for models, we don't have an exporter yet, so the only thing you can possibly try, is to take some existing model and replace it with another existing model (DCM file that is), using exactly the same method as with textures. I'm just curious if that would work without any problems. Probably it's best to try this with some static mesh like weapon or maybe swapping a piece of armor from one set to another could possibly work.

    Santos, have you tried running a Steam integrity check? Maybe there's just one file not downloaded correctly, happens sometimes.
    Yeah, that and redownloading the demo.

  26. Child's Play Donor  #76
    senile member Mac_Bug's Avatar
    Join Date
    Jan 2000
    Location
    Caprica
    Looks like I filed that dev track bug two weeks too late

  27. #77
    I guess the OPPC unpacker could be rewritten so it directly unpacks/creates the base dir? BTW I really want to make/have a mod that makes blood splatters stay longer on power armor or makes them permanent. Look rather lame to see it fade after like 10 seconds.

  28. Modding Senior Member  #78
    @Santos:I really could have thought of that myself, sometimes it really is obvious . Anyways:

  29. #79
    Great! Now we just need a model exporter...

    On a side note. I just cracked another file format (with BOD signature), which turned out to be shared by as much as 8 (out 21 total) types of files from OPPC archives. These files have different extensions (object-manifest, O3d, bmat, PSystem and some others) but are simply a collection of parameters and can be converted to some human readable format like XML (which I already did). Some some small unknown bits still remain but they should be fully editable eventually...

  30. #80
    Hehe, anyone interested in a lightsaber mod?


  31. #81
    Member cobaltlotus's Avatar
    Join Date
    Feb 2011
    Location
    Webster, NY
    So, you can swap weapon models; but is it possible at all to say, switch one character model in for another? i.e. Instead of Titus, Leandros or Sidonus, or the vanilla Ultramarine shown earlier in the thread? That would be rightly neat-o.. Then again, most coding and modding is gibberish to me. Cheers!
    Courage and Honor!
    The enemies of the Emperor fear many things.
    They fear discovery, defeat, despair and death.
    Yet there is one thing they fear above all others.
    They fear the wrath of the Space Marines!

  32. Modding Senior Member  #82
    Should be possible, but probably very difficult. The space marine figure is a composition of various parts of wargear, a specific head and some other stuff. These things are afaik stored in an attr_pc file, which we cannot load properly yet. One could of course replace every single part of the figure but this would most likely break something.

  33. #83
    I tried to replace the Titus head with a helmet (at the risk of ruining the forum's running gag) and the game refused to start. Probably problems with bones and stuff, looks like we'll have to wait for the attr_pcs to be editable.

  34. #84
    Hey Copernicus and Don, could you two pm me your steamids? :3
    Never befriend an Ork on Facebook without first limiting your public profile from The Emperor.

  35. Child's Play Donor  #85
    senile member Mac_Bug's Avatar
    Join Date
    Jan 2000
    Location
    Caprica
    santos: can you paste in the full path to your steam folder? we can take this to the official forum thread

  36. #86
    How did ya get around the glowy texture Cope?

  37. Modding Senior Member  #87
    @NastyNoodle/Don the Oiler:
    Glowing textures are missing textures. Every dcm-model references a material file (whatever.bmat) which it is searching for in its folder. You can see what bmat-file it is looking for by opening it in a hex-editor and looking for the last ASCII-string in the DCM's header. This bmat-file then references textures, maps etc.. Take the lasgun for example:
    To replace the bolter with the lasgun, I took all the lasguns files and dropped them in the bolter's folder. Then I renamed lasgun.dcm to bolter.dcm, but left the rest of the files unchanged. Opening the lasgun's DCM file will tell you that it is looking for standard_20.bmat. If that file is missing in the bolter's folder, you'll get glowing textures.

    Edit: Also make sure you're using the latest version of Santos' tools for unpacking the files (smoppc).
    Last edited by Copernicus; 28th Aug 11 at 1:18 AM.

  38. #88
    Fantastic work, hopefully even more can come of this, we may see Space Marine mods after all!

    I imported all of Titus in to max (this is going to make re-textures a hell of a lot easier!). There are still quite a few issues with the origins, and I am getting a crash when trying to render the head after importing it (deleting the skinning and bones seems to make it work if that's useful)

    (picture from max viewport as broken link since I am apparently too new to post links!)
    http : // www . members . optusnet . com . au/isotoper/titus . jpg

  39. #89
    Ah thanks, extracting it again with smoppc fixed issues for me.
    Ork Shoota works... kinda.


    Another very important format to look into: USM! I know THQ, Relic and AMD are awesome, but with all the mod-testing it gets tedious to watch the intro movies every the time.

    EDIT: Errr... doesn't matter, problem solved
    Last edited by Don the Oiler; 28th Aug 11 at 7:59 AM.

  40. Child's Play Donor  #90
    senile member Mac_Bug's Avatar
    Join Date
    Jan 2000
    Location
    Caprica
    you can skip the intro as soon as the game is loaded in thebackgrounds but not before

  41. #91
    Or just delete the intro vids

  42. #92

  43. #93
    Bit late for the party Golem ;3

    Also that guy is an idiot for telling people to export to bitmap. Would ruin any and all alpha maps

  44. #94
    Would anyone be kind enough to do a short write up on how they are swapping models/textures and getting them back in-game? Is there a way to re-pack oppc files?

    -edit- I just downloaded one of Noodles packs that gives me some idea!

    I notice the map props are also stored in the same model and package format, has anyone found out how the levels are structured and stored at all?

    -edit- Also another question, are there plans to make an exporter? Really looking forward to being able to create custom meshes....
    Last edited by Carbon14; 28th Aug 11 at 11:53 PM.

  45. #95
    @Carbon14

    If you followed Santos thread, you would've noticed that all this is in the works. There's also a guide there on how to load custom/modified content. Just no custom meshes yet, as there is no .DCM exporter yet.

  46. #96
    NastyNoodle i cnow. If not have unpaker. I use DXRipper for getting original textures.

    ps
    it not my video
    Last edited by ~GOLEM~; 29th Aug 11 at 9:02 AM.

  47. #97
    Certifiably insane Kresjah's Avatar
    Join Date
    Nov 2004
    Location
    ModTools\DataGeneric
    Great work to the lot of you who have been deciphering the file formats and making the tools so far. Gave smoppc and SMImport a quick try today, and it made my monitor put on a happy face.

    @Santos: I do have a question though:
    - I'm guessing most people don't really use it, but I decided to try out the "Normals" smoothing mode for the importer. This throws a MAXScript error for seemingly every model I try. Is this a bug, an unfinished feature, or remnants of some experiments? I run 3DS Max 2008 (x86) on Windows 7 Ultimate (x64).

    Script editor points to line 534 of SMImport.ms:
    Code:
    newMesh.editNormals.ConvertFaceSelection &face &normals
    Here's the Listener log:
    Code:
    "Importing E:\SM_Modding\packages\sm_armour_basic_001_torso\sm_armour_basic_001_torso.dcm"
    -- Error occurred in i loop; filename: C:\Program Files (x86)\Autodesk\3ds Max 2008\scripts\SMTools\SMImport.ms; position: 15391
    --  Frame:
    --   normals: #{}
    --   i: 1
    --   face: #{1}
    --   called in subMesh loop; filename: C:\Program Files (x86)\Autodesk\3ds Max 2008\scripts\SMTools\SMImport.ms; position: 15649
    --  Frame:
    --   verts: undefined
    --   numfaces: 1510
    --   smoothingGroups: undefined
    --   sharedFaces: undefined
    --   groupID: undefined
    --   weldedVertices: #([0.32317,0.01389,1.88106], [0.3222,0.03492,1.82808], [0.3216,0.02819,1.77436], [0.16242,-0.02025,1.97992], [0.2122,-0.02215,1.97997], [0.15748,-0.03026,1.99448], [-0.1035,-0.195678,1.45442], [-0.0704,0.188582,1.40206], [0,0.189272,1.40108], [0.25185,0.00884204,1.43325], [0.2489,-0.049408,1.44074], [0.23903,0.075352,1.42503], [-0.25185,0.00884204,1.43325], [-0.23903,0.075352,1.42503], [-0.2489,-0.049408,1.44074], [-0.00669,0.27139,1.75959], [0,0.26463,1.75804], [0,0.27741,1.77016], [0.00669,0.27139,1.7596], [-0.32495,-0.09155,1.70538], ...)
    --   vertexMap: #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 17, 19, ...)
    --   index: undefined
    --   subMesh: (SubMeshData name:"SM_Torso" vertices:#((VertexData position:[0.32317,0.01389,1.88106] normal:[0.920408,-0.313584,-0.233481] binormal:[0.286358,0.94732,-0.143473] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.524302,0.663405,0], [0.0254099,0.217992,0])), (VertexData position:[0.3222,0.03492,1.82808] normal:[0.999824,0.0136703,-0.0128793] binormal:[-0.0150532,0.993339,-0.114242] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.538836,0.636921,0], [0.0359171,0.269681,0])), (VertexData position:[0.3216,0.02819,1.77436] normal:[0.906067,-0.39228,0.158616] binormal:[0.407027,0.910465,-0.0733606] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.538587,0.608377,0], [0.0326674,0.322091,0])), (VertexData position:[0.16242,-0.02025,1.97992] normal:[0.0306752,0.818763,0.573312] binormal:[-0.99917,0.0404851,-0.004357] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.226304,0.667234,0], [0.0160469,0.121543,0])), (VertexData position:[0.2122,-0.02215,1.97997] normal:[0.0184365,0.841536,0.539886] binormal:[-0.999684,0.0247311,-0.00441103] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.20075,0.66713,0], [0.0108213,0.121494,0])), (VertexData position:[0.15748,-0.03026,1.99448] normal:[0.0212426,0.837377,0.546213] binormal:[-0.99977,0.0194431,0.00907431] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.229084,0.676309,0], [0.00605271,0.107338,0])), (VertexData position:[-0.1035,-0.195678,1.45442] normal:[-0.0214869,0.142886,0.989506] binormal:[0.999704,-0.00823105,0.0228969] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.286322,0.64757,0], [0.661497,0.634233,0])), (VertexData position:[-0.0704,0.188582,1.40206] normal:[0.0124814,0.133948,0.99091] binormal:[0.999856,-0.0130219,-0.0108338] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.293818,0.749084,0], [0.296467,0.685317,0])), (VertexData position:[0,0.189272,1.40108] normal:[0,0.135641,0.990758] binormal:[0.999934,-0.0114051,0.00156143] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.312227,0.749508,0], [0.25,0.686273,0])), (VertexData position:[0.25185,0.00884204,1.43325] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.378723,0.702413,0], [1.02923,0.654887,0])), (VertexData position:[0.2489,-0.049408,1.44074] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.378134,0.687045,0], [0.991071,0.64758,0])), (VertexData position:[0.23903,0.075352,1.42503] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.37516,0.719897,0], [1.07198,0.662907,0])), (VertexData position:[-0.25185,0.00884204,1.43325] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.246832,0.700897,0], [0.470775,0.654887,0])), (VertexData position:[-0.23903,0.075352,1.42503] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.249991,0.718459,0], [0.428015,0.662907,0])), (VertexData position:[-0.2489,-0.049408,1.44074] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.247774,0.685547,0], [0.508929,0.64758,0])), (VertexData position:[-0.00669,0.27139,1.75959] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.934958,0.157236,0], [0.253321,0.336501,0])), (VertexData position:[0,0.26463,1.75804] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.930882,0.156048,0], [0.25,0.338013,0])), (VertexData position:[0,0.27741,1.77016] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.931026,0.162964,0], [0.25,0.326189,0])), (VertexData position:[0,0.26463,1.75804] normal:[-0.465614,0.608977,-0.642146] binormal:[-0.839308,-0.533965,0.102191] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.930882,0.156048,0], [0.25,0.338013,0])), (VertexData position:[0.00669,0.27139,1.7596] normal:[-0.465614,0.608977,-0.642146] binormal:[-0.839308,-0.533965,0.102191] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.927211,0.157403,0], [0.246679,0.336491,0])), ...) vertexOffset:0 faces:#([1,3,2], [4,6,5], [7,9,8], [10,12,11], [13,15,14], [16,18,17], [19,21,20], [22,24,23], [24,22,25], [25,26,24], [26,25,27], [28,26,27], [26,28,29], [28,30,29], [30,28,31], [31,32,30], [32,31,33], [33,34,32], [34,33,35], [36,34,35], ...) faceOffset:0 skinBones:#(1, 2, 3))
    --   offset: 123360
    --   FaceSelection: undefined
    --   streamOffset: 101947
    --   smoothFaces: undefined
    --   stack: undefined
    --   numVertices: 1542
    --   face: undefined
    --   modSkin: undefined
    --   newMesh: $SM_Torso
    --   orgFace: undefined
    --   weldedFaces: #([1,3,2], [4,6,5], [7,9,8], [10,12,11], [13,15,14], [16,18,17], [17,18,19], [20,22,21], [22,20,23], [23,24,22], [24,23,25], [26,24,25], [24,26,27], [26,28,27], [28,26,29], [29,30,28], [30,29,31], [31,32,30], [32,31,33], [34,32,33], ...)
    --   called in _mesh loop; filename: C:\Program Files (x86)\Autodesk\3ds Max 2008\scripts\SMTools\SMImport.ms; position: 16797
    --  Frame:
    --   _mesh: (MeshData numVertices:1542 vertexDataOffset:#(9060, 58404, 101580) numfaces:1510 faceDataOffset:0 skinBones:#((SkinBoneData name:"RIG_SpineD" matrix:(matrix3 [0,2.86236e-006,-1] [-0.129737,0.991548,2.81393e-006] [0.991548,0.129737,2.93275e-007] [-1.56095,-0.195074,-1.64642e-006]) parent:3 Bone:$RIG_SpineD), (SkinBoneData name:"RIG_Pelvis" matrix:(matrix3 [1.28171e-006,-9.53704e-007,-1] [0,1,-9.53675e-007] [1,0,1.34082e-006] [-1.22484,0.00885656,-2.8643e-006]) parent:1 Bone:$RIG_Pelvis), (SkinBoneData name:"RIG_SpineA" matrix:(matrix3 [3.05037e-006,0.000348194,-1] [0.00952238,0.999954,0.000348181] [0.999955,-0.00952245,-3.2788e-007] [-1.40716,0.0223705,-7.28494e-007]) parent:2 Bone:$RIG_SpineA)) subMeshes:#((SubMeshData name:"SM_Torso" vertices:#((VertexData position:[0.32317,0.01389,1.88106] normal:[0.920408,-0.313584,-0.233481] binormal:[0.286358,0.94732,-0.143473] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.524302,0.663405,0], [0.0254099,0.217992,0])), (VertexData position:[0.3222,0.03492,1.82808] normal:[0.999824,0.0136703,-0.0128793] binormal:[-0.0150532,0.993339,-0.114242] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.538836,0.636921,0], [0.0359171,0.269681,0])), (VertexData position:[0.3216,0.02819,1.77436] normal:[0.906067,-0.39228,0.158616] binormal:[0.407027,0.910465,-0.0733606] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.538587,0.608377,0], [0.0326674,0.322091,0])), (VertexData position:[0.16242,-0.02025,1.97992] normal:[0.0306752,0.818763,0.573312] binormal:[-0.99917,0.0404851,-0.004357] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.226304,0.667234,0], [0.0160469,0.121543,0])), (VertexData position:[0.2122,-0.02215,1.97997] normal:[0.0184365,0.841536,0.539886] binormal:[-0.999684,0.0247311,-0.00441103] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.20075,0.66713,0], [0.0108213,0.121494,0])), (VertexData position:[0.15748,-0.03026,1.99448] normal:[0.0212426,0.837377,0.546213] binormal:[-0.99977,0.0194431,0.00907431] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.229084,0.676309,0], [0.00605271,0.107338,0])), (VertexData position:[-0.1035,-0.195678,1.45442] normal:[-0.0214869,0.142886,0.989506] binormal:[0.999704,-0.00823105,0.0228969] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.286322,0.64757,0], [0.661497,0.634233,0])), (VertexData position:[-0.0704,0.188582,1.40206] normal:[0.0124814,0.133948,0.99091] binormal:[0.999856,-0.0130219,-0.0108338] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.293818,0.749084,0], [0.296467,0.685317,0])), (VertexData position:[0,0.189272,1.40108] normal:[0,0.135641,0.990758] binormal:[0.999934,-0.0114051,0.00156143] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.312227,0.749508,0], [0.25,0.686273,0])), (VertexData position:[0.25185,0.00884204,1.43325] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.378723,0.702413,0], [1.02923,0.654887,0])), (VertexData position:[0.2489,-0.049408,1.44074] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.378134,0.687045,0], [0.991071,0.64758,0])), (VertexData position:[0.23903,0.075352,1.42503] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.37516,0.719897,0], [1.07198,0.662907,0])), (VertexData position:[-0.25185,0.00884204,1.43325] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.246832,0.700897,0], [0.470775,0.654887,0])), (VertexData position:[-0.23903,0.075352,1.42503] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.249991,0.718459,0], [0.428015,0.662907,0])), (VertexData position:[-0.2489,-0.049408,1.44074] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.247774,0.685547,0], [0.508929,0.64758,0])), (VertexData position:[-0.00669,0.27139,1.75959] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.934958,0.157236,0], [0.253321,0.336501,0])), (VertexData position:[0,0.26463,1.75804] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.930882,0.156048,0], [0.25,0.338013,0])), (VertexData position:[0,0.27741,1.77016] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.931026,0.162964,0], [0.25,0.326189,0])), (VertexData position:[0,0.26463,1.75804] normal:[-0.465614,0.608977,-0.642146] binormal:[-0.839308,-0.533965,0.102191] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.930882,0.156048,0], [0.25,0.338013,0])), (VertexData position:[0.00669,0.27139,1.7596] normal:[-0.465614,0.608977,-0.642146] binormal:[-0.839308,-0.533965,0.102191] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.927211,0.157403,0], [0.246679,0.336491,0])), ...) vertexOffset:0 faces:#([1,3,2], [4,6,5], [7,9,8], [10,12,11], [13,15,14], [16,18,17], [19,21,20], [22,24,23], [24,22,25], [25,26,24], [26,25,27], [28,26,27], [26,28,29], [28,30,29], [30,28,31], [31,32,30], [32,31,33], [33,34,32], [34,33,35], [36,34,35], ...) faceOffset:0 skinBones:#(1, 2, 3))) flag:1)
    --   called in ImportModel(); filename: C:\Program Files (x86)\Autodesk\3ds Max 2008\scripts\SMTools\SMImport.ms; position: 16803
    --  Frame:
    --   options: (optionsStruct smoothing:3 resetScene:true saveScene:false weldVertices:true)
    --   MeshData: StructDef:MeshData
    --   SubMeshData: StructDef:SubMeshData
    --   numMeshes: 1
    --   VertexData: StructDef:VertexData
    --   file: <BinStream:E:\SM_Modding\packages\sm_armour_basic_001_torso\sm_armour_basic_001_torso.dcm>
    --   path: "E:\SM_Modding\packages\sm_armour_basic_001_torso\sm_armour_basic_001_torso.dcm"
    --   headerSize: 367
    --   SkinBoneData: StructDef:SkinBoneData
    --   dataSize: 231108
    --   meshes: #((MeshData numVertices:1542 vertexDataOffset:#(9060, 58404, 101580) numfaces:1510 faceDataOffset:0 skinBones:#((SkinBoneData name:"RIG_SpineD" matrix:(matrix3 [0,2.86236e-006,-1] [-0.129737,0.991548,2.81393e-006] [0.991548,0.129737,2.93275e-007] [-1.56095,-0.195074,-1.64642e-006]) parent:3 Bone:$RIG_SpineD), (SkinBoneData name:"RIG_Pelvis" matrix:(matrix3 [1.28171e-006,-9.53704e-007,-1] [0,1,-9.53675e-007] [1,0,1.34082e-006] [-1.22484,0.00885656,-2.8643e-006]) parent:1 Bone:$RIG_Pelvis), (SkinBoneData name:"RIG_SpineA" matrix:(matrix3 [3.05037e-006,0.000348194,-1] [0.00952238,0.999954,0.000348181] [0.999955,-0.00952245,-3.2788e-007] [-1.40716,0.0223705,-7.28494e-007]) parent:2 Bone:$RIG_SpineA)) subMeshes:#((SubMeshData name:"SM_Torso" vertices:#((VertexData position:[0.32317,0.01389,1.88106] normal:[0.920408,-0.313584,-0.233481] binormal:[0.286358,0.94732,-0.143473] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.524302,0.663405,0], [0.0254099,0.217992,0])), (VertexData position:[0.3222,0.03492,1.82808] normal:[0.999824,0.0136703,-0.0128793] binormal:[-0.0150532,0.993339,-0.114242] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.538836,0.636921,0], [0.0359171,0.269681,0])), (VertexData position:[0.3216,0.02819,1.77436] normal:[0.906067,-0.39228,0.158616] binormal:[0.407027,0.910465,-0.0733606] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.538587,0.608377,0], [0.0326674,0.322091,0])), (VertexData position:[0.16242,-0.02025,1.97992] normal:[0.0306752,0.818763,0.573312] binormal:[-0.99917,0.0404851,-0.004357] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.226304,0.667234,0], [0.0160469,0.121543,0])), (VertexData position:[0.2122,-0.02215,1.97997] normal:[0.0184365,0.841536,0.539886] binormal:[-0.999684,0.0247311,-0.00441103] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.20075,0.66713,0], [0.0108213,0.121494,0])), (VertexData position:[0.15748,-0.03026,1.99448] normal:[0.0212426,0.837377,0.546213] binormal:[-0.99977,0.0194431,0.00907431] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.229084,0.676309,0], [0.00605271,0.107338,0])), (VertexData position:[-0.1035,-0.195678,1.45442] normal:[-0.0214869,0.142886,0.989506] binormal:[0.999704,-0.00823105,0.0228969] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.286322,0.64757,0], [0.661497,0.634233,0])), (VertexData position:[-0.0704,0.188582,1.40206] normal:[0.0124814,0.133948,0.99091] binormal:[0.999856,-0.0130219,-0.0108338] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.293818,0.749084,0], [0.296467,0.685317,0])), (VertexData position:[0,0.189272,1.40108] normal:[0,0.135641,0.990758] binormal:[0.999934,-0.0114051,0.00156143] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.312227,0.749508,0], [0.25,0.686273,0])), (VertexData position:[0.25185,0.00884204,1.43325] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.378723,0.702413,0], [1.02923,0.654887,0])), (VertexData position:[0.2489,-0.049408,1.44074] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.378134,0.687045,0], [0.991071,0.64758,0])), (VertexData position:[0.23903,0.075352,1.42503] normal:[0.0203428,0.126492,0.991759] binormal:[0.999717,-0.014827,-0.0186149] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.37516,0.719897,0], [1.07198,0.662907,0])), (VertexData position:[-0.25185,0.00884204,1.43325] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.246832,0.700897,0], [0.470775,0.654887,0])), (VertexData position:[-0.23903,0.075352,1.42503] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.249991,0.718459,0], [0.428015,0.662907,0])), (VertexData position:[-0.2489,-0.049408,1.44074] normal:[-0.0203428,0.126492,0.991759] binormal:[0.999733,-0.00829433,0.0215642] indices:#(2, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.247774,0.685547,0], [0.508929,0.64758,0])), (VertexData position:[-0.00669,0.27139,1.75959] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.934958,0.157236,0], [0.253321,0.336501,0])), (VertexData position:[0,0.26463,1.75804] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.930882,0.156048,0], [0.25,0.338013,0])), (VertexData position:[0,0.27741,1.77016] normal:[0.466366,0.608704,-0.641858] binormal:[-0.824255,0.562413,-0.0655312] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.931026,0.162964,0], [0.25,0.326189,0])), (VertexData position:[0,0.26463,1.75804] normal:[-0.465614,0.608977,-0.642146] binormal:[-0.839308,-0.533965,0.102191] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.930882,0.156048,0], [0.25,0.338013,0])), (VertexData position:[0.00669,0.27139,1.7596] normal:[-0.465614,0.608977,-0.642146] binormal:[-0.839308,-0.533965,0.102191] indices:#(1, 1, 1, 1) weights:#(1.0, 0.0, 0.0, 0.0) uvw:#([0.927211,0.157403,0], [0.246679,0.336491,0])), ...) vertexOffset:0 faces:#([1,3,2], [4,6,5], [7,9,8], [10,12,11], [13,15,14], [16,18,17], [19,21,20], [22,24,23], [24,22,25], [25,26,24], [26,25,27], [28,26,27], [26,28,29], [28,30,29], [30,28,31], [31,32,30], [32,31,33], [33,34,32], [34,33,35], [36,34,35], ...) faceOffset:0 skinBones:#(1, 2, 3))) flag:1))
    --   import: (importStruct meshes:true Bones:true skins:true boundingBoxes:false)
    --   called in importButton.pressed(); filename: C:\Program Files (x86)\Autodesk\3ds Max 2008\scripts\startup\SMTools.ms; position: 3051
    --  Frame:
    --   optionsStruct: StructDef:optionsStruct
    --   options: (optionsStruct smoothing:3 resetScene:true saveScene:false weldVertices:true)
    --   msg: undefined
    --   elapsed: undefined
    --   importStruct: StructDef:importStruct
    --   path: "E:\SM_Modding\packages\sm_armour_basic_001_torso\sm_armour_basic_001_torso.dcm"
    --   import: (importStruct meshes:true Bones:true skins:true boundingBoxes:false)
    --   start: 1309935
    >> MAXScript Rollout Handler Exception: -- Unknown system exception <<
    @Don the Oiler: Any chance you could let me in on the material setup and rendering properties you've used to get the nice renders you've posted a few times in this topic? Never had to worry about all these additional maps and stuff whilst modding DoW1... 98% of the times, the renders looked similar to DoW1 ingame using only the diffuse after all, hence I never bothered paying much attention to the rest of the stuff.
    Das Bavarian Franch Reich
    13 kilograms og Belgian hair
    19 incidents of prolapsus from France
    66 liters of unaware pancreas-hatted English priests
    1/2 soothing-voiced Norwegian baboon

  48. #98
    This probably won't help you since i do my rendering in Deep Exploration, but there i use refractive index 5, blurry reflections and 35 gloss for pretty much every material, normal maps are 30% intensity. I could render it in max too, would probably look much better if i tweak it a little, but Deep Exploration is faster and user-friendlier (as long as you don't try to actually model anything).

  49. #99
    @Carbon14

    Level descriptions seem to be split into several kind of files (world, region, Layer, nav). I'm writing a tool which converts those into XML, so you'll be able to see what's inside when it's released.

    @Kresjah

    "Normals" smoothing mode is implemented and should be working. You're getting worst kind of MAXScript error ("Unknown system exception") which tells absolutely nothing about what's causing the crash. I'm reworking the import code right now, so hopefully this problem won't be happening for you with next version anymore.

  50. #100
    Wow, sounds great Santos. While fairly unlikely, and probably a whole lot of work, how much of a chance is there that creating levels may be possible at some point? Since creating an actual level editor would be way too difficult, I guess it would have to be done as a max exporter or something though. At least if you make them XML readable then it would be possible to tweak things like weapon and enemy placement and quantity.

    Also, more questions, have you got any idea how the ragdoll/cloth bits are done? I cant see any bones on the import, so I am wondering how the attachment point is determined? Also wondering, since the tabard thing has a thickness, if there is some sort of vertex painting or weights or some other info stored there? since I would have thought if the vertices were allowed to just fly around as they saw fit they would tend to intersect and the back would tend to pop through to the front etc?

    P.S. The normals smoothing mode works for me (max 2009)

    -edit- One last thing, dunno if its an issue or not but the scale seems unusually tiny, and at least in max 2009 makes editing a little annoying. The SM is about "2" generic units high, possibly 200 would be more in order?

Page 2 of 5 FirstFirst 12345 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Posting Permissions

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