Home Technical Talk

FBX support for CryENGINE3

2

Replies

  • Ruan
    Options
    Offline / Send Message
    And we're live with the second release! Updated the thread on CryDev: http://www.crydev.net/viewtopic.php?f=315&t=94539

    You can download the latest build here: https://github.com/returnString/CryEngine.RC/downloads

    Summarised (and apologies once again for the 'art', but this is fun!):

    range.png

    Usage Guide
    • Extract the contents of the .zip file to your CryENGINE/Tools folder.
    • Run CryEngine.RC.Pipeline.exe to start the application.
    • Save your FBX files to CryENGINE/Assets, using the same hierarchy that you'd like them to use in Game/Objects (e.g., C:\Dev\CryENGINE3\Assets\Props\test.fbx will be saved as C:\Dev\CryENGINE3\Game\Objects\Props\test.cgf)
    • To export individual files, right click the file in the list, and then select "Export". You can do the same for specific folders to avoid full rebuilds.

    Features
    • UV maps
    • Smoothing groups
    • Vertex colours
    • Multi-materials
    • Basic physicalisation

    Limitations
    • Only handles a single mesh
    • The mesh must be at the root of the scene hierarchy
    • Some 3D applications use different unit scales; use the scale factor to work around this
    • Some applications may require a material to exist in order to export material IDs for submaterials

    Licence
    Both the source code and builds for CryEngine.RC and ManagedFBX are available for use under the following terms:
    • The software is only available for non-commercial entities, and may not be relicensed.
    • You must make changes available to the public.
    • In the rare event that we meet, you owe me a pint.
  • cptSwing
    Options
    Offline / Send Message
    cptSwing polycounter lvl 11
    Works well on some meshes, and not at all on others, though I blame the finicky dae conversion and not your tool.
    Half of my meshes don't convert because of vertices allegedly having the same coordinates - and outside of actually deleting parts of the geometry, or slapping on a ridiculously distorting noise modifier, nothing works.
    In Max, no STL errors show up, Xview is fine, no overlapping UVs, nothing to weld within sensible ranges, and there's usually nothing (wrong) at the coordinates specified within the export log.. sigh :)
  • Ruan
    Options
    Offline / Send Message
    Yeah, it's hard for me to tell what's caused by the RC/engine and what's caused by the converter :/

    Unless I find some obvious flaws in my application, I'll discuss this with the tools team and see if anything's up.

    Also, 0.2.1 is out which has a fix for UV coords being in layers other than 0. Probably not relevant for most users though :)
  • cptSwing
    Options
    Offline / Send Message
    cptSwing polycounter lvl 11
    Looks to me like the classic mesh errors the CryTools would spit out as well. Since I'm using max 2013 though, I can't test that ;-)
  • cptSwing
    Options
    Offline / Send Message
    cptSwing polycounter lvl 11
    Hm, a little heads-up: Using Max 2012 and the Cry exporter, getting the disputed meshes into engine works flawlessly.. so maybe the collada part of your tool is doing strange things? :)
  • Ruan
    Options
    Offline / Send Message
    Hey, thanks for confirming that! :) I've been meaning to get around to installing 2012 but I've been caught up in other things. This is going to be some fun debugging, I'm sure...

    One query; is this with pre-triangulated meshes, or meshes with quads/ngons? I'll be the first to admit that my code is possibly not working entirely as expected but to the best of my knowledge I just list mesh data exactly as provided. There is, however, an exception to this: I do perform a rough triangulation pass using the FBX SDK if a mesh isn't already triangulated. I would assume this uses a similar algorithm to whatever CryMaxExport does to handle quads, but it's worth me investigating.
  • cptSwing
    Options
    Offline / Send Message
    cptSwing polycounter lvl 11
    Hmm, I can't give you a definitive answer on the triangulation question, but I usually have an Edit Mesh modifier sitting on top of my objects, and I also usually have "Triangulate" checked on when exporting to an FBX.

    The files were the exact same FBX models that I tried using with your transmogrifier, so hmm. Could send you a mesh tonight, if it'd help.
  • Ruan
    Options
    Offline / Send Message
    Yeah, if you have a reliable test case for the issue, feel free to send it over and I'll take a look at it :)
  • Ruan
    Options
    Offline / Send Message
    I've probably fixed the issue; 0.2.2 is available now and in theory handles all vertices just fine: https://github.com/returnString/CryEngine.RC/downloads
  • choco
    Options
    Offline / Send Message
    choco polycounter lvl 10
    For those who are still wondering if edited vertex normals alters the shading in CE3. I did some tests on some bushes and it does work like a charm. I'm using maya and MayaCE3 plugin tho.
  • |MM|
    Options
    Offline / Send Message
    @choco

    We got that figured out, they're exported through FBX exporter, I installed max 2012
    and they're exported too.

    If they make any difference to shading is a different thing though.
  • Computron
    Options
    Offline / Send Message
    Computron polycounter lvl 7
    For some reason my meshes normals are getting flipped when I use the exporter, I have to flip them before exporting. It is a rather large mesh, maybe that has something to do with it:

    PmIUj.jpg
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    Is it supporting different materials in Maya as well?
  • bugo
    Options
    Offline / Send Message
    bugo polycounter lvl 17
    I'm getting a msg "Failed to compile file: C:\cryengine_3.4\Assets\Props\arch01.fbx"
    Is there a way to see what's going on with this mesh? Is it because I have 5 sided faces?

    edit: yes it was, I made it work not having 5 sided faces. Would be awesome if you get that info on a log or something, or if automatically triangulate it for you.
  • Ruan
    Options
    Offline / Send Message
    Hi guys, sorry about the lack of responses, my email subscription to this thread seemingly died :/

    The normals bug is very strange. I think there have been cases before where symmetry modifiers have screwed up normals even using the official plugins, but I'll look into this.

    With regards to materials: I grab the material IDs from the FBX format which is, at least in theory, universal. If material IDs aren't working on a mesh, please attach it so I can take a look at it.

    I already perform triangulation on meshes, seems odd that it failed. If you run the Frontend tool rather than Pipeline, you'll get the full RC log. Pipeline is very much a WIP :)
  • AdanR
    Options
    Offline / Send Message
    AdanR polycounter lvl 12
    wow works nice! thanks Ruan!, moving to modo workflow lol!
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Sorry if this is a bit off topic, but this seems to be the best place to ask.

    Is there any official word regarding custom vertex normals support with the regular Max exporter ? The current Crydev tools and editor (3.4.0) still don't support them (shading wise) even tho they do seem to export fine as pointed out earlier.

    I think I remember reading that this functionality is available to the Crytech team internally - it's a bummer that it is not featured in the public tool! Its a big deal breaker when it comes to efficient modular modeling and texturing ...
  • Torch
    Options
    Offline / Send Message
    Torch interpolator
    Not slating the engine as it seems to yield some really superior results, but I would've thought it would have some kinda FBX support by now, considering how easy it is to get an FBX out of a 3D app into UDK. Would be cool to see it in the next update :D
  • cptSwing
    Options
    Offline / Send Message
    cptSwing polycounter lvl 11
  • Eric Williams
    Options
    Offline / Send Message
    Eric Williams polycounter lvl 16
    hopefully no one is offended by this bump.

    Does anyone know of a workflow to use with Ruan's tools using Modo? I've got the basics down and can get a model in but I have no idea the naming convention or steps to take to get multiple materials in with one object.

    edit - nevermind, I think I've figured it out.
  • e-freak
    Options
    Offline / Send Message
    you mind posting your solution for future reference? :)
  • Wahlgren
    Options
    Offline / Send Message
    Wahlgren polycounter lvl 17
    Dude you might have saved my ass. The cryexporter doesnt work at all for me so I'll give this a go. :)
  • Eric Williams
    Options
    Offline / Send Message
    Eric Williams polycounter lvl 16
    Can anyone get this to work in 3.5.3 on a consistent basis I keep getting a "failed to compile" error ? I've been using Modo and it works pretty well in 3.4.5, super happy I don't have to jump through other software but I'm having a lot of trouble in 3.5.3. Also, it tries to export to the old "Game" directory, and I don't see a way to fix that in the config, but that's less of an annoyance than the "failed to compile" error.

    Thanks for any help
  • Eric Williams
    Options
    Offline / Send Message
    Eric Williams polycounter lvl 16
    e-freak wrote: »
    you mind posting your solution for future reference? :)


    Oh, sorry, e-freak, it's pretty basic. Any materials you assign in Modo they go with the fbx file happily, no real naming convention as far as I can tell it just doesn't care. The RC.Pipeline tool converts the model no problem. I did notice it seems to hits a max poly count if you don't triangulate first, forget what it is at the moment. And there maybe a 1 UV layout limit as well, although I'm still learning.

    If I understand correctly, you can have a lot of overlapping UVs and if they are assigned different material so that each material is assigned to non overlapping UVs set(if that makes sense) then when you get into cryengine setting up a multi material and then putting different textures in each separate material in the multimaterial should work out pretty good and possibly kind of unseparate the UVs. I read this somewhere, haven't tried it yet.

    When you get into cryengine, I'm a noob, I was under the impression that cryengine would somehow show me that there were multiple materials assigned to my model. It doesn't, they are there though. Create a new multimaterial and add materials under that.

    Ok so that's a lot of confusing jibberish, let me break it down. I intend to do a video on it when I get something decent put together.


    cryengine version 3.4.5
    1 create model in Modo
    2 UV model (with only one UV map, and all geometry must be uv'd)
    3 create as many materials as you want named however you want
    4 export to fbx 2010 (works with all of them but that's what I'm using)
    5 I export/save directly to the "asset" folder so that the RC.Pipeline.exe can see my file
    6 run RC.Pipeline (should take less than 5 seconds, if nothing then delete all UVs but one and pretriangulate in step 4 and/or reduce polycount)
    7 in cryengine your folder should be listed under the entity section, drop it into the scene
    8 open materials and add a new multi material
    9 right click on multi material and set number of sub materials to match the number of materials you created for your model in modo
    10 (a bit of testing) go material to material and change the diffuse color to figure out what belongs to what..or use whatever method you want to see the difference.
    11 add textures to the correct material and should be done :)
    12 After all this set up you should be able to refine your model, export to fbx, then export to cry with RC.Pipeline.exe and the engine should happily update the new model automatically.

    To get textures in, use the crytiff exporter in photoshop. Different topic, wasn't as hard to figure out so I'll leave it at that for now.

    Also, I prefer to keep my main model in the lxo format, but there's probably no reason anyone that wants can just save to fbx and work in that format, possibly save a couple steps.

    note: if you are using 3.5.3 the RC.pipeline.exe doesn't seem to work for me most of the time. Workaround is I still have my 3.4.5 directory and I run RC.Frontend.exe from the tools folder in that version and select the asset I'm working on in the asset folder, select the 3.4.5 engine folder then when I hit export I navigate to the newer 3.5.3 gameSDK directory where the object is supposed to be saved for the new engine. Leave the exporter open and just hit export after I export the fbx from modo.

    If there are issues in engine try reloading the script for the model or under tools reload geometry or click file and go down to the bottom and click the recent worked on file to reload (clicking open then choosing the file you're working on does nothing, think the engine knows better for one button but not the other)

    wow, I typed a lot >.< Hope that helps someone :)
  • e-freak
    Options
    Offline / Send Message
    thanks for putting this down :)

    regarding the 3.5.3 make sure you have the RC update: http://www.crydev.net/viewtopic.php?f=326&t=114211
  • Eric Williams
    Options
    Offline / Send Message
    Eric Williams polycounter lvl 16
    I did have the new crycompressorRC.dll. That got the tiff image importing and the environment map creation working again. But didn't help with the fbx conversion. I'm gonna try a little more testing, see if I can figure it out.

    taking notes

    format
    cryengine rc version compiler, modo fbx version, modo preferences fbx version dropdown for 2013, number of errors or warnings. I'm testing on a non manifold object so there's always a couple warnings at the moment.

    kinda weird, in preferences for fbx 2013 modo will save several other versions. so save as 2013 and then the preference drop down will force that to save the file as 2010..11..12..13. hmm. anything not saved with 2013 won't need the number that would follow 13.

    all loaded into version 3.5.3 of cryengine, some versions of the fbx export weird smoothing that I'm not sure how to deal with right now. Smoothing groups??

    so it will look like this:

    345_13_10_1w working
    345_13_11_1w working
    345_13_12_1w working
    345_13_13_1w working

    345_10_1w working

    353_13_10_? not working. converter doesn't finish, I see dae file flash for an instant in the target folder. Last converter message..."Loaded Cryphysics.dll"
    353_13_11_? not working. same as previous
    353_13_12_? not working. same as previous
    353_13_13_? not working. Same as previous

    353_10 not working. same as previous

    Didn't test the last one 2006, but I'm running out of testing steam and I suspect it's going to be the same results. I've tried naming the material to the "nophysics" material, can't remember the long name. I tried a proper naming convention when I was trying to get this all working and nothing seemed to export right, I don't know if I'm doing it wrong or if modo isn't capable. I'm pretty sure, since they are named wrong, that the fbx converter is just renaming the materials to 01, 02, 03 etc. Anyway, Cryphysics.dll is blocking my attempts to export with the 353 rc.
  • Eric Williams
    Options
    Offline / Send Message
    Eric Williams polycounter lvl 16
    Small update, apparently dragging and dropping your fbx onto the rc.exe will convert the file and put the cgf into the folder next to where the fbx was dragged from.

    So, I right click on the rc.exe in 3.5.3 and create a shortcut put that into the folder with the objects for my cryengine scene and just keep the fbx in the same folder. Sort by date modified, whenever I save my fbx out of Modo it has that at the top of the list, drag that to the rc.exe, file converted and engine auto updates.

    I was told that this bypasses a lot of errors that Ruan's converter would tell you about, so this could potentially be unsafe and you could end up with an object that doesn't work and you don't know why. So, prolly keep frontend.exe around just to be safe.
2
Sign In or Register to comment.