|
|
« Reply #30 on: June 05, 2010, 05:01:12 PM » |
|
Since Captain Falcon's dae didn't work, I tried Ike's....and the same thing happened. Both of them show up like this: Is it importing as an Autodesk DAE or a Codella one? Thats important. Autodesk. My 3DS max didn't have Colleda, so I downloaded Opencolleda or something like that but when I try importing the .dae using that nothing happens.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #31 on: June 05, 2010, 05:24:26 PM » |
|
Since Captain Falcon's dae didn't work, I tried Ike's....and the same thing happened. Both of them show up like this: Is it importing as an Autodesk DAE or a Codella one? Thats important. Autodesk. My 3DS max didn't have Colleda, so I downloaded Opencolleda or something like that but when I try importing the .dae using that nothing happens. Well, you cant import as autodesk or THAT happens. This is the plugin that I used that works: http://update.multiverse.net/wiki/index.php/Installing_the_3ds_Max_COLLADA_PluginNow, will someone help me with MY problem? PLEASE?
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #32 on: June 05, 2010, 10:27:39 PM » |
|
Sorry, I haven't been around lately. spent alot of time trying to edit marth's Cape.. but sadly no good even with the Collada trick, the cape still gets badly deformed.. can't figure it out. wasted the entire day, just trying to get the cape sort of decent for my shinobu mod... anyways, I've heard about a few bugs, and even experienced alot problems myself. all I can say, is this method isn't "Full Proof" and likely won't be. unless brawlbox is better devloped to suit our 3d modding needs. though it's an effective trick to help edit certain static meshes, such as face, and the chest... probably the arms but some objects just don't seem to work.. and I've spent all day trying to come to a resolve... no luck. also there seems to be a HUGE issue with Collada Importers.. AiS was made off of the Free ColladaMax plugins.. some people have different plugins which do some funny stuff if so try this updated script, it'll fix your AIS scene and rescale it properly. fn readBEshort fstream = ( short = readshort fstream #unsigned short = bit.swapBytes short 1 2 return short ) fn readBElong fstream = ( long = readlong fstream long = bit.swapBytes long 1 4 long = bit.swapBytes long 2 3 return long ) fn ReadBEfloat fstream = ( return floatSwap2(readfloat fstream) ) fn floatSwap2 f = ( i = bit.floatAsInt f h = bit.intashex i while h.count < 8 do h = "0" + h s = (substring h 7 2) + (substring h 5 2) + (substring h 3 2) + (substring h 1 2) bit.intAsFloat (bit.hexasint s) )
rollout DDV "Vertex Modding Patcher" width:320 height:270 ( button btn1 "Import Verts" pos:[8,16] width:144 height:40 button btn2 "Create Patch" pos:[8,112] width:144 height:40 button btn3 "Patch Model" pos:[8,160] width:144 height:40 groupBox grp1 "Description" pos:[160,8] width:143 height:48 label lbl1 "Imports a RAW VertexSet from BrawlBox." pos:[169,21] width:128 height:30 groupBox grp2 "Description" pos:[160,152] width:143 height:48 label lbl2 "Patches finished model, for use with DDV" pos:[169,165] width:128 height:30 groupBox grp3 "Description" pos:[160,104] width:143 height:48 label lbl3 "Creates a Patch File from the RAW and Imported File" pos:[169,117] width:131 height:30 label lbl4 "-Mario_Kart64n, (June3, 2010)" pos:[164,253] width:156 height:18 button btn4 "Fix AiS Import" pos:[8,208] width:144 height:40 groupBox grp5 "Description" pos:[160,200] width:143 height:48 label lbl5 "Removes Collada Lib From Imported mesh" pos:[169,213] width:128 height:30 checkbox chk1 "Checkbox" pos:[10,250] width:14 height:13 label lbl7 "Max2010" pos:[27,249] width:45 height:15 button btn5 "Export Verts" pos:[8,64] width:144 height:40 checkbox chk2 "Checkbox" pos:[159,68] width:14 height:13 enabled:false checked:false label lbl8 "Save As Seperate File" pos:[176,67] width:119 height:15 checkbox chk3 "Checkbox" pos:[159,84] width:14 height:13 enabled:false checked:false label lbl9 "Save Changes to MDL0" pos:[176,83] width:119 height:15
on btn1 pressed do( fsource = GetOpenFileName \ caption:"Brawl Vert Import" types: \ "All files (*.*)|*.*|" f= fopen fsource "rb" fpath= getFilenamePath fsource fname = getFilenameFile fsource
vertArray=#() uvwArray=#() faceArray=#()
fSize=readBElong f mdlOffset=readBElong f dataOffset=readBElong f strOffset=readBElong f vertID=readBElong f vUkn1=readBElong f --flag? is XYZ? dataType=readBElong f entryStride=readBEshort f numVertices=readBEshort f eMinX=readBEfloat f eMinY=readBEfloat f eMinZ=readBEfloat f eMaxX=readBEfloat f eMaxY=readBEfloat f eMaxZ=readBEfloat f pad=readBElong f pad=readBElong f
for x = 1 to numVertices do( vX=readBEfloat f vY=readBEfloat f vZ=readBEfloat f append vertArray[vX,vY,vZ] append uvwArray[0,0,0] )
-- fclose f -- fsource = GetOpenFileName \ -- caption:"Brawl Polygon Import" types: \ -- "All files (*.*)|*.*|" -- f= fopen fsource "rb" -- -- fSize=readBElong f -- mdlOffset=readBElong f -- nodeID=readBElong f -- pfUkn1=readBElong f
-- elementFlag=readBElong f -- pfUkn2=readBElong f --count for weird data -- defSize=readBElong f -- defFlags=readBElong f
-- defOffset=readBElong f -- datalen1=readBElong f -- datalen2=readBElong f -- dataOffset=readBElong f
-- pfUkn3=readBElong f -- pfUkn4=readBElong f -- strOffset=readBElong f -- itmOffset=readBElong f
-- pfUkn5=readBElong f -- numFaces=readBElong f -- vertSet=readBEshort f -- normSet=readBEshort f
-- partXOffset=readBEshort f --???
-- if vertID!=vertSet then( -- MessageBox( -- "WARRNING!!!" +"\n"+ -- "Incorrect Index Buffer" +"\n"+ -- "-Sorry (mariokart64n)") -- )else( -- fseek pf 0x111 #seek_cur -- for x = 1 to pfUkn2 do ( -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned -- ) -- ) -- -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned
-- ukn=readBEshort f -- ukn=readbyte f #unsigned -- ukn=readBEshort f
-- ukn=readBEshort f -- ukn=readbyte f #unsigned -- ukn=readbyte f #unsigned
-- ukn=readBEshort f
-- end of file is a loop of data -- 27bytes long per loop -- msh = mesh vertices:vertArray faces:faceArray --build mesh msh.numTVerts = vertArray.count msh.name=fname --msh.rotation = quat -0.5 0.5 -0.5 0.5 --msh.rotation = quat 0.5 0.5 0.5 0.5 --msh.scale = [0.3937008,0.3937008,0.3937008] buildTVfaces msh -- modPanel.setCurrentObject $Object01.baseObject -- subobjectLevel = 1 -- rotate $Object01.verts[#{1..580}] (quat 0.707107 0 0 0.707107) -- subobjectLevel = 0 -- for j = 1 to UV_array.count do setTVert msh j UV_array[j] -- for j = 1 to faceArray.count do setTface msh j faceArray[j] -- for j = 1 to Normal_array.count do setNormal msh j Normal_array[j]
messageBox "Done !" gc() fclose f )
on btn2 pressed do( fsource = GetOpenFileName \ caption:"Brawl Vert Import" types: \ "All files (*.*)|*.*|" f= fopen fsource "rb" fpath= getFilenamePath fsource fname = getFilenameFile fsource
vertArray=#() uvwArray=#() faceArray=#()
fSize=readBElong f mdlOffset=readBElong f dataOffset=readBElong f strOffset=readBElong f vertID=readBElong f vUkn1=readBElong f --flag? is XYZ? dataType=readBElong f entryStride=readBEshort f numVertices=readBEshort f eMinX=readBEfloat f eMinY=readBEfloat f eMinZ=readBEfloat f eMaxX=readBEfloat f eMaxY=readBEfloat f eMaxZ=readBEfloat f pad=readBElong f pad=readBElong f
for x = 1 to numVertices do( vX=readBEfloat f vY=readBEfloat f vZ=readBEfloat f append vertArray[vX,vY,vZ] append uvwArray[0,0,0] )
obj=getCurrentSelection() obj.pos = [0,0,0] obj.rotation = quat 0 0 0 0 max modify mode addModifier obj (edit_poly()) subobjectLevel = 1 -- modPanel.setCurrentObject obj.modifiers[#Edit_Poly] diffArray=#() directionArray=#() for x = 1 to numVertices do( $.modifiers[#Edit_Poly].SetSelection #Vertex #{} $.modifiers[#Edit_Poly].Select #Vertex #{x} vert=$.modifiers[#Edit_Poly].GetVertex x -- $.modifiers[#Edit_Poly].SetOperation #Transform
mX=(vertArray[x][1])-(vert[1]) mY=(vertArray[x][2])-(vert[2]) mZ=(vertArray[x][3])-(vert[3])
append diffArray[mX,mY,mZ] -- $.modifiers[#Edit_Poly].Commit () -- $.modifiers[#Edit_Poly].SetSelection #Vertex #{} ) -- subobjectLevel = 0 -- modPanel.setCurrentObject obj.modifiers[#Edit_Poly] deleteModifier obj 1
createFile (fpath+fname+"_patch.pta") s = fopen (fpath+fname+"_patch.pta") "ab" vcount=writelong s numVertices for x = 1 to numVertices do( write=writefloat s (diffArray[x][1]) write=writefloat s (diffArray[x][2]) write=writefloat s (diffArray[x][3]) write=writelong s 0x0 ) messageBox ("Patch Created !" +"\n"+ "\n"+ "File Saved To:" +"\n"+ (fpath+fname+"_patch.pta") )
gc() fclose s fclose f )
on btn3 pressed do( fsource = GetOpenFileName \ caption:"Brawl Vert Patcher" types: \ "Patch(*pta)|*.pta|All files (*.*)|*.*|" f= fopen fsource "rb" fpath= getFilenamePath fsource
vertArray=#() vcount=readlong f #unsigned for x = 1 to vcount do( vX=readfloat f vY=readfloat f vZ=readfloat f dmy=readshort f #unsigned side=readshort f #unsigned append vertArray[vX,vY,vZ,side] )
obj=getCurrentSelection() obj.pos = [0,0,0] obj.rotation = quat 0 0 0 0 max modify mode addModifier obj (edit_poly()) subobjectLevel = 1 --modPanel.setCurrentObject obj.modifiers[#Edit_Poly] for x = 1 to vcount do( $.modifiers[#Edit_Poly].SetSelection #Vertex #{} $.modifiers[#Edit_Poly].Select #Vertex #{x} vert=$.modifiers[#Edit_Poly].GetVertex x $.modifiers[#Edit_Poly].SetOperation #Transform mX=(vertArray[x][1]) mY=(vertArray[x][2]) mZ=(vertArray[x][3]) $.modifiers[#Edit_Poly].MoveSelection [mX,mY,mZ] $.modifiers[#Edit_Poly].Commit () $.modifiers[#Edit_Poly].SetSelection #Vertex #{} ) subobjectLevel = 0 --modPanel.setCurrentObject obj.modifiers[#Edit_Poly]
messageBox "Patched !"
gc() fclose f )
on btn4 pressed do( -- obj = getnodebyname "Box01" -- if obj != undefined then select obj
-- select $Polygon* -- select $helpers
disableSceneRedraw() st = timestamp() --get start time in milliseconds undo off( geo=$polygon* -- print geo for x = 1 to geo.count do( addModifier geo[x] (Normalmodifier ()) geo[x].modifiers[#Normal].flip = on addModifier geo[x] (smooth ()) geo[x].modifiers[#Smooth].smoothingBits = 1 collapseStack geo[x] m2010=chk1.checked if m2010==true do( --rotate geo[x] (quat -1 0 0 0) geo[x].scale = [2.54,2.54,2.54] ) ) delete $helpers for x = 1 to geo.count do( -- aBox = Box length:0.2 width:0.2 height:0.2 name:"dummy" aBox = Box() aBox.rotation = quat 0.707107 0 0 0.707107 convertTo aBox TriMeshGeometry ) dmy=$Box* myBoxes=#() myMeshes=#() for x = 1 to geo.count do( objA= dmy[x] objB= geo[x] append myBoxes objA append myMeshes objB )
for x = 1 to geo.count do( myBoxes[x].name = myMeshes[x].name attach myBoxes[x] myMeshes[x] )
for x = 1 to geo.count do( for i = 1 to 8 do( delete geo[x].verts[#{1}] ) addModifier geo[x] (Morpher ()) )
addModifier $Polygon* (Edit_Mesh ())
) et = timestamp() --get end time in milliseconds enableSceneRedraw() gc() print ("Operation Completed In: "+(((et-st)/60)as string)+" Seconds") --print time to finish ) )
createDialog DDV
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #33 on: June 06, 2010, 05:45:08 AM » |
|
the theory is quite simple... the models are in pieces, separated by texture or material for whatever game technical reason. and thats how they are stored in the game files. since we're not programming GOD's we use a very primitive method for grabbing vertices.. we simple dump them. we dump them as they are stored in the file, which is in pieces. this makes modding extremely difficult, but they theory is, that A-B=C so therefore C+A=B or C+A=B .. meaning if we created a patch (finding a difference between coordinates) then we can subtract the difference, save it to a patch file, and reapply these values to a modified mesh which should offset the verts back and forth to a form where they are in pieces again the updated script only has a tick box I called max2010. tick that before you press AIS Fix and it'll rescale the import for some other collada importer... the importer your using is actually the 3dsmax default. called FBX.. which will not work at all. YOU NEED TO DOWNLOAD A 3RD PARTY PLUGIN. there are soo many reversions of max, it was easier for me just to say, go google a plugin. I don't know why you kept stubbornly working on a broken import. the whole idea is to work from a fully assembled mesh. if it doesn't look right, why bother continuing the rest of the steps. when you know you got the very first step wrong... if the gemometry is literally missing, my fix button can't fix that just download the proper max, and the proper plugin that I worked from 1. 3DSMAX8(30-Day Trial)http://www.megaupload.com/?d=SRO22PV12. FREE ColladaMaxhttp://sourceforge.net/projects/colladamaya/files/COLLADAMax%201.4.1%20plug-ins/ColladaMax_FREE_3.05C.exe/ColladaMax_FREE_3.05C.exe/download
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #34 on: June 06, 2010, 06:35:03 AM » |
|
wait, I have seen the mods you do and quite frankly, I do not believe that you spend all day making marth into that from just vertex moving there must be a shortcut to that... and what does export verticies do? Correct if I am wrong about what I said.
|
|
|
Logged
|
Want to learn about my new project? Click here! Updated 1/18
|
|
|
|
|
|
« Reply #35 on: June 06, 2010, 08:37:52 AM » |
|
the Export button isn't finished, I was going to make my own injector, instead o having to use DasDonkeyVertexBox... if that name wasn't long enough, its built on java.. and I just despise java.
and yes your right, there are a types of "shortcuts" but there not like 5second things.. they do however shave off a few hours of work. but in actually yes I am sitting here 16hours+ trying to remodel from scratch.
things like geometry wrapping and texture projection are 2 things I was going to cover in the next extensive video. but I've had alot of recent failure as I was working with mewtwo and shinobu, thus the videos were placed on hold.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #36 on: June 06, 2010, 08:56:03 AM » |
|
Sorry, I haven't been around lately. spent alot of time trying to edit marth's Cape.. but sadly no good even with the Collada trick, the cape still gets badly deformed.. can't figure it out. wasted the entire day, just trying to get the cape sort of decent for my shinobu mod... anyways, I've heard about a few bugs, and even experienced alot problems myself. all I can say, is this method isn't "Full Proof" and likely won't be. unless brawlbox is better devloped to suit our 3d modding needs. though it's an effective trick to help edit certain static meshes, such as face, and the chest... probably the arms but some objects just don't seem to work.. and I've spent all day trying to come to a resolve... no luck. also there seems to be a HUGE issue with Collada Importers.. AiS was made off of the Free ColladaMax plugins.. some people have different plugins which do some funny stuff if so try this updated script, it'll fix your AIS scene and rescale it properly. You have become such a big help, mariokart64n. The method isn't flawless, but when it does work it can do a lot of amazing things.
Been, playing around with the tutorial, just trying to get the method down. Haven't had any major issues, besides with converting the .mdl0 to .dae.
That Shinobu looks amazing by the way.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #37 on: June 06, 2010, 09:21:04 AM » |
|
maybe you can fix the cape issue, I'll post the WIP at my Mario'sCorner Topic in the mean while I'm trying to import the hair from the actual shinobu model itself. RandomTbush's method sounds like it should work, but I haven't had any success yet. but I'm not worried.. it's worked for Random before, so its a proven hackup
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #38 on: June 06, 2010, 11:37:14 AM » |
|
How do you open that "Select Objects" thing where it says mesh01 and polygon0 like you did in the video in 5:59, after you patch the model?
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #39 on: June 06, 2010, 11:45:33 AM » |
|
press "H" on your keyboard
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #40 on: June 06, 2010, 11:45:50 AM » |
|
press "H" on your keyboard
Thanks.
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #41 on: June 06, 2010, 01:20:03 PM » |
|
It seems that I can't edit Stage builder parts with this method. I tried to open the 3DS that DDVB spat out from the vertex.ddf file and I get a "improper file format"error.
I might still have to go through anima8tor for stage parts.
Nope. Still no dice.
|
|
« Last Edit: June 06, 2010, 02:21:26 PM by EternalYoshi »
|
Logged
|
|
|
|
|
|
|
« Reply #42 on: June 06, 2010, 06:06:50 PM » |
|
Nevermind my previous query, I got that part to work. Now, I edited part of the yoshi model just fine and it morphed correctly. I looked at it in brawlbox, everything was fine. However, when I repeated the process, when I click on morpher, I cannot choose the completed object to morph to. Any ideas?
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #43 on: June 06, 2010, 06:31:38 PM » |
|
I have to fix my script, I'm using edit poly to do my operations, but it's converting the models geometry, in some causes causing it to be incompatible. (this can be fixed using faceMorpher instead) but I'll need to change over from EditPoly to EditMesh.. but I'm not sure of the max commands for that one.
also try collapsing the modifier stack, that might do the trick
as more fixes and developments come, I'll be sure to post about it
|
|
|
Logged
|
|
|
|
|
|
|
« Reply #44 on: June 06, 2010, 06:51:59 PM » |
|
I have to fix my script, I'm using edit poly to do my operations, but it's converting the models geometry, in some causes causing it to be incompatible. (this can be fixed using faceMorpher instead) but I'll need to change over from EditPoly to EditMesh.. but I'm not sure of the max commands for that one.
also try collapsing the modifier stack, that might do the trick
as more fixes and developments come, I'll be sure to post about it
Yeah, I noticed it says "editable poly" and I was like whurt? Could you explain collapsing the modifier stack? I dont really know what that means :/ Also, could you explain the facemorph thing? I'm sorry I'm such a noob at this.
|
|
« Last Edit: June 06, 2010, 07:01:58 PM by Yoshiboshi3 »
|
Logged
|
|
|
|
|
|