1
# ##### BEGIN GPL LICENSE BLOCK #####
3
# This program is free software; you can redistribute it and/or
4
# modify it under the terms of the GNU General Public License
5
# as published by the Free Software Foundation; either version 2
6
# of the License, or (at your option) any later version.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software Foundation,
15
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
# ##### END GPL LICENSE BLOCK #####
21
###############################################################################
22
#234567890123456789012345678901234567890123456789012345678901234567890123456789
23
#--------1---------2---------3---------4---------5---------6---------7---------
26
# ##### BEGIN COPYRIGHT BLOCK #####
28
# initial script copyright (c)2011 Alexander Nussbaumer
30
# ##### END COPYRIGHT BLOCK #####
43
__README__.txt : this file
46
__init__.py : entry point for blender plugins
47
initialize and registers/unregisters plugin functions
50
ms3d_export.py : entry point for exporter
51
functions to bring Blender content in a correct way to MilkShape
53
� Blender -> MilkShape3D maintenance
55
ms3d_import.py : entry point for importer
56
functions to bring MilkShape content in a correct way to Blender
58
� MilkShape3D -> Blender maintenance
60
ms3d_spec.py : objects and structures that specified a MilkShape3D file
61
base functions to write/read its objects itself
62
� MilkShape maintenance
64
ms3d_utils.py : most of the strings used in the addon to have a central point for optional internationalization
65
functions that are used by importer and exporter
67
� Blender -> MilkShape3D maintenance
68
� MilkShape3D -> Blender maintenance
73
- does not import keyframes
76
- does only export the first existing material, if more than one material is used per mesh
77
- does only export the first existing UV texture coordinates, if more than one UV texture is used per mesh
78
- does not export bones
79
- does not export joints
80
- does not export keyframes
81
- does not export comments (will never be supported - blender doesn't have similar stuff)
85
- change internal data structure for more performance on searching vertex indices and double vertices
86
- add support for bones and joints in exporter
87
- add support for keyframes
93
mod: changed matrix handling, in account to matrix changes since blender rev.42816; for a while with side-by-side implementation by checking 'bpy.app.build_revision'
94
del: removed unused option for export FuturePinball animation script (i will make an extra addon future_pinball_tool collection)
96
changed: (0, 3, 6, "beta (2011-12-13 00:00)"),
97
mod: exporter use an other logic to reduces the total number of smooth groups
98
mod: correct "version" and "blender" in __init__.py
99
fix: division by zero in importer
100
mod: import armature bones (head-tail to tail-head + additional post process to connect for better auto IK handling)
101
add: import bones and joints with armature modifier
102
mod: changed mesh generation (take only used vertices, instead of take all vertices and delete deserted in an extra pass)
104
changed: (0, 3, 4, "beta (2011-12-09 00:00)"),
105
fix: exporter forgot to change changed vertex_ex handling in ms3d_exporter.py
106
add: importer adds ms3d_flags custom properties for some objects
107
fix: importer corrects the roll of blender bones
108
add: importer adds ms3d_comment custom properties for modelComment (to a blender empty), groupComments (to its blender meshes), materialComments (to its blender materials) and jointComments (to its blender bones)
109
add: importer adds raw data ms3d_ambient and ms3d_emissive custom properties to material, because blender does not have an exact similar color definition
110
fix: ms3d_spec, modelComment, only one comment is allowed and a modelComment does not have an index value
111
mod: droped most of DEBUG_... code
112
mod: class __init__(self, ...) default parameter handling
113
mod: droped some tuple constructions: replaced with regular expression "tuple[(].*[[](.*)[]].*[)]" with "(\1)"
115
changed: (0, 3, 3, "beta (2011-12-02 00:00)")
116
add: importer adds additionally smoothingGroups as vertex_groups "ms3d_smoothingGroup{1...32}"
117
fix: export smoothingGroups start index to 1
118
mod: some blender like modifications ('ENUM' instead "ENUM" on enum values)
119
mod: some pep8 like modifications (lay-out)
120
mod: some pep8 like modifications (moved import in the right order)
121
mod: some pep8 like modifications ("foo(arg, value = 0)" to "foo(arg, value=0)")
122
mod: some pep8 like modifications (drop "if (sequence) and (len(sequence) > 0):..." to "if (sequence):...")
123
mod: bit more specific exception blocks
126
changed: (0, 3, 3, "beta (2011-12-01 00:00)")
127
mod: if "name" in somedict: result = somedict["name"] to result = somedict.get("name") if result is not None: (comment by campbellbarton)
128
mod: "tracker_url": "http://projects.blender.org/tracker/index.php?func=detail&aid=29404"
131
changed: (0, 3, 3, "beta (2011-11-29 00:00)")
132
mod: reuse existing data (now optional)
133
fix: reuse existing data (now ignores data if library is not none)
134
add: import process adds custom_properties with raw data (naming and some others, if expecting lost in translation)
137
changed: (0, 3, 2, "beta (2011-11-27 00:00)")
138
mod: mered ms3d_base.py to ms3d_utils.py (and droped ms3d_base.py)
139
mod: moved exclusive importer stuff to ms3d_import.py (renamed BlenderFromMs3d... to ...)
140
mod: moved exclusive exporter stuff to ms3d_export.py (renamed Ms3dFromBlender... to ...)
141
fix: import object namings (keep track possible name collisions of ms3d and blender objects on non empty blender scenes - may have same names, but different content)
142
add: import to group option
144
changed: (0, 3, 1, "beta (2011-11-25 00:00)")
145
dev: import bones (not finished yet)
146
fix: import a material only once, if it is used many times
147
fix: export materials (all meshes got the same material)
148
fix: exception in verbose mode (on older ms3d versions with no extended datablocks)
150
changed: (0, 3, 0, "beta 3b (2011-11-19 00:00)").
151
mod: exception raise to pass the exception to the GUI
152
fix: exception if mesh has no material
153
add: import diffuse / alpha texture file to material (to material and uv texture)
154
add: export diffuse / alpha texture file name from material (or diffuse from uv texture, if material does not have one)
155
mod: metric setup on import (bigger clip end value)
157
changed: (0, 2, 3, "beta_2a (2011-11-15 00:00)").
158
add: viewport adjustment for import to metric
159
mod: import / export scale; (reported by AtmanActive, Sun Nov 13, 2011 9:41 pm)
160
fix: layer handling; bug (reported by AtmanActive, Sun Nov 13, 2011 9:41 pm)
161
fix: all faces/vertices are now selected again after import
163
changed: (0, 2, 201111112130, "beta_2").
164
add: export smoothing groups (from linked faces)
165
add: import smoothing groups (as linked faces)
166
add: import groups (as meshes)
167
fix: export ms3d_triangle_t.groupIndex
168
add: mark optional part if not available (all value to "None")
169
add: draw() for option makeup
172
changed: (0, 1, 201111011600).
175
installation instruction:
176
- copy the "io_ms3d" folder to <Blender>/2.60/scripts/addons
178
- File | User Preferences | Addons | Import-Export
179
- enable "Import-Export: MilkShape3D MS3D format (.ms3d)"
181
# To support reload properly, try to access a package var, if it's there, reload everything
182
if ("bpy" in locals()):
184
#if "ms3d_export" in locals():
185
# imp.reload(ms3d_export)
186
#if "ms3d_import" in locals():
187
# imp.reload(ms3d_import)
188
#if "ms3d_spec" in locals():
189
# imp.reload(ms3d_spec)
190
#if "ms3d_utils" in locals():
191
# imp.reload(ms3d_utils)
195
#from . import ms3d_export
196
#from . import ms3d_import
197
#from . import ms3d_spec
198
#from . import ms3d_utils