Tuesday, September 18, 2018

Noesis – Advanced Commands

On the surface, Noesis may appear to be a relatively simple and straightforward program. But it actually has a lot of hidden depth to it. Most of this depth comes in the form of special advanced commands for loading and exporting data files. You can view a complete list of all advanced commands by opening the "Export Media" window and clicking on the "Advanced commands" button. The "Export Media" window can be opened by going to "File" in the main toolbar, and then selecting either "Export" or "Export from Preview" from the dropdown menu.

For your convenience, I have compiled a list of advanced commands which are most likely to be relevant when using Noesis to view and export data files from FINAL FANTASY XI. Please note that some of these commands can only be invoked when loading a file, while others can only be invoked when exporting a file! In order to invoke a command when loading a file, you must first use Notepad to create a .noesis scene file which points to the model you want to load, and then open that scene file in Noesis instead of opening the actual file directly. I will explain how to create a .noesis scene file in another post.

I'm still not completely sure which commands can only be invoked on load, and which ones can only be invoked on export, but I will continue to experiment and update this post accordingly. For now, I will distinguish between commands which I know for certain can only be invoked on load or export by marking them with either a red "Load" tag or a blue "Export" tag, respectively. If a command is unmarked, that means either that command works on both load and export, or I am uncertain.



Generic Noesis Commands:

CommandPurpose
-rotate # # #transform all vertices by the given angles. (Order is X Y Z)
-scale #scale all vertices on the model, where # is the scale factor.
(There are many more generic commands than just these two, but so far these are the only ones that I've personally found to be useful when working with data files from FFXI.)



FF11 Model/Data:

CommandPurpose
-ff11blendhack <arg>sw render to determine alpha coverage, <arg>=min frac.Load
-ff11optimizegeoremove degenerates and redundant verts.Export
-ff11keepnameskeep map object names intact.Export
-ff11renderunrefrender unreferenced map geo at identity.Load
-ff11forcelightingforce lighting.
-ff11forcecullforce culling.
-ff11novertcolorno vertex colors.
-ff11noshinyno special assignment for shiny materials.
-ff11shiftvertalpha <arg>explicitly shift vert alpha <arg> bits.
-ff11shiftvertcolor <arg>explicitly shift vert color <arg> bits.
-ff11shiftcolor <arg>explicitly shift tex color <arg> bits.
-ff11shiftalpha <arg>explicitly shift tex alpha <arg> bits.



FF11 SQLE Model:

CommandPurpose
-ff11sqleanim load sqle animation as relative path.Load



Autodesk FBX:

CommandPurpose
-fbxnewexportexports current fbx format instead of legacy.Export
-fbxzupsets the scene axis to z up on export.Export
-fbxsmoothgroupsgenerate smoothgroups from vertex normals on export.Export
-fbxtexrelonlyonly set relative paths for texture filenames.
-fbxmultitakeexport a take for each anim sequence.Export
-fbxbsnonormalsdon't use blendshape normals.Export
-fbxbonestomeshtfderive mesh transforms from bones, and don't write bones.
-fbxpreservecpdoes not allow welding between controlpoints.
-fbxnooptimizedisables fbx geometry optimization pass.
-fbxnoesidecarenables .noefbx sidecar files to preserve extra data.
-fbxcanimtimeuse curve key times instead of clamped evaluator time.
-fbxmtlfrommeshnamecreate materials from mesh names.
-fbxunifybi unifies binormals on import. (0=no, 1=yes, 2=flipped)Load
-fbxrottanrotates tangent/binormals on import.
-fbxnotandisables reading/writing tangents for fbx.
-fbxnoextraframeavoids adding an extra frame for timing.
-fbxframecount overrides the fbx anim frame count.
-fbxframerate specifies the fbx framerate. (frames per second)
-fbxtexext appends given value to texture names on export.Export
-fbxscalehacktransform override for scale correction.
-fbxtritopoly tris to polys, is max degrees for combine.
-fbxtritopolyconctol is concavity tolerance.
-fbxcollapsecpcollapse controlpoints.
-fbxreducekeysreduce animation keys.
-fbxnonlinrotspecifies nearest snap for rotations.
-fbxnomeshhierarchyno separate udcommon mesh hierarchy.
-fbxnomeshbonesno bones generated from mesh nodes.



WaveFront OBJ:


CommandPurpose
-objmtlenables export of mtl file with the obj.Export



DDS:

CommandPurpose
-ddsati2nonormdon't derive+renormalize when decoding DXT ATI2/BC5.



That's all for now. Please comment below if you've found any other of the advanced commands for Noesis to be useful for working with FFXI's data files.