Page 10 of 12

Re: 3d Models, animation importer - FatImporter

Posted: Sun Jun 02, 2013 7:03 pm
by pixellegolas
sweet update!

Re: 3d Models, animation importer - FatImporter

Posted: Tue Jun 04, 2013 9:32 pm
by Drawing
good update :) but dragona importer sometimes doesn't work:
some times the model are not skinned, some animations stop...

Re: 3d Models, animation importer - FatImporter

Posted: Thu Jun 20, 2013 9:15 am
by Nazaroff
fatduck wrote: - YS Online: The Call of sodum
Call of Solum maybe? Where can we find this game, anybody know?

Re: 3d Models, animation importer - FatImporter

Posted: Thu Jun 20, 2013 1:52 pm
by Allanoon
Nazaroff wrote:
fatduck wrote: - YS Online: The Call of sodum
Call of Solum maybe? Where can we find this game, anybody know?
If you google around you can find an old CB game client (i dlded it a few weeks ago), around 2 GB~

Re: 3d Models, animation importer - FatImporter

Posted: Mon Jun 24, 2013 8:18 pm
by anime663
Can you maybe add Shining Blade/Ark for the PSP?

Re: 3d Models, animation importer - FatImporter

Posted: Tue Aug 27, 2013 8:18 pm
by Darko
Does someone know how to extract hi no kakera chaotic eclipse dat files?? Fatduck importer has support for this game but I can't find anything about that.

Re: 3d Models, animation importer - FatImporter

Posted: Tue Nov 12, 2013 4:36 am
by BloodForce
when try import .chr files from archeage have error
---------------------------
-- Runtime error: array index must be positive number, got: -1672745836
trying in 3ds max 2009 and 2010

Re: 3d Models, animation importer - FatImporter

Posted: Mon Nov 18, 2013 7:28 pm
by Rimbros
wolfen wrote:hello i have a error with plugin
download/file.php?mode=view&id=6024
How u can unpack the .dp files? i cant found .bms or something.

Re: 3d Models, animation importer - FatImporter

Posted: Fri Dec 20, 2013 8:52 pm
by CriticalError
Hello fat, really like yourwork and gratefull for that, today I download 榮耀世紀 Carpe Diem, with help of finale00 I unpack them, but when try import any files "brv_chr" I get this error in MaxScript 2010, maybe you can fix them?

榮耀世紀 Carpe Diem

Image

Code: Select all

rollout MainRoll "Carpe Diem" (fn a5ff801d f c3f8964b fscale = (e5ff12a0 = #();b3ed996a = #();d2884eab = #();c9eed647 = #();a44b593e = #();ib376025 = readlong f;f38eb60a = readlong f;fseek f 16 #seek_cur;for i = 1 to ib376025 do (vx = readfloat f; vy = readfloat f; vz = readfloat f;append e5ff12a0 ([vx,vy,vz]*fscale);vx = readfloat f; vy = readfloat f; vz = readfloat f;append b3ed996a [vx,vy,vz];vx = readfloat f; vy = readfloat f;append d2884eab [vx,(1-vy),0]);hb84005a = #();for i = 1 to ib376025 do (f47e885b = readlong f;if (finditem hb84005a f47e885b)== 0 then append hb84005a f47e885b;a44b593e[i] = #(#(f47e885b+1),#(1.0));try (g4e6da02 = (transMatrix e5ff12a0[i]) * c3f8964b[(f47e885b+1)].transform;e5ff12a0[i] = g4e6da02.pos) catch (););for i = 1 to f38eb60a do (f1 = readshort f;f2 = readshort f;f3 = readshort f;if c3f8964b == undefined then append c9eed647 ([f1,f2,f3]+1) else append c9eed647 ([f3,f2,f1]+1));a8d6e5fc = mesh vertices:e5ff12a0 faces:c9eed647;a8d6e5fc.numTVerts = d2884eab.count;buildTVFaces a8d6e5fc;for j = 1 to d2884eab.count do setTVert  a8d6e5fc j d2884eab[j];for j = 1 to c9eed647.count do setTVFace a8d6e5fc j c9eed647[j];for j = 1 to b3ed996a.count do setNormal  a8d6e5fc j b3ed996a[j];if c3f8964b != undefined then AutoskinMeshNT a8d6e5fc c3f8964b a44b593e;return a8d6e5fc);fn b4738ef0 f e9e026ac fscale c3f8964b bde864e5 = (d74a55c3 = $'AnimData';a854ed63 = 0;c3e76d5a = 0;if d74a55c3==undefined then (d74a55c3 = dummy name:"AnimData" boxsize:([1,1,1]*fscale);c3f8964b = #();) else (d74a55c3.transform = matrix3 1;a854ed63 = getUserProp d74a55c3 "ACnt";if a854ed63 != undefined then c3e76d5a = getUserProp d74a55c3 ("A"+(a854ed63 as string)+"ED")+1 else a854ed63 = 0);animationRange = (interval 0f 100f);SliderTime = 0f;b7b5688d = readlong f;he3224f9 = readlong f;if (c3f8964b.count>0)AND(c3f8964b.count!=he3224f9) then return c3f8964b;for j = 1 to he3224f9 do (f47e885b = readlong f;gb809647 = readMTX44 f fscale;if a854ed63==0 then (ef84606e = dummy boxsize:[.1,.1,.1] showLinks:true showLinksOnly:true wirecolor:yellow;ef84606e.transform = gb809647;setUserProp ef84606e "BoneID" f47e885b;ef84606e.name = "Bone";if j <= 10 then ef84606e.name +="0";ef84606e.name += f47e885b as string;append c3f8964b ef84606e) else ef84606e = c3f8964b[j];for i = 1 to b7b5688d do (qx = readfloat f; qy = readfloat f;qz = readfloat f; qw = readfloat f;px = readfloat f; py = readfloat f; pz = readfloat f;with Animate on at Time (((i-1)*e9e026ac)+c3e76d5a) (ef84606e.rotation = (quat qx qy qz qw);ef84606e.position = ([px,py,pz]*fscale));if i==1 then (f47e885b = numkeys ef84606e.position.controller.X_Position.controller;if f47e885b>0 then (ef84606e.pos.controller.X_Position.controller.keys[f47e885b].inTangentType = #step;ef84606e.pos.controller.Y_Position.controller.keys[f47e885b].inTangentType = #step;ef84606e.pos.controller.Z_Position.controller.keys[f47e885b].inTangentType = #step)));f47e885b = numkeys ef84606e.position.controller.X_Position.controller;ef84606e.pos.controller.X_Position.controller.keys[f47e885b].outTangentType = #step;ef84606e.pos.controller.Y_Position.controller.keys[f47e885b].outTangentType = #step;ef84606e.pos.controller.Z_Position.controller.keys[f47e885b].outTangentType = #step);a854ed63 += 1;SetUserProp d74a55c3 ("A"+(a854ed63 as string)+"NE") (filenameFromPath bde864e5);SetUserProp d74a55c3 ("A"+(a854ed63 as string)+"ST") c3e76d5a;SetUserProp d74a55c3 ("A"+(a854ed63 as string)+"ED") (b7b5688d*e9e026ac+c3e76d5a-1);SetUserProp d74a55c3 "ACnt" a854ed63;AnimationRange = interval 0 ((b7b5688d-1)*e9e026ac);return c3f8964b);fn ce860b22 f f3ed944a fscale = (f3ed944a += "data\\";fseek f 0x3C #seek_set;i22ed89a = readlong f;be864d3a = #();c4ee802a = #();d90aff72 = #();for i = 1 to i22ed89a do (he39025e = (readlong f) as string;for j = 1 to (4-he39025e.count) do he39025e = "0" + he39025e;he39025e = f3ed944a + he39025e + ".msh";readlong f;ga4756f0 = readlong f;append be864d3a (ga4756f0+1);fseek f 0x48 #seek_cur;if (doesFileExist he39025e)==true then (mf = fopen he39025e "rb";a8d6e5fc = a5ff801d mf undefined fscale;a8d6e5fc.name = filenameFromPath he39025e;a8d6e5fc.transform = a8d6e5fc.transform * (matrix3 [1,0,0] [0,0,1] [0,1,0] [0,0,0]);fclose mf;d90aff72[i] = a8d6e5fc) else messagebox (he39025e + " Not found!"));g90e580c = readlong f;for i = 1 to g90e580c do (fb4d354b = (readlong f) as string;for j = 1 to (4-fb4d354b.count) do fb4d354b = "0" + fb4d354b;e4dfd20e = standardmaterial name:("mtl_"+fb4d354b) twosided:true;d3fb464a=f3ed944a + fb4d354b + ".dds";e4dfd20e.diffusemap = bitmapTexture name:("tex_"+fb4d354b) filename:d3fb464a;e4dfd20e.diffusemap.monoOutput = 1;e4dfd20e.diffusemap.alphaSource = 2;ShowTextureMap e4dfd20e e4dfd20e.diffusemap on;append c4ee802a e4dfd20e);for i = 1 to d90aff72.count do (if d90aff72[i]!=undefined then d90aff72[i].material = c4ee802a[(be864d3a[i])]));fn e8005f6d f i9f4ee57 e9e026ac fscale = (f3ed944a = (getFilenamePath i9f4ee57);fseek f 0 #seek_end;a5663ef1 = ftell f;fseek f 0x38 #seek_set;fb4a8783 = #();c3f8964b = #();for kk = 1 to 90 do (d48e565c = (readlong f);if d48e565c >= 0 then (a66ed904 = finditem fb4a8783 d48e565c;if a66ed904==0 then (append fb4a8783 d48e565c;d48e565c = d48e565c as string;for j = 1 to (4-d48e565c.count) do d48e565c = "0" + d48e565c;d48e565c = f3ed944a + "ani\\" + d48e565c + ".ani";af = fopen d48e565c "rb";if af!=undefined then (c3f8964b = b4738ef0 af e9e026ac fscale c3f8964b d48e565c;fclose af))));if c3f8964b != undefined then (b4ff4682 = $'AnimData';for b in c3f8964b do b.parent = b4ff4682;b4ff4682.transform = (matrix3 [1,0,0] [0,0,1] [0,1,0] [0,0,0]));if a5663ef1 > 0x4E8 then fseek f 0x4E8 #seek_set else fseek f 0x1A0 #seek_set;i5efd347 = readlong f;for i = 1 to i5efd347 do (hb399f51 = (readlong f) as string;for j = 1 to (4-hb399f51.count) do hb399f51 = "0" + hb399f51;hb399f51 = f3ed944a + hb399f51 + ".brv_itm";if (doesFileExist hb399f51)==true then (ff = fopen hb399f51 "rb";ef398653 = (readlong ff) as string;for j = 1 to (4-ef398653.count) do ef398653 = "0" + ef398653;ef398653 = f3ed944a + "data\\" + ef398653 + ".msh";fseek ff -8 #seek_end;ga4756f0 = (readlong ff) as string;for j = 1 to (4-ga4756f0.count) do ga4756f0 = "0" + ga4756f0;d3fb464a=f3ed944a + "data\\" + ga4756f0 + ".dds";fclose ff;if (doesFileExist ef398653)==true then (mf = fopen ef398653 "rb";a8d6e5fc = a5ff801d mf c3f8964b fscale;fclose mf;a8d6e5fc.name = filenameFromPath ef398653;a8d6e5fc.material = standardmaterial name:("mtl_"+(getfilenamefile d3fb464a));a8d6e5fc.material.diffusemap =  bitmapTexture name:("tex_"+ga4756f0) filename:d3fb464a;a8d6e5fc.material.diffusemap.monoOutput = 1;a8d6e5fc.material.diffusemap.alphaSource = 2;ShowTextureMap a8d6e5fc.material a8d6e5fc.material.diffusemap on) else messagebox (ef398653 + " Not Found!")) else messagebox (hb399f51 + " Not Found!")));button opnRes images:#(FatImage,undefined,10,ImgIdx,ImgIdx,ImgIdx,ImgIdx) width:200 Height:150 align:#center tooltip:"Import  Carpe Diem  File";on opnRes pressed do (bde864e5 = getOpenFileName caption:"Open Carpe DiemFile" types:"Carpe Diem Character (*.brv_chr)|*.brv_chr|Carpe Diem Object (*.brv_obj)|*.brv_obj|All File (*.*)|*.*|";if bde864e5 != undefined then (f = fopen bde864e5 "rb";c47fbb50 = GetFilenameType bde864e5;if c47fbb50==".brv_chr" then e8005f6d f  bde864e5 1 fscale else if c47fbb50==".brv_obj" then ce860b22 f (getFilenamePath bde864e5) fscale else Messagebox "Unsupported file!";fclose f)))
天龍八步 Dragon Oath

Image

Code: Select all

GameInfo = undefined;GameStg=#();cfg = fopen (scriptsPath + "FatImporter\\FatImporter.cfg") "rb";if cfg==undefined then (messagebox "Configuration file not found")else( nGames=readshort cfg #unsigned;GameInfo=for j=1 to nGames collect #((readstring cfg),(readstring cfg),(readstring cfg),(readbyte cfg #unsigned));fclose cfg);if GameInfo != undefined then (GameStg = for j in GameInfo collect j[1];sort GameStg);global fscale = 1;global TexExt = ".tga";global FatImage = scriptsPath + "FatImporter\\Fatbar01.jpg";global ImgIdx = 1;global GameTitle = "";fn readMTX44 fstream fscale=(m11=readfloat fstream;m12=readfloat fstream;m13=readfloat fstream;m14=readfloat fstream;m21=readfloat fstream;m22=readfloat fstream;m23=readfloat fstream;m24=readfloat fstream;m31=readfloat fstream;m32=readfloat fstream;m33=readfloat fstream;m34=readfloat fstream;m41=readfloat fstream;m42=readfloat fstream;m43=readfloat fstream;m44=readfloat fstream;mtx=matrix3 [m11,m12,m13] [m21,m22,m23] [m31,m32,m33] ([m41,m42,m43]*fscale);return mtx);fn readFixedString fstream nChar=(txt="";Null=false;for j=1 to nChar do (chr = readByte fstream #unsigned;if chr==0 then Null=true;if Null==true then continue;txt+=bit.intAschar(chr));return txt);fn AutoskinMeshNT msh BNary SKary=(DisableSceneRedraw();skn=skin();addmodifier msh skn;select msh;max modify mode;for b in BNary do(skinops.addbone skn b 1);select msh;for i=1 to msh.numVerts do skinops.ReplaceVertexWeights skn i SKary[i][1] SKary[i][2];max select none;EnableSceneRedraw());fn StripName txt=(rst=""; ss=txt as stringstream;while ((eof ss) != true) do (c=readchar ss; if c==" " then rst+="_" else rst+=c);return rst);rollout MainRoll "" ( );rollout AnimRoll "Fatduck Animation Viewer" (button ResetAmn "Reset" width:60 align:#left offset:[-5,0] across:2;Spinner Arange "Animation: " fieldwidth:45 type:#integer range:[1,100,1] align:#right offset:[5,3];button listAnim "List Animation" height:25 width:190 align:#center;label lbl "" align:#center;on ResetAmn pressed do (stopAnimation immediateReturn:true;animationRange = interval 0f 100f;sliderTime = 0);on listAnim pressed do (dmy = $'AnimData';if dmy != undefined then (try (numAnim = getUserProp dmy "ACnt";clearlistener();format "No. of Animation: %\n" numAnim;for i = 1 to numAnim do format "%>\t%\t[%,%]\n" i (getUserProp dmy ("A"+(i as string)+"NE")) (getUserProp dmy ("A"+(i as string)+"ST")) (getUserProp dmy ("A"+(i as string)+"ED"));Arange.range.y = numAnim) catch (messagebox "Animation Data not correct!" title:"")) else messagebox "Animation Data not found!" title:"");on Arange changed val do (dmy = $'AnimData';if dmy != undefined then (try (numAnim = getUserProp dmy "ACnt";Arange.range.y = numAnim;if val > numAnim then val = numAnim;st = getUserProp dmy ("A"+(val as string)+"ST");ed = getUserProp dmy ("A"+(val as string)+"ED");try ( lbl.text = ">>  " + (getUserProp dmy ("A"+(val as string)+"NE")) + "  <<" ) catch (lbl.text = "");if ed == st then ed+=1;stopAnimation immediateReturn:true;AnimationRange = interval st ed;SliderTime = st;playAnimation immediateReturn:true) catch (messagebox "Animation Data not correct!" title:"")) else messagebox "Animation Data not found!" title:""));if FatImpGUI != undefined then closeRolloutFloater FatImpGUI;FatImpGUI = newRolloutFloater "Fat Importer V1.5" 220 480 10 70;rollout GeneralRoll "General Setting" (dropdownlist GameList "Game List: " height:16 items:GameStg;group "Texture type" (radiobuttons TexType "" labels:#("tga","jpg","bmp","dds") columns:4 offset:[0,-3]);spinner VTscale "Import Scale : " range:[0.00001,100000,1] fieldwidth:60 align:#right;checkbutton AnimView "Fatduck Animation Viewer" height:25 width:190 align:#center;button HLP "?" height:17 width:17 pos:[180,5] tooltip:"About FatImporter";on HLP pressed do (rollout FatHelp "" (label lbl1 "FatImporter v1.5";label lbl2 "by";label lbl3 "Fatduck";label lbl4 "20 July, 2012";label lbl5 "";label lbl6 "If you like this Importer, you are welcome " align:#left;label lbl7 "to make some donation to support me!" align:#left;label lbl8 "";label lbl9 "For any feed back please go to my Forum" align:#left;hyperLink GRF "Game Research Chinese Forum" color:blue address:"http://gameresearch.5d6d.com" align:#left;label lbla "alternatively, find me on " align:#left across:2;hyperLink XTF "Xentax Forum" color:blue address:"http://forum.xentax.com/" align:#right;button ClHelp images:#((scriptsPath+"FatImporter\\FatIcon.jpg"),undefined,1,1,1,1,1) width:75 Height:75 align:#center;on ClHelp pressed do DestroyDialog FatHelp);createDialog  FatHelp 220 300);on GameList selected idx do (if AnimView.state==true then (removeRollout AnimRoll FatImpGUI;AnimView.checked=false);removeRollout MainRoll FatImpGUI;GC();for g in GameInfo where g[1]==GameList.selected do (GameTitle = g[1];if g[4]>128 then filein(scriptsPath + "FatImporter\\"+g[2]+".mse") else filein(scriptsPath + "FatImporter\\"+g[2]+".ms");FatImage = scriptsPath+"FatImporter\\"+g[3]+".jpg";ImgIdx = bit.and g[4] 127;exit);addRollout MainRoll FatImpGUI);on VTscale changed val do fscale = val;on TexType changed state  do (TexExt = case TexType.state of (1: ".tga";2: ".jpg";3: ".bmp";4: ".dds"););on AnimView changed state do (if state==true then addRollout AnimRoll FatImpGUI else removeRollout AnimRoll FatImpGUI));addRollout GeneralRoll FatImpGUI

Re: 3d Models, animation importer - FatImporter

Posted: Thu Feb 27, 2014 6:35 am
by CriticalError
eyy fat i'm again here, well you don't answer me before but take a look this time, when try load animation in RF Online I get that, please if you can fix that, really gratefull, thanks.

Image

Re: 3d Models, animation importer - FatImporter

Posted: Fri Mar 14, 2014 6:32 pm
by deant
anyone got a way to open So Blonde *.dat file?

Re: 3d Models, animation importer - FatImporter

Posted: Tue Dec 16, 2014 2:54 am
by Sureno13
Thank you so much!

Re: 3d Models, animation importer - FatImporter

Posted: Sat Jan 24, 2015 5:57 am
by ssringo
Venetica went on Steam today (a game I hadn't heard of) and turns out to be pretty awesome. Saw there was tools that could import the models!

Tool not available anymore...

Sigh, I'm always too late to get tools. Anyone mind sharing it via PM?

Re: 3d Models, animation importer - FatImporter

Posted: Sat Jan 24, 2015 12:25 pm
by Acewell

Re: 3d Models, animation importer - FatImporter

Posted: Sat Apr 11, 2015 10:45 pm
by cire992
Sorry about the bump, does anyone still have the season 3 scripts? They weren't on the blog entry posted above.