-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from NeilJed/1.6
1.6
- Loading branch information
Showing
11 changed files
with
181 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# 3D Studio Max SMD export plug-in | ||
|
||
## Changelog | ||
|
||
### 1.6 | ||
* Fixed issues with GUI layout. | ||
* Added tool-tip help for export options. | ||
* Added feature to use material name if no diffuse texture is specified. | ||
* Added feature to not export mesh for objects flagged un-renderable. | ||
* Added export keyframes only and bookend feature. | ||
* Re-wrote MaxScript interface. | ||
* Added support for Max 2011 & 2012 | ||
|
||
### 1.5 | ||
* Added support for editable spline objects per request. | ||
* Added support for Max 2010 | ||
|
||
### 1.4 | ||
* Added better support for exporting explicitly defined vertex normals. | ||
* Added alternate method for exporting smoothing normals in case of failure. | ||
|
||
### 1.3 | ||
* Fixed issue with material type detection on non-English versions of Max. | ||
* Fixed small issue with vertex weight export. | ||
|
||
### 1.2 | ||
* Fixed issue with batch mode always exporting SMD sequences backwards. | ||
* Fixed small issue with vertex weight export. | ||
* Added support for Max 2009. | ||
|
||
### 1.1 | ||
* Added HL1 format export function | ||
* Added batch export function for Maxscript | ||
* Resolved issue where exporting only part of a chain of bones without exporting the root node would fail. | ||
|
||
### 1.0 | ||
* Fixed bug where mesh materials with out a BITMAP type diffuse texture would cause the exporter to crash. | ||
* Removed logging to text file option and replaced with combined progress/log dialog. | ||
* Ported to 64-bit version of Max 9. | ||
|
||
### 0.5b | ||
* Fixed error were normals were returned as -1.#IND000 instead of sane values. I'm not 100% sure if this is user or a 3DXI error, however this seems to fix it. | ||
* Added option to log errors/warnings to a log file. | ||
|
||
### 0.4b | ||
* Fixed bones that have been mirrroed (no right hand rule) being exported incorrectly. **TIP:** If you mirror bones, reset their transforms before you use them! | ||
|
||
### 0.3b | ||
* Fixed sub-materials of Sub/Multi-Object material types not being exported correctly. | ||
* Added trap for invalid face material ID's. | ||
|
||
### 0.2b | ||
* Fixed bug where floating point numbers were output in users regional locale format. | ||
* Fixed hidden bones and meshes being exported. Now, in normal "Export" modeonly what is visible is exported. In "Export Selected" mode, what is selected is exported even if it is hidden. | ||
* Fixed bug where a bone who's parent is not to be exported had it's position and rotation misplaced. | ||
* Revised mesh output so that if a vertex's weights includes a bone that isn'tto be exported, all weights are collapsed and assigned to the meshes default bone. This stops invalid vertex weights. | ||
* Stopped exporter over-writing file with nothing if Cancel button pressed. | ||
|
||
### 0.1b | ||
* Initial release |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
-- // Example maxscript to use the batch functions of the v1.6 3DS Max SMD Exporter | ||
-- // | ||
-- // If you wish to invoke the SMD exporter via Maxscript fot Batch type operations you can | ||
-- // use the following example script as a basis. | ||
-- // | ||
-- // Invoke the SMD exporter with the WBSMDExport() function and the following parameters. | ||
-- // Note that you must include all parameters with your function call. | ||
-- // | ||
-- // WBSMDExport [strFilename] [bExportSelected] [nSMDType] [bHL1Format] [nStartFrame] [nEndFrame] [bReverseAnim] [bKeyFramesOnly] [bBookendKeys] [bSkipNonRenderable] | ||
-- // | ||
-- // Paramters: | ||
-- // | ||
-- // [strFilename] should be a string. The path and filename you want to export e.g "c:\myfile\reference.smd" | ||
-- // [bExportSelected] should be true or false. Set this if you want to export only the selected objects. | ||
-- // [nSMDType] should be a number. Set for the type of SMD file you want to create. 0 = Reference, 1 = Sequence. | ||
-- // [bHL1Format] should be true or false. Set if you want to use HL1 format SMD files. | ||
-- // [nStartFrame] should be a number. The start frame of your animation sequence. | ||
-- // [nEndFrame] should be a number. The end frame of your animation squence. | ||
-- // [bReverseAnim] should be true or false. Use to export your animation sequence in reverse. | ||
-- // [bKeyFramesOnly] should be true or false. Export only the keyframes for your animation. | ||
-- // [bBookendKeys] should be true or false. When using only keyframes, always create keys on the first and last frame. | ||
-- // [bSkipNonRenderable] should be true or false. Set to skip exporting meshes for any items marked un-renderable. | ||
-- // | ||
-- // Result codes: | ||
-- // Results are always returned as type String. | ||
-- // | ||
-- // "OK" - Export suceeded without problems. | ||
-- // "WARNING" - Export suceeded but warnings were raised. | ||
-- // "ERROR" - Export failed and an exception was thrown. | ||
-- // | ||
-- // Examples: | ||
-- // Show all export parameters. | ||
|
||
WBSMDExport() | ||
|
||
-- // Show plug-in version number | ||
|
||
WBSMDExportVersion() | ||
WBSMDExportVersionNum() | ||
|
||
-- // Export a reference SMD | ||
|
||
WBSMDExport "c:\myfiles\reference.smd" false 0 false 0 0 false false false false | ||
|
||
-- // Export a sequence SMD | ||
|
||
WBSMDExport "c:\myfiles\reference.smd" false 1 false 0 30 false false false false | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,73 @@ | ||
# 3DSMaxSMDExporter | ||
A plug-in for 3D Studio Max for exporting SMD format files, popular with Half-Life and Source based games. | ||
# 3D Studio Max SMD export plug-in | ||
A plug-in for Autodesk 3D Studio Max for exporting SMD format files, popular with Half-Life and Source based games. | ||
|
||
## Overview | ||
This plug-in allows 3D Studio Max to export SMD format files used primarily in Half-Life and Source engine based games. However the format has been adopted as an intermediate format by various other 3D games and tools. It can create reference and sequence SMD files for use when compiling models along with extra features to easy creation workflow. | ||
|
||
## Features | ||
* Supports Standard and Mult/Sub-Object material types. | ||
* Supports Editable Mesh and Editable Poly geometry. | ||
* Supports Skin and Physique modifiers. | ||
* Supports Biped bone export. | ||
* Supports use of Dummy and Point helpers as bones (Skin Modifier Only) | ||
* Uses material name when diffuse texture is not assigned. | ||
* Optional exporting of an animation sub-range. | ||
* Optional reversing of animation on export. | ||
* Optional exporting of keyframes only. | ||
* Optional skipping of meshes marked non-renderable. | ||
* Export in HL1 or HL2 SMD format. | ||
* Batch export mode via Maxscript. | ||
|
||
## Supported versions | ||
* 3DS Max 9 - 32/64bit | ||
* 3DS Max 2008 - 32/64bit | ||
* 3DS Max 2009 - 32/64bit | ||
* 3DS Max 2010 - 32/64bit | ||
* 3DS Max 2011 - 32/64bit | ||
* 3DS Max 2012 - 32/64bit | ||
|
||
## Installation | ||
32-bit versions of the plug-in are named `SMDExport.dle`, 64-bit versions `SMDExportx64.dle`. Copy the correct version for your edition of 3D Studio Max into your 3DS Max plug-ins folder and re-start. | ||
|
||
## Basic usage | ||
Once installed, using the *Export* option of the File menu you should find *Source SMD* as an option. You can use regular *Export* which will export everything visible in the scene or *Export Selected* to only export selected items. | ||
|
||
When exporting a reference SMD, frame 0 will be used as the reference pose. | ||
|
||
For sequence SMD's, by default it will export the entire animation range. If you only want a sub-range, select the start and end frame in the export options dialog box. You can also opt to have the animation exported backwards by ticking the reverse checkbox. | ||
|
||
For instructions of how to use batch mode, please check the included Maxscript sample. | ||
|
||
## Tips & tricks | ||
|
||
* Don't mirror bones using the *Tools->Mirror* method. Use *Animation->Bone Tools->Mirror*. If you don't use the later method your bone axies become flipped resulting in broken animation exports. You'll see a warning in the export window if any of your bones are mirrored incorrectly. | ||
|
||
* In addition to bones, each mesh also exports an extra "mesh bone" corresponding to the meshes own origin. These unused bones are stripped out by the model compiler and can be ignored. However, if you export a mesh that uses a Skin or Physique modifier and fail to unhide or select the bones it uses for weighting, every vertex weight for that mesh will be assiged to the mesh bone instead. | ||
|
||
* When using a Skin modifier, you can also use helper objects such as Dummy or Point as bones and weight vertices to them. This can be useful for mechanical animation such as guns where parts slide (or translate) via their bone rather than just a simple rotation. | ||
|
||
* In HL1 format only one vertex weight per bone is allowed. If more than one is assigned the exporter looks for the bone with the greatest influence and normalises it's weight to 1.0. | ||
|
||
## Known Issues | ||
|
||
* Some object types, such as nVidia collision hulls cause the exporter to crash. | ||
* On rare occasions, a mesh which has been merged from another may stall the exporter. | ||
|
||
## Legal | ||
|
||
### Author | ||
This software was created by and is © 2011 Neil "Jed" Jedrzejewski | ||
|
||
### License & Warranty | ||
|
||
The content owner grants a non-exclusive, perpetual, personal use license to view, download, display, and copy the content, subject to the following restrictions: | ||
|
||
1. The content is licensed for personal and non-profit use only, not commercial use. The content may not be used in any way whatsoever in which you charge money, collect fees, or receive any form of remuneration for commercial gain. The content may not be resold, relicensed, sub-licensed, rented, leased, or used in advertising. | ||
|
||
2. Title and ownership, and all rights now and in the future, of and for the content remain exclusively with the content owner. | ||
|
||
3. This software is provided 'as-is', without any express or implied warranty. | ||
|
||
4. The content owner will not be liable for any third party claims or incidental, consequential, or other damages arising out of this license or the use of the content. | ||
|
||
5. This notice must NOT be removed or altered from any distribution of this software. |