@@ -3,10 +3,56 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
3
3
(
4
4
origObjects = #()
5
5
currSetName = " "
6
- rootDummyName = " UnityFbxRootDummy"
6
+ rootDummyName = " UnityFbxExportSets"
7
+ unityFbxFilePathAttr = " "
8
+ unityFbxFileNameAttr = " "
9
+ unityAnimFileNameAttr = " "
10
+ unityAnimFilePathAttr = " "
11
+ isAnimFile = false
7
12
8
13
persistent global unityAskSetUnits
9
14
15
+ fn getOrCreateDummy name = (
16
+ unityDummy = getNodeByName (name)
17
+ if (unityDummy == undefined ) do (
18
+ unityDummy = Dummy()
19
+ unityDummy.name = name
20
+ unityDummy.boxsize = [1 ,1 ,1 ]
21
+ )
22
+ unityDummy -- return dummy
23
+ )
24
+
25
+ fn getOrCreateRootDummy = (
26
+ getOrCreateDummy rootDummyName
27
+ )
28
+
29
+ fn getOrCreateSettingsDummy name = (
30
+ unityDummy = getOrCreateDummy name
31
+
32
+ if not (isProperty unityDummy " modelFilePath" ) do (
33
+ unitySetData = attributes unityData
34
+ (
35
+ parameters main rollout: params
36
+ (
37
+ modelFilePath type: #string ui: filep default: " "
38
+ modelFileName type: #string ui: filen default: " "
39
+ animFilePath type: #string ui: afilep default: " "
40
+ animFileName type: #string ui: afilen default: " "
41
+ )
42
+ rollout params " Unity Export Parameters"
43
+ (
44
+ edittext filep " Model File Path:" text: modelFilePath readOnly: false labelOnTop: true
45
+ edittext filen " Model File Name:" text: modelFileName readOnly: false labelOnTop: true
46
+ edittext afilep " Animation File Path:" text: animFilePath readOnly: false labelOnTop: true
47
+ edittext afilen " Animation File Name:" text: animFileName readOnly: false labelOnTop: true
48
+ )
49
+ )
50
+ custAttributes.add unityDummy unitySetData
51
+ )
52
+
53
+ unityDummy -- return dummy
54
+ )
55
+
10
56
global afterImport
11
57
fn afterImport = (
12
58
unityFbxExportSet = #()
@@ -21,6 +67,21 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
21
67
)
22
68
)
23
69
selectionSets[currSetName] = unityFbxExportSet
70
+
71
+ -- check if dummy already exists in scene
72
+ unityDummy = getOrCreateSettingsDummy currSetName
73
+
74
+ if ((not isAnimFile) or unityDummy.unityData.modelFilePath == " " ) do (
75
+ unityDummy.unityData.modelFilePath = unityFbxFilePathAttr
76
+ )
77
+ if ((not isAnimFile) or unityDummy.unityData.modelFileName == " " ) do (
78
+ unityDummy.unityData.modelFileName = unityFbxFileNameAttr
79
+ )
80
+ unityDummy.unityData.animFilePath = unityAnimFilePathAttr
81
+ unityDummy.unityData.animFileName = unityAnimFileNameAttr
82
+
83
+ unityRootDummy = getOrCreateRootDummy()
84
+ unityDummy.parent = unityRootDummy
24
85
);
25
86
26
87
fn loadUnityFbxImportSettings = (
@@ -50,46 +111,6 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
50
111
undefined
51
112
)
52
113
53
- fn getOrCreateDummy name = (
54
- unityDummy = getNodeByName (name)
55
- if (unityDummy == undefined ) do (
56
- unityDummy = Dummy()
57
- unityDummy.name = name
58
- unityDummy.boxsize = [1 ,1 ,1 ]
59
- )
60
- unityDummy -- return dummy
61
- )
62
-
63
- fn getOrCreateRootDummy = (
64
- getOrCreateDummy rootDummyName
65
- )
66
-
67
- fn getOrCreateSettingsDummy name = (
68
- unityDummy = getOrCreateDummy name
69
-
70
- if not (isProperty unityDummy " modelFilePath" ) do (
71
- unitySetData = attributes unityData
72
- (
73
- parameters main rollout: params
74
- (
75
- modelFilePath type: #string ui: filep default: " "
76
- modelFileName type: #string ui: filen default: " "
77
- animFilePath type: #string ui: afilep default: " "
78
- animFileName type: #string ui: afilen default: " "
79
- )
80
- rollout params " Unity Export Parameters"
81
- (
82
- edittext filep " Model File Path:" text: modelFilePath readOnly: false labelOnTop: true
83
- edittext filen " Model File Name:" text: modelFileName readOnly: false labelOnTop: true
84
- edittext afilep " Animation File Path:" text: animFilePath readOnly: false labelOnTop: true
85
- edittext afilen " Animation File Name:" text: animFileName readOnly: false labelOnTop: true
86
- )
87
- )
88
- custAttributes.add unityDummy unitySetData
89
- )
90
- unityDummy -- return dummy
91
- )
92
-
93
114
-- Make sure the FbxImporter plugin is loaded
94
115
pluginManager.loadClass FbxImporter
95
116
@@ -119,17 +140,17 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
119
140
)
120
141
)
121
142
122
- local unityFbxFilePathAttr = " "
143
+ unityFbxFilePathAttr = " "
123
144
for fbxFileName in fbxFileNames do (
124
145
-- Get all objects in scene before importAction
125
146
origObjects = objects as array
126
147
127
148
unityFbxFilePathAttr = getFilenamePath fbxFileName
128
- local unityFbxFileNameAttr = filenameFromPath fbxFileName
129
- local unityFbxFileName = getFilenameFile fbxFileName
149
+ unityFbxFileNameAttr = filenameFromPath fbxFileName
150
+ unityFbxFileName = getFilenameFile fbxFileName
130
151
131
- local unityAnimFilePathAttr = unityFbxFilePathAttr
132
- local unityAnimFileNameAttr = unityFbxFileNameAttr
152
+ unityAnimFilePathAttr = unityFbxFilePathAttr
153
+ unityAnimFileNameAttr = unityFbxFileNameAttr
133
154
134
155
-- check if importing an animation file (contains @ symbol)
135
156
local isAnimFile = false
@@ -144,22 +165,6 @@ macroScript UnityImport category:"Unity" tooltip:"Import an FBX file from a Unit
144
165
145
166
importFile fbxFileName #noPrompt using: FBXIMP
146
167
147
- -- check if dummy already exists in scene
148
- currSetName = unityFbxFileName + " _UnityExportSet"
149
- unityDummy = getOrCreateSettingsDummy currSetName
150
-
151
- if ((not isAnimFile) or unityDummy.unityData.modelFilePath == " " ) do (
152
- unityDummy.unityData.modelFilePath = unityFbxFilePathAttr
153
- )
154
- if ((not isAnimFile) or unityDummy.unityData.modelFileName == " " ) do (
155
- unityDummy.unityData.modelFileName = unityFbxFileNameAttr
156
- )
157
- unityDummy.unityData.animFilePath = unityAnimFilePathAttr
158
- unityDummy.unityData.animFileName = unityAnimFileNameAttr
159
-
160
- unityRootDummy = getOrCreateRootDummy()
161
- unityDummy.parent = unityRootDummy
162
-
163
168
callbacks.removeScripts #postImport id: #unityPlugin
164
169
)
165
170
0 commit comments