#List of useful tools to Convert Assets (3D and 2D)
1 messages · Page 2 of 1
yep
but i in TMD Primitives Quads are a little different
if you see my old code the connections are done not in a linear way as expected for other formats hahahaha
yeah... PlayStation 1 shenanigans
well the tri to quad fixed lol
now time to fix the color array
i hope to be thaaat easy hahahaha
i have to figure out why are multicolor instead of using the correct colors...
but i think something to do with the conversion from integers into a Float Array of 32bits...
RGB gamer torso
hahahahahaha... this way you get more fps during rendering lol
@true apex New update for the exe version of the GUI Tool available!... sorry for the delay but RL sometimes can't help hehehe
Also for everyone interested could check:
https://github.com/Legend-of-Dragoon-Modding/TLoD-TMD-Converter
thanks for the notice and completely understandable my personal life always run off the ricter scale week to week
wait was this for the models or textures cause textures are what i couldnt get for the boss models
omg
hahaahha
just about to ask if it work well lol
let me check
yeah you are right... even i didn't do anything related to that code...
for some reason Monoxide did the change over texture placement but not for models 🤔
well i will put hands over this today during afternoon, hope to solve it in a few
What did I do
the change in the texture placement... i wondered why you change texture and sound.... but the models are still in the same place xD
i would reformulate as a question, Monoxide, you plan to move the Enemies and Bosses models into the same folders as Texture and Sounds?
Probably
I wasn't the one that moved the textures and sounds and I don't remember what was done
what?
seriously
i thought that change made by you
i need to check BLAME to see it correct in the Unpacker hahhaa
i mean... actually is not a bad move... because one of the goals is keeping all stuff split into parts for easy modding for everyone... but the change sound a little odd to me since change the dump placement of Sound and Texture for enemies (i think are sort as the Enemies doc) but the models still in the same spot in the files
anyhow... not a big deal
since only need to replace where the textures are found in the DataBase
Well i find that the Database Loading and some stuff related to TLoD Texture Converter are pretty shitty so i will refactor that into a new shape, also to keep the same way as i'm working in Asset Manager, i hope this refactor don't take me long... (Sorry for users, specially Rmartin691)
seriously that code i made... was a real shit hahaha
Don’t got to apologize lol all things will get done in time
We should be grateful to @true apex, thanks to the bug report and doing some reasearch, not only i add compatibility to new texture position, but did serious improvement, taking half of time convert all the textures, from 05 Minutes 27 Seconds to 02 Minutes 07 seconds!!
this is a big improvement hahahaha
i wonder how much could i improve the TLoD TMD Converter using the same way to do things
also the preview time is greatly improved
that second waiting time now it's half of a second
ooh cant wait
New version of TLoD Texture Converter Released!!
i hope this works fine for everyone!
oooh
tell me if it works well
When I get home from work I will
seems to work fine for me
excellent
well this is working... but not how i want to... because colors and UV get bleed because are sharing data... so i need to refactor to get the specific data needed
@wicked gulch i know i asked how to get the dragon models but i totally forgot to ask you how to get their textures since they are locked behind a spell
oohhh hahahaha... i forgot to do a DEFF Database...
the DEFF are archives that holds the Dragoon EFFects
which are the spells
each DEFF have it's own package of Textures... the problem is... i ever did a full database for them, since DEFF can't be converted atm (at least with the tools i released)... soon i will release a Database for DEFF so you will be able to convert the Texture files
Well now facing a new foe here... found that for some reason glTF have several issues to support using the same vertex data to hold Vertex Color + Vertex UV, need to do an algorithm to do a "kind of support" for it...
need to read code that use glTF as export but using vertex color and uv at the same time...
if anyone here see something like that please tell me
for now i will do a serious refactor in the TLoD TMD Converter to improve the tool processing + functionality...
in middle i will do a kind of support for DEFF files and also DEFF Textures
that will impact in the TLoD Texture Converter
the glTF thing turns to be a little complex until i figure out a good algorithm that avoid me doing 5 to 6 for loops with no reason...
maybe i should migrate everything into PyQt
Found a Bug!: TLoD Texture Converter have problems in the Advanced Conversion when converting PXL files
Well I'll take a design decision, since will be moving all the GUI to PyQt (so MacOS users will be capable of use the tool), also will "simplify" how it works Instead of having the old way with three buttons (Battle Model Conversion, SubMap Model Conversion and Advanced Conversion) i will split everything adding more specific buttons (and decreasing the list length in the tree view, when entering in the mode conversion, this also will help users to avoid getting lost because of nesting) also will be more easy to track the final list to be converted at the end... i think it's pretty good...
So we will have Battle Stages, Bosses, Characters, CutScenes, Enemies, Misc, Tutorial, World Map, DRGN21, DRGN22, DRGN23, DRGN24... each one with a specific button at the main Window... how you think about that change?
also this split a little the classification, since World Map model conversion is under the "Battle Model Conversion" button that is actually incorrect
also i'm open to specific request to be added into my tool, more than anything i mean in the visual term of the Tool
I can’t wait to try this tool out
i thought Lavitz was taller... like 1,90....
to any person curious i used the heights described in one of the TLoD Guides from Japan
I would of thought he was taller too
short king
1,75mts
while Lloyd is said that is 1.91 mts... which is a surprise, since in much of the game is shown as a medium height character
Melbu Frahma also had the same height as Lloyd D:
ok so question as I'm still really new to blender and cant find the right thing online to help me but does anyone have a step by step on how to do texture painting to get the entire model cause im only able to get one piece at a time, thank you to anyone who can give me some pointers and advice
well the texture paint actually is design to work object by object, if not working with all the objects selected from scene, entering into Texture Painting and then selecting all the desired vertex to be paint, i'll think is not possible...
this is because Blender (internally and under the hood) create a kind of Python Dictionary, in which store all the Data/Information of a single Object at a time, so modify everything at once it's 'kind' of impossible. Keep in mind that much of the 'today' Meshes are a single Mesh Model, and only had some stuff like details to be attached to the 'main model'. Even for one of my tools I coded a very weird and inefficient workaround. But is so inefficient that make Blender lag to the hell if enabled "real time" that's why you need to update the scene manually...
my best shot on that problem will be trying to paint the objects individually and trying to keep some sort of "continuity" and after doing it, you export everything and try to merge the texture by hand... when finished return to blender with the new adjusted texture and set everything by hand
anyhow also you can try this
Will give this a try
I'm da god of Destruction!... LaShaDa!!... behold and knee before my merged power!
FUCK YEAAAAAAAAAH!!!! @sterile lantern
I'm not sure what I'm looking at 😆
a well converted glTF File of the Merchant Tutorial
recall that i was fighting against that?
now i get it
now it's time to find out the animation conversion into glTF and the Assets Converter will be release in it's first BETA version
the 3 hours glTF Conference i watch made me understand some stuff about the format... but do a little break because i was getting nuts, after that i refactor almost all of the code for conversion in 1 day
Ah, nice work
thanks!... now i will continue doing some improvements over this until i get something usable!
sorry but lately i'm loosing my mind, since for some reason the glTF plugin for Blender is not doing what supposed to do, since the creator of plugin take the papers from glTF Khronos Group way too serious, making that colors looks washed out, because need gamma/contrast + color space sRGB correction... duh... everything can be seen on my notes at #🗨off-topic-only.
FUCK YEAH!!!!!! [Again!]
this are VERY GOOD NEWS!...
finally get the sRGB to LinearRGB correction done...
maybe most of you are wondering why i use the Dart model so much to test... the answer it's simple, in retail game was the only character that couldn't be removed from party, so i was familiar in all details... but also the same happened the very first time (like in 2008 or so), that find out a way to get the models converted
the first model i recognise was Dart... even without the Vertex Colors
Animations: and here we go again! against an old Enemy... the Quaternion System!.... well TLoD for obvious reasons use the classic EULER Angles approach to do rotations, but this time I will not re-invent the wheel.... will do in the pythonic way!... will use my pip [...] to get those nice converters from SciPy!... with a nice single liner will get rid totally of them...
In my country we have an essay which tells "A otra cosa mariposa", which literally translated to English is "To something else butterfly", but the real meaning is "I get rid of this easily and then i continue my way"
Ooh model painted pretty
yeah!... also this time was a complex thing to pull, since in official docs is not explicit about how Vertex Color behaves compared to other file formats
Also something to note, i think you can generate the Materials for Blender in the glTF format... which gone to gave an easy time to final user, since you won't have to do it manually anymore...
Through the new tool you’re working on?
yep exactly!
today did a biiiiig jump, i think in a few days we will have the animations in single file available in the conversion
what i mean?, before with dae, to keep files under 2mb, made each animation exist with a single model...
with this glTF format, seems that we can handle all the animations in the same file with very little space usage...
the difference between handling binary files vs text files
@sterile lantern
This are good.... very good news
sorry but i slept 3 hours in the last 4 days
at much
hahaha
maybe i should adjust the animation frame factor
but it's pretty solid how it works
commander with all the passive animations
Nice, that's looking good
Seriously, the improvements are really adding up. It's super impressive
Great work. Very impressive.
That's truely wonderful, you're making our lord (Pelpee) so proud. 🥰
thanks mates for the support! i hope get a good beta release soon!
this is a good comment
Me every time I look at any LOD code
i had the issue that we are at middle of moving folders outside SECT/DRGN0.BIN/, this made me set in some cases the "main" folder as files/ and in other cases as files/SECT/DRGN0.BIN/, and also depending on the Battle Entities, some had animations outside the Model folder, for example the Enemies had Textures files at files/, the models and passive animations at files/SECT/DRGN0.BIN/ModelPassive and the attack animations at files/SECT/DRGN0.BIN/ModelAttack...
Why use two different roots instead of always using files?
when i mean root is the "from where the model is placed"
not te ROOT REAL ROOT xD
i use that root
but also need to guide the path until the files
and some files are under SECT
others under their own folders
that's why i'm desesperately asking each time
if we gone to change that soon
if the case
my efforts will be in vain lol
Battle Models fully working on the TLoD Assets Manager...
since we are converting much stuff and not only a model and a single animation, i put some checkboxes to user select what want to convert/dump...
also maintaining the "Single Model" conversion and the "Batch" Conversion, but adding a new one... an intermediate called "Multi" Conversion... which actually is selecting one of the Parents and Convert the full parent.... it's a batch but for specific parents... handy if you want only one type of the models
now all the stuff keeps on the same window (to avoid strange behaviors of minimizing or maximizing without a clear reason xD)
also the conversion it's between 10% ~ 30% faster than before...
this is thanks to some changes i did to the logic...
also Texture conversion is now 70% faster... thanks to the Monoxide savior words... 👌🏻
As always i try to keep things simple...
much of you already find out what the middle Widgets in the GUI...
i plan to add a realtime visualizer... but as the old ways... "Press the button to get the model loaded"
since i don't plan to mess around with travelling object across all the GUI backend...
but it's good if anyone want to simply see the models instead of converting them into glTF and messing around Blender
cant wait to use this converter
I may have missed it, but how do you get the textures to show on the model in blender? I tried opening the texture in unwrapping
if you didn't manage until today, the way is... in the UV Wrapping viewport you must look at the deployable list which have the textures slot.... once you find it select it... if you mean the "textured model view" blender expects that you look for it in the shading viewport selections
here
select one of the shading views... the first one have no light interaction, the last one shows everything (light and shadows included)
I ended up selecting each piece of the model and going to the shading tab, then adding a texture node. This is what he looks like rn lol
Still better than what I can do lol, still learning how to use blender properly to create the models
actually that's the way... you need to pick each piece of the model and adding the texture node
hehehe
the only thing i notice, i think you pick wrong textures... you need to match manually the texture piece with the model piece
i mean the colors
when you dump textures with my tool
will create various textures
each one represent a color palette
that need to be match by hand to the object
one thing i do
it's "combining/merging " all the pallets in a single texture
so i can use a single texture instead of 16 or more texture files hehehe
TFZ i summon youuuuu
i need a little help if you remember how the texture for 8bit CLUT works in TLoD
so there's a build of SC that will just do this for you, and I think it works for battle models too
but that requires setting up a dev environment
the alternative though is just picking the pieces by eye or doing something like coloring on them and seeing what colors end up where in game
although, that requires either beetle psx on RA or that same SC build
I wrote a nightmare algorithm that does it
you recall how goes you conversion code for 8bit textures?... since for some reason i'm getting twice the image length in bytes, than expected... heheheh
are you accounting for the actual image pixels being 4 bits and colors 16?
i'm not sure... i'm talking about the SubMap Cut Textures...
ah, the backgrounds?
yep
for some reason the 8bit conversion i do from other files is fine... but backgrounds are a trouble for some reason that i can't get
those are just 256-color CLUTs, so one single 512-byte CLUT, and the image data is 1 byte for each pixel
thanks!
the actual bit shifting for the colors themselves is the same as the 4bpp textures
singe they're all 16bit
or 15+1alpha technically
you are GOD!
for some reason i thought getting rid of the but shifting would produce the same result... i'm not dumb... i'm worst lol
ha no, it's still indexed, just a bigger table
anyone know what this means?
i get rid a memory leak happening... and the TLoD Assets Converter would be usable
you mean why one is duplicated? no idea
maybe for padding?
ahhh
no
that's because i had an error
in my tool... that rewrited the last file name
just solved
but keep that first file converted which is the last of the list of conversion hehehe
the underscor 0 indicates the number of the CLUT
i keep that because rewriting that part it's annoying lol
i'll be back in an hour i hope hehehe
`00:08:08 Took full conversion of full DRGN2x Submaps.
Which include:
Environment SubMap Cuts (3D Model and Background Textures)
Objects from each SubMap Cuts (3D Models, Animations and Textures).
Hardware:
12th Gen Intel(R) Core(TM) i5-12400F 2.50 GHz.
32GB RAM
KINGSTON SNV2S1000G Disk
Full dump size: 1,52 GB (1.638.997.310 bytes)
Files: 62.058 ; Folders: 12.668`
i think this is the most efficient piece of code i can write without burn the PC down lol
even it's faster than TLoD Model Converter and doing twice or thrice the workload lol
What do you mean? Paste them all into one image like a quilt?
Do we know why there are like 12 textures of each character? I get that they'd do that for specific lighting but some of the color pallets are weird
I think the short answer is that it's how the PS operated back in the day.
Look up indexed colour
It's the same way gifs work
If you have a limited colour palette you can store data a lot more efficiently
It's not 12 textures, it's the same texture with each different palette applied
as guys said here... let's say that each texture in TLoD characters have a "base" coloring, but in the same file exist a number of palettes (could be up to 64 if i'm correct, but in TLoD i think the one that have most it's 25), those palettes are applied the N times to get the correct color for each part. In my YT channel have a Tutorial how i do "by hand" that color selection and everything...
A little tutorial about how to extract 3D models and textures from this beatiful game.
JOIN THE FANBASE DISCORD AT: https://discord.gg/rQWXgK5
BlenderGuru Tutorial: https://www.youtube.com/playlist?list=PLjEaoINr3zgEq0u2MzVgAaHEBt--xLB6U
it's a little speedup sorry hehehe
but the process is
take your Image editor of preference... put all the textures as layers and start cutting the piece you want
then collapse all the layers in a single one and that's all...
but for color picking i recommed two things
first... have some pictures in battle of the model to get a good reference of the color
and second... have the model opened and check which UV Island correspond to each object
so tracing that would be easier
the coloring inside texture, for non textured meshes, is not more needed since we use the same Vertex Colors given by the original files
so you only need to worry about the Textures
well some -not so good- announce about my lastest tool... TLoD Assets Converter... since the workload it's somehow heavy, some of the algorithms had some hardcoded stuff. If i need to run "several checks" for everything workload will spiking a lot. Avoiding my tool being slow even in PC with high specs i hardcoded very special handlings... actually are few... one is for the SubMap Chest/Sacks, which models are in the root of each DRGN2x, but instead i move all into DRGN21 -> General.
today i will be working in the last conversion option: Textures only. Which will be the last stuff to release in the Beta version 0.1
i will implement the Assets previewing at Beta 0.2
because if i do this into this version the release could be in a long time.... everything depends on how my creativity permit me to do things sorry xD
When you convert something add its file hash -> output filename to a map
There's no need to convert the same file over and over again
There are thousands of dupes
yep
i did that
the Files are converted just once
the SubMap thing i didin't change it... i keep it as it is.... because when you mod something you "need to know what exist in there"
or you recommend to delete even duplicates for SubMaps?
for Beta 0.2 could re-do that and keep them as SubMap Object models in a single tree... and then the Environments
The dupes are still there in submaps but you could do a simple copy instead of reconverting the duplicated files
ahhhh you mean that?.... ahh.... maybe i will add it in the future... since i'm expecting a lot of issues because i started to use PyQt and for some reason you get Memory Leaks everywhere... by now i do a single conversion at a time... when i find out that everything it's fine i will do that... even i can do it from the model database... just a single model for every need...
for now i solve the memory leaks for my home build... now it's time that users tell me if they found strange behaviors...
yeah testing is that... find the Memory leaks that you don't have locally because you have the power saving enabled in you PC xD
btw @sterile lantern i've created the repository and my tool will be linking to that repository...
the way i manage things it's extra caution... i pull the changes into my personal repo and then if everything ok, i send the pull/update to the TLoD Modding repo
That's a lot of extra steps, just make branches on the main repo
It's the same thing but way easier thank dealing with forks
yeah i know... but i don't think much people will be interested in change that tool... at much some people will complain that don't make their morning coffee hahahaha
i know that would be N of branches coexisting in one the TLoD Modding and my repo... but i think would be fine...
by chance people hate Python and PyQt xD
some day... in a very long future i will merge everything to Java.... the thing it's... tbh... i don't like Java GUI Libraries... some of the GUI "looking" a little "outdated" and most of the people like bright, stars and glitters in the GUI... something that Java can't do (at least "easily").
I don't understand why using branches in the main repo would be a problem
is not...
ahh you mean to like "storing" everything in the TLoD Repo and nothing in my personal repo?
Yeah, you're making it harder on yourself
hmmm because i lack of knowledge to do it properly and also i have issues with the credentials.... making my own repo works in my PC was a hell...
It shouldn't, you just clone and go
hmmm also... i don't need you permission to do pulls into the repo of TLoD Modding?
Have a question related to Licenses... since i'm using some part of Monoxide code i'm using Affero, but PyQt uses GPL 3.0, now the question is... do i have to set both of the Licenses? 🤔
i don't want to be issued or even prosecuted by FBI while i'm running to work 🥲
today it's so wild this shit...
You probably need to include their license info in a document
I want to keep this
% legal... since it's a tool a little more easy'n'advanced that my priors... specially using something that is a GUI which isn't built-in Python
well i just updated and finally i can say TLoD Assets Manager reach the BETA 0.1!!!
tomorrow i will build the file into exe... so... atm the tool is working just fine
is not WOOOOowoOWOWOWW
but do the trick... and better in a single tool
also discovered by chance a bug in TLoD Texture Converter, which prevents to convert one TIM of Embedded type
here's the update to the "main" view of the thread
Still gotta figure out some stuff, but I got sidetracked and made part of his mowhawk transparent
(Edit)
Awesome work Fable!...
yeah... sometimes have to be careful since Blender materials are a little "tricky" hehehehe
@wicked gulch if you want to use my code to dump textures with fully reconstructed palettes it's here https://github.com/Legend-of-Dragoon-Modding/Severed-Chains/blob/main.opengl.foreground-dump/src/main/java/legend/core/gpu/ModelTextureDumper.java
It's basically a software renderer that renders the 3D TMD with the texture and palettes applied but instead of rendering it in 3D it renders it back to the flat texture with the proper palette applied to each pixel
thanks i will work on it for the next release!
Line 91... hahahahaha that's a comment! hahhahaha
That part is actually not needed for you, it fills cluts for unused pixels
I added it because the upscales tfz was doing didn't work well with empty spaces where the parts were unused
It's pretty slow
pin this please hehehe
thanks a lot...
the bias step in the triangle rasterization... is important for 256*256 textures?
DrewUniverse nooowww i summon youuu... Drew any idea for a good pet for this new tool?
i want to do the release of the build in exe, with a new graphic at the start of the tool...
i'm dumb in every direction... just forgot to add the "Convert World Map Models" lol
it's an easy add (i hope) but the thing isn't over lol
Here are some pet ideas: scissorhands, unicorn, or the berserk mouse.
i see you add a link but is there no launcher included for the new tool?
Anyone familiar with Doom's modeling tools wanna help me out with something real quick? I need some info on part of a specific model
What exactly did you want help with? Is it coding stuff?
I just needed some info on how part of a model was configured but I got it sorted, thanks anyway
i planned to release the executable that day... but i wanted to do some changes on the graphics before... because the tool still uses old assets in the visual presentation hehehe
This is the name of my new tool lol
same
i will leave only the sword i think
no text no nothing... seems more clear after all
well i think this will be the definitive one
The only good kind of manager
Who’s sword is that
its Dart's Sword... the one used in the 'Lavitz lead the way' CutScene heheh
The hell? I thought he just had a basic sword this whole time…..
Seriousl i though so too
actually, a time I thought that the idea to change/swap models of Weapons depending the gear equipped was there... but some others say that it's simple chance due to bad coding ideas hahahaha...
anyway... if i'm correct, that sword model, actually is the one we see during all the game... but a little more "detailed", specially in the textures
I feel like it also could’ve been cause every weapon would have to have a dragoon form as well
Too many weapon designs lol
Just released the "exe/compiled?" version of the tool:
https://github.com/Legend-of-Dragoon-Modding/TLoD-Assets-Manager/releases/tag/beta-v0.1
I hope this tool will be useful for everyone!... greets!
btw, i added a little PDF tutorial on how to use the tool inside the 7zip and the GitHub page, under the folder Help
also something that noticed*... for some reason PyQt tends to use a "translucent" button mode in Windows 11, in Windows 10 are fully opaque... 🤷🏻♂️
The tool works great and is very easy to use. Thank you for all your hard work.
thanks a lot to you for the speed feedback!
Wait did it come out like this or did you build it?
That's how it comes out. You can't see the animations but they are also there.
PS, so if I want to get the models of NPCs, how do I do that?
all the animations are in the NLA timeline
the release come with a little tutorial on how to do it
@true apex here more or less where you can find them
but to clarify, they are under the Battle Models Convert, under the Parent called Enemies
or Bosses
soon i will make a YT Tutorial on how to use the tool more in depth.... but the Help file it's pretty much good to know the basics on how to use it...
to clarify, the glTF Importer of Blender handles where animation sequence are dump, so in the moment that put everything into Blender, it's the glTF Importing Plugin which put everything there... anyway we can ask to the plugin creator if in a future will add a "most easy" way to sort the animation data.... but i fear it's the only and best way to do it...
i know there is a way to do it all in a single NLA, but I need to research more on that...
since some test i run, get me a single object moving and not everything...
Thank you so much
ok am i the only one having a slight problem selecting the "files" folder cause i keep clicking it and it keeps saying that it isnt the right folder
@wicked gulch
nevermind i got it to work
ahhh yeah... need to mention that you might selected and when you are "inside" the folder navigation, then you can pick it... weirdness of windows handling system on PyQt 🤔
i need to figure out a better way to do it...
because if you don't select that specific folder the tool won't work at all
i did that kind of "lock" to avoid users getting non-opening files errors... also i can track if a file is missing or change the placement of the unpacking in SC
hehehehe
Nice and nice lol
btw, how the tool is working for you?
It works good gotta figure out how t rotate the model when viewing the animation but it’s a learning curve
And of course figuring at the texture painting for the faces of course too
yep... that's a little issue, for camera control i use Ctrl+7 if i'm correct
yep that combination made the viewport of Blender going in bottom view, so you can see the model in front
also i recommend have this enabled
nice! enjoy! hehehe
soon i will start to record a new video talking about workflow with TLoD Assets Manager...
and some in Blender
but more in depth
will be a long video... i think would be a 1 hour or more tutorial... but will comprehend everything 👌🏻
But it would help
@sterile lantern hey mate, are you around?... which version of OpenGL will you recommend to be used for my tool?... will 3.3 will work good enough? SC it's using that one?
Yeah, 3.3 core
excellent, thanks!
Hey @wicked gulch is there a reason it won’t create the dragoon textures now?
i'm not quite understand
have you selected the Texture Convert enabled?
Do you encounter this issue with every model/texture or is it only some models/textures?
It’s done that on charecters and it did it on the menu ones I have used it for bosses and npcs yet
let me check... seems to be something related to threading
since the window have not to keep hang
when was your latest SC Version?
and your last file unpacking?
maybe you should try to download the last SC Dev Build
and unpacking the files again
since RB 2.1 i think is not supported (because the file structure from 2.1 to the current dev build are dramatically different)
Will try that when I get home, i downloaded SC like a few months back so whatever that build was
ahhhhhh maybe it's that... i should warn users to use the latest version of SC all the time (including dev builds)
that's why i keep track of SC changes and always bother Monoxide with the file structure question hahahaha
anyway if some of you using MacOs, please tell me if everything goes right...
supposedly, PyQt6 it's cross platform... but one never knows 
anyway, supposedly when i do stuff in threads, the rest of windows should keep active (not freeze) so that's a bug... a very nasty one hahahaha
Yea I’ll try it when I get home from will update when I do
ok so i downloaded the lastest pre-release build nad reput in the asset manager and now i get this
@wicked gulch are you handling spaces in paths properly?
hmmmm i should recheck that...
hmmm
in my case work
actually i made things work in a way that having spaces or other characters to split paths are not a problem...
while the OS could handle, my tool should...
because i'm using all the Python utils for it...
(actually this time i didn't write anything by hand in that case hehehe)
now the question is... maybe it's something related to cd /d in Windows?
nop...
changing disk in which you operating it's the same... work...
hmmmm
even i'm writing in the root of the disk
could you describe me what you do until get that error?
🤔 ... i tried multiple nesting of folders and works
Rmartin691 was using batch mode in that moment
and held at 28% which is even weird hehehe
Yes it was a batch model with textures
That’s the only thing I did
But the error shows up to when doing single models as well
with textures enabled?
maybe it's an error in some of the texture creating
no problem mate... i also was a little out this last times because of RL
i'm pretty sure that this a lame answer of me... but i cannot get the crash reply on my end 🥲
are you sure that you didn't run of disk space while converting?
or Antivirus didn't block the tool?
i work a lot on my new laptop with this tool
and had to tell to Norton to stop being a asshole... anytime i run anything trying to block lol
by chance the "free subscription" they gave as warranty, ended, so installed Panda and at least bother way less lol
I have my Norton set to run it all times
with the same folder structure
Cause it did prompt me the first time
And not a lame answer if it’s only happening to me lol
will block anything that consumes more than 10% of any resources, even if you are not playing any game
also tested on Win11 and Win10 and have no problems on it...
hmmm
but most of the times that error it's because path to the file while converting is not the correct (while writing)
Should I try changing the location space?
try with underscore instead of spaces...
A common cause of "access denied" errors is trying to create a file with the same name as a folder that already exists
Or vice versa
Completely wrong name for the error, but it is what it is
yep... but i did the same file dump location and had nothing... and for some reason in my end can't replicate it...
even... the only texture i have with a very special handling it's the Base Texture at DRGN21/2
HAHAHAHAA
wth???
for some reason the spaces in my dump path are collapsed and have no spaces...
wth?
well i find a very dumb bug i was generating... for some reason i get rid of spaces in folder paths...
i'm not only dumb
but also a stupid...
anyhow this is only noticeable if you close the tool and re open it
so while you do the things, only will create a new folder...
without any spaces
and dumping in there
so it's a bug...
but not a breaking one
find the bug finally
unrelated to the bug i mention hahaha
it's the "special handling" texture for DRGN21/2
lol so bringing this up found another bug?
😂🤣
hahahaha
{'Name': '16 Treasures Containers', 'Model': {'Format': 'TMD_Standard', 'Path': ' D:\\TLoD_Modding\\Severed_Chains\\files\\SECT\\DRGN21.BIN/\\1'}, 'PassiveAnims': {'Format': 'SAF_CContainer', 'Path': 'None', 'Files': []}, 'AttackAnims': {'Format': 'SAF_CContainer', 'Path': 'None', 'Files': 'None'}, 'FolderNesting': ['DRGN21', 'Base', 'General_Submaps_Objects', 'Objects', '16 Treasures Containers'], 'Texture': {'Format': 'TIM', 'Path': ' D:\\TLoD_Modding\\Severed_Chains\\files\\SECT\\', 'Files': ['DRGN21.BIN/2']}, 'Debug': {'TMDReport': True, 'PrimPerObj': True, 'PrimData': False}}
Why are there a nunch of spaces?
for some reason the model path is totally broken in this case
BINGO
What is nunch lol
When I get home I’m just gonna try models and see if it’ll go thru with out crashing
oki doki... anyhow i think i will pull a hotfix...
since this was a very unexpected bug that make my tool break under certain conditions
well fixed one part of the bug
the other fixed itself lol
a totally unrelated bug fixed another
the magic of programming lol
Well
Shit
@wicked gulch ok so after playing around with the asset manager found out that it start with that critical error when i try to get models and textures on DRGN22
sorry i was a little out lately... now i came back...
i will look into it... can you describe me what you do step by step to get the critical?
Let me get home in the next 10 mins and I can do a full detail
anytime you can!... 💪🏻
meanwhile i will do a little inspection on the code and the tool looking if i broke something more hehehe
lol
most of the problems seems to come from the spaces in folders names... that's because in some cases Windows and Python hooks do not handle them properly...
somehow i tried to solve, but instead seems that this solving get it worst hahaha
needs more %20
hahahahahaha
i think the problem comes from the thing i said prior, if you look closely in the paths from CONFIG you'll see that all the spaces in the folders names are supressed, i already solve it, so i will push* a hotfix right now and see if it works properly
for some reason i write in my code doing the things backwards that was intended (seems to be sleepy in that time)
and since i don't use spaces for folder or file names (because i had several problems in Windows CMD years ago) i stop using spaces...
also the ñ
and the ''
sometimes stuff break very easy in Windows file management system and services hahahah
hahahaha thanks!... thanks to all of you that cares and work with it!.... get me on mood to continue working on this! 💪🏻
this tool is amazing and fun
and will get more fun, when i add the preview window but also in a future adding the sound converting... hope to find a proper way to handle the music loop and also the pre-recorded sounds
im more excited about the magic cause i have an idea lol
the DEFF converter also will add a very good starting point for modders to create their own DEFF files...
that is the one i want cause my ideas involves using it on Rose and Shana with a purpose lol
i said it in the mod requests thread but i always imagined the ending would be Dart reclaiming the Red Eyed Dragoon Spirit and Shana inheriting the Dark Dragoon spirit 🤩
that's sounds really nice!
an alternative ending! i love that kind of multiverse modding scenarios
Right though
Fixing a tool breaking bug, which suppress spaces between folder names for the CONFIG options, this made tool instantly crash when trying to convert anything. Also fix some little Database name err...
Released!
always credit the people who help me! hehehe
ok curious question going thru the model files has anyone found the models for the Moon Dagger and Moon Mirror
Not individually. It may be mapped in the File Mapping doc? Not sure. I just know how to embiggen things in-game. If you go to the scene right before battle with Lloyd II, all three objects are present and you can enlarge/rotate/move them with the debugger to get a better look.
thanks
search for them in the mapping doc
also with my tool you will find the SubMaps in which they appear
so you can convert them
in a future i will add the "SubMap Objects Conversion" which will take all the SubMap Models as in Battle Model conversion
each time Monoxide check my code for some reason
hahahaha
I too am in this picture you are not alone!
so i will have to make a sad announcement... i will continue with the DEFF Conversion... but sadly i cannot guarantee ANY fidelity to the original DEFF files, so much of the things will be hand made, more context in here #⛓️💥severed-chains message , after consulting the experts in the matter... i can say that in this time it's almost impossible do things near 90% to the original-retail files...
Pull @earnest trout in, I'm sure there will be instant results. 😆
(Being serious, do you have any thoughts or insight that can solve this?)
hmmm the biggest problem comes that DEFF Scripts are very different from Battle and SubMap Scripts...
No, it's not possible to tell how long code is going to take by looking at it
It's like me asking how many milliseconds your drive to work will take
There are way too many variables
and to be honest i did like 100 loops on them... until i was exhausted and said "well let's count the time in the Effect Animation time, then apply a delta value to change from recorded 60fps to 20 fps and then calculate the Frames for total animation"
keying the value of each object timing it's easier with a "total frame count"
Forgive me, I don't understand. I wasn't trying to ask how long something would take.
The accuracy of the DEFFs being extracted relates to how long the tool takes to extract it?
How long the DEFFs are
Ah, I had a different impression of how it worked. My bad.
Basically the only way to tell how long it's going to take in engine is to run it in engine
and the main problem is... not always will take the same exact time
sometimes will be 250 frames, other times 310, in some cases 278
I do have an idea for you, but you'll have to edit SC code
tell me...
You could modify the particle engine code to basically write out a flight log
Make it dump each particle's state each frame
Then you take that log as a configuration
Like what I did with the TMD texture dumper that automatically applies CLUTs
And the background dumper that automatically stitches things together in the right spot
sounds good... also with this I will polish my Java coding too... last time coded something in Java was like 1 year ago more or less...
I am 99% sure this is not only your best option but your only option
i thought the same
i was hoping that finally i will get some kind of shortcut for this... but this is not the case... so brute force will win this fight... sorry DEX and INT enjoyers...
(only in DS1, since in DS3 it's DEX DMG Output is crazyness)
I see. I thought it was just the accuracy of static objects being exported/converted.
not like, an animation
Is this about spell effect RNG? If so, that makes more sense to me. For example, Dancing Ray's visual effects are not the same with each successive cast. Similarly, Black Rain's sound effects will vary a bit.
actually the good news is... some of the models have their animation (SAF, CMB, LMBn) so that also will be part of the final timing calculation... the calculation error for this is around 90%...
or is it separate from that?
it's separate... it's more about "what engine is doing at THIS time + what the running PC/Emu/PSX" is doing... the position variation will be added as part of a Particle Random Generator i've already made
for example this
RNG is one thing, but also asset loading time is nondeterministic
understood, this will greatly help me grasp the issue lol.
btw that animation i show it's totally random... each object is calculating Start position, Radius and acceleration in a total random way hehehehe
Time to write our own particle system
anyway i'm open to more ideas to solve this issue so Senerio don't get out of here!
hahahaha
Listen
If I can help I'll try my best to
But I have to understand wtf I'm working on to do so
and so far
well
i will put you in context...
TLoD have a unique way to work with Effects, Particles and anything that is related to Special Visual Effects
some of the stuff is partially written in the Engine code... the other pieces are in the Scripts from the Effects...
this Scripts are unique for each DEFF File... a DEFF File is a file which contains some 3D Models, Animations and Texture Configuration for the effects...
so the name stands surely from Dragoon EFFects
Engine take the Script + DEFF and in REAL TIME process it... to make the Animation Output...
so we can say this
DEFF are the "3D Scene", while Script is that... a Script that tells the Engine properties of this Scene, like Objects position, scale, type of Particle or Model and others...
the only problem is... Scripts have no "time" written... this means that a DEFF could be playing indefinitely until your PC/Console will explode
DEFF is an archive* it contains the script, models, etc
It's like the whole package
sorry that 👆🏻 (sorry Senerio i'm Argentinian... so i forget some expressions hahaha)
How dare you !
I'm french and said "squatch some bugs" instead of "squash" at work last week and they laughed at me so I can relate
Although I knew it was squash, my brain is just slow in the morning and I mispeak sometimes
Anyway back on topic
I sorta understand the setting and the thing that we're trying to do
We're trying to put parameters on effects so that they essentially become constant/reliable
Doom has a python tool to convert 3D models and textures
This is an extension to that
which would need some part of SC Java to be modified
yep...
also tbh i'm not so skilled in Java than in Python (to write code)
for some reason i can read Java perfectly but each time i want to write something i burn my PC down lol
It's my first week in Java too !
nice!
JkNotActuallyALineParticle Monoxide... please never change! xD.. WhyIsThereANoParticle but still count stuff
just need to make sure you put the brackets on the same line of if, else, and any other instructions like that 

best depiction ever!
For having seen and coded a bit of Python
Lucky for me I have no stake in the game, haha. Water forever.
Hated it with all my heart
Who in their right mind
Woke up one day
and decided
"You know what, let's make it so indentations matter"
me hahahaha
the sorting visually also helps lol
Anyway, while I understand the idea, I'm not sure if I could be of any help
You still indent in other languages
It's actually insane to make whitespace important to the code
but need to add ; which is shift + . instead of simply pressing the biggest and used key from the keyboard the enter... while some years ago with the IDE was a problem, now the indentation is automatic hehehe
Not on english keyboards 😛
gottem
It's the key to the right of L
We don't have a wiggly N key
hahahahahahahaa
back to the topic... i love that you already put names for the Particles... as instances... this make some kind of classification easy to track on...
I just did that a couple weeks ago
Do you know where to look in code? I can have a gander
I split all 64 particle types into classes
thanks a lot for that...
@earnest trout what I'm suggesting doom do is add a temporary modification to SC to dump particles that are currently running, frame by frame, into a file that his tool can use
Oh I see
So you just want to scrape one loop of an effect
get the data from it
and then use that data to clone the effect exactly in 3D
yep exactly... and after have some of the data i can track where and when are used...
ok that's not as bad then
so long as I know where the data and handles are
I did the same with battle camera angles yesterday. Although it probably was a lot easier
well if i recall... i think per DEFF are called 2 or 3 methods... which are used for rendering...
one of them is controlling the camera movement...
is it all in SEffe
yep
the methods which have script decorator are pretty much all of them in there...
and kind of branches depending on the Engine current state
Well, the particle engine is split into classes
ParticleManager and like 70 other classes
gulp
hahahaha Monoxide said "possible" never "easy" hahahaha
renderType = particleTypeId >> 20; this is one of the biggest entrypoints
What are you looking to know about each effect
the time at which a particle starts, ends, the position on each frame...?
well generated "on the fly" particles and static particles... timing
position it's something that we already have written in the Script files...
Position, Rotation and Scale are present in the Script File... using a relative calculation based on the "main" Object that are attached to...
if all particles get funneled to a final method that renders them, it simplifies the job I think
indeed... that's how i tracked most of them...
for Dart Dragoon Transform took me around 1 or 2 days looking into the code until get more or less how it goes...
There are 6 renderers
it's awesome to think that developers ever get lost in this...
You get lost if you didn't write it haha
ok well
if we can find all 6 renderers, it will probably not be too hard from there
Each renderer has its own class
this renders are present below here...
final ParticleEffectData98 particle = switch(renderType) {
case 0 -> new QuadParticle(this, parentBobj, new ParticleEffectData98Inner24((short)_10, (short)_14, (short)_18 / (float)0x100, innerStuff, behaviourType), renderType, particleCount);
case 1 -> new TmdParticle(this, parentBobj, new ParticleEffectData98Inner24((short)_10, (short)_14, (short)_18 / (float)0x100, innerStuff, behaviourType), renderType, particleCount);
case 2 -> new LineParticle(this, parentBobj, new ParticleEffectData98Inner24((short)_10, (short)_14, (short)_18 / (float)0x100, innerStuff, behaviourType), renderType, particleCount);
case 3 -> new PixelParticle(this, parentBobj, new ParticleEffectData98Inner24((short)_10, (short)_14, (short)_18 / (float)0x100, innerStuff, behaviourType), renderType, particleCount);
case 4 -> new JkNotActuallyALineParticle(this, parentBobj, new ParticleEffectData98Inner24((short)_10, (short)_14, (short)_18 / (float)0x100, innerStuff, behaviourType), renderType, particleCount);
case 5 -> new WhyIsThereANoParticle(this, parentBobj, new ParticleEffectData98Inner24((short)_10, (short)_14, (short)_18 / (float)0x100, innerStuff, behaviourType), renderType, particleCount);
default -> throw new RuntimeException("Invalid particle type");
};
in ParticleManager.java
yeah... they have a Line Particle that actually is not a line but other stuff...
and also a "blank" particle
which count particles and do some stuff... but is ever shown in the final render 🤷🏻♂️
The second line particle renderer has no render code
Same for the last one
They might have had renderers at some point but the render code was removed
so I guess we can ignore those
QuadParticles are generated on the fly
TmdParticles are 3D Models which are loaded and Animated on the fly
LineParticle is a Line draw and animatated on the fly
PixelParticle are just that a Pixel that made as particle (we can say a kind of blocky dot)
which ones do you need info about
all of them
since no one had the Animation file to describe their timing...
the animation for them is easy to do... the main problem comes from the Frame-Timing to start them and the Frame-Timing to end them
ok... let me try to first figure out how to output the logs
Thanks a lot... meanwhile i will be checking some of the code
// This is super bugged in retail and passes garbage as the last 3 params to both methods. // Hopefully this is fine with them all zeroed. This is used for the Glare's bewitching attack.
like this
pretty sure that Devs made a mistake on trying to get the ray parallel to the ground...
but also is a rotating cylinder
which is more annoying since you have to use all the time tg function to calculate the correct position of each vertex during animation...
Do you know where is the start of an effect
what a good question let me find out
scriptAllocateParticleEffect
Are we creating a new ParticleManager each time
You can just look for references to ParticleManager
in the render... when it's not used anymore
let's see
It's when the effect deallocates itself
that makes a lot of sense
so the script get allocated, the script allocate the particles, particles are used, then deallocated and finally the script is deallocated
more or less that's the workflow...
in middle of allocation of objects could occur pausing times, adding more particles or Non-Particles effects
like the fading to black, "hyper glowing", etc
which are effects related to Camera Control
hold on hold on, still trying to find the deallocate call 😆
sorry i got excited hehehehe
I'm still just a fledgling in this code base
anyhow... i will say this Senerio... take your time.. there is no hurry... guys in here can tell that sometimes i get a little "river blocked" until suddenly push a 3k code from nowhere and did what i wanted to hahahaa
This looks like something
yep... some of the particles use lifespan for setting up...
you can see here more or less what i've tracked already
static models particles and generated particles had that value written in the script file...
main models (since much of them are the characters) have their own frame count already in their animation...
but the start of the particle rendering (appearing in the rendered scene) seems to be not written
So when we say "Effect" in scriptAllocateParticleEffect, is it the whole sequence, or each effect in a let's say, magic attack are getting allocated
yep... it allocate all the script for that Effect
so if I use a magic item, it's called only once?
yep... until the effect is finished... and then deallocate all the script
it's better if you use as example Dragoon Transformations
do you know where the deallocate is cries
well if i'm correct once the lifespan exceeds it time... just get self deallocated... i don't know if i'm correct 🤔
normally in a Particle System is how it works
tickLifespanAttachment here there is a method that ticks remaining time for lifespan
Adds a lifespan attachment to an effect that deallocates the effect after a certain number of ticks -> scriptAddLifespanAttachment() as i thought
That's what I'm trying to get but 18 frames for a dragoon transform is pretty not it
🤣
unsure how to calculate frames
do you even want it in frames?
yep... but you could add something like "global frames"
no matter the number... since is a distance to get compare from the start to the end of animation
yeah I know
but I just don't know where the ++ goes
Where is the "next frame" processed
i think that depends on the tick more than in the frame
maybe at the end of the last part of the code, when the effect is already rendering that particle...
Still comes out at 18
Yeah unsure of what it exactly represents
in this case
tick...
because is running through the battleTick()
so tick 18 times in the rendering...
I also tried in renderSkyBox()
Was still 18
You'd think the skybox is rendered more times than 18 times in like 5 seconds
but it's tick if "active" or not...
so in 5 seconds you got 18 ticks for a Battle Scenario ticking
that tick/heartbeat is checking what's alive in the scene... and what's not...
so is that of any value to you then?
maybe we need the number of ticks compared to frames?
well i gotta go to do some errands...
anyway don't overthink too much or will happen as to me... you'll get river blocked... let it flow... maybe tomorrow we will have some answer
Night Raid
Dragoon Transform
Dont know if any of it is really useful
Would be cool if I could also identify the particle
There's a countFramesRendered_52 on each partileEffectData
still comes out at 18
My brain not big enough to comprehend what that number is
18 should be the Frame rate.... each second get a 18 frames rendered...
A script can also just deallocate itself at any time
Or it can be deallocated by another script
so it's quite random too lol
Well, it's not random, but you can't assume it'll use a lifespan attachment
Just put some code in the effect's destructor
so we can catch if a destructor get rid of the effect before the lifespan cycle ends... make sense
No, the destructor will be called when it's deallocated
so first came deallocation and then destructor...
/** Deallocates child and assumes its identity? */ this comment on ScriptState.java->consumeChild() is not a kind of replacing the current Script on Execution?
thanks!
so... "Scripts could start their execution at any point of the code, no matter what it is... while the Engine could recognise the values and pass them to continue the program flow"...
how correct is that statement?
I'm not sure what you mean by "the engine could recognise the values and pass them"
if the engine is programmed to process a certain value as a "key" value for taking an action about... for example value 1 means executeThisMethod()
and you pass 1, will be executing that method
well it's weird... in my second attempt to do the frame calculation i got 300 frames approximately of Animation in Dart Transform, but in the mov 0xnn, stor[25] i got in sum 309... pretty interesting
Scripts aren't necessarily linear
The same wait could run 10 times or not at all
the more i know about those files and type of programming... the less i understand... sorry hahahaha
I mean, virtual machines are really not an entry level topic 😆
deterministic or non deterministic.... that is the question
well i make up my mind... i will point to a very frame by frame approximation of the animations... also since glTF 2.0 (or any interchange format) can't support object hiding property when imported to Blender (and i don't want to code one) i will do another approach to that... setting the "hidden objects" to scale near to 0, this way we can kind of keyframe that... and anyone interested into a more "realistic" approach could follow the timestamp of scalling from near 0 -> 1 (when the object will sudden will pop into it's form). Sorry but it's the most approximate thing i could do...
btw and with no reason... i speed run into Oddworld: New 'n' Tasty... damn, that game want to be speedrun'ed hahahaha
when i'm saying "frame by frame" i want to say... i will check each animation at 20~15fps and based on the calc of the current frame passing i will write that as the "starting" or "ending" of an object animation
also that will be a big issue... since frame speed is not constant in TLoD DEFF rendering...
too much to do... and so little coffee to drink that i'm a little worried hahaha
doing this method... bring me that i have 300 frames in animation lol
this frame is cursed lol
Why do you need to do this anyway? I am guessing the animations are stored in a sequence with no clear delineation?
Or are you basically labeling some frames as keyframes to allow for better interpolation?
Well pretty much is that we don't have a clear time stamp on the Script files or Animations when it have to start or end... making impredictible to know in which exact frame will be an effect being rendered... so what i'm doing is comparing some data i get from the files + a 20FPS dump frame by frame of the animation... and doing more or less the notation based on that... not the best way... but will do the trick
Oh.. that sounds... painful
🫡
Now i understand why Monoxide said some time ago (like two years) that DEFF seems to have a something similar to a playback function.... actually the first pair (number 0) of Transforms from CMB seems to be the End of Animation... and the next transform (would be the number 1) is the actual "starting point" of the Animation during the rendering... lol
So animations could be endlessly looping if required...
maybe it's something related on how the DEFF and their scripts are programmed
Dart Start Anim - Transform 0
Dart Transform number 1
Dart End Transform
this made the animation seamless for Animation looping... specially if you don't know how much time exactly you need for put something in the scene and get render
this is good specially for animations which have interaction with the user.... because you ever know when you need to finish the animation suddenly but you need to "finish" the animation state
Looping is essential for dialog scenes with the party. For example, Meru will continue her foot-stomping animation until the player advances the text box.
which is a good example of interaction... but Script from SubMaps are very different to the Scripts for DEFF or at least Monoxide state that... anyhow the principle is the same 💪🏻
it's always interesting to me how integral looping can be. It's not just for music tracks, but also model animations as well as UV texture scrolling. Even dialog, if an NPC is repeating a line in the background without player interaction.
understanding the mechanics of the Engine is something fundamental... specially for advanced modding that is the port what are we pointing after several Monoxide discoveries... also this technique help Developers to check if animations are correct for running, walking, or even reacting to the environment with actions...
most of the animations (except for the In-Battle CutScenes) are looping
but the way they manage that looping seems to be quite different... which also is interesting... since is telling us two things... first: this is why developers used different renderers and methods to process scenes. Second: intentions. While a SubMap model could be easily check on game, for Battle was a different matter, so they do this way to make animation cancel more precise and less clunky.
The difference with the battle animations and regular animations is that you can pass in a tick value
For everything else, animations start at the beginning
i mean in the animation file...
hmmm which is the idea about passing that tick value
what it does?
Lets you start an animation at any point instead of starting at the beginning
now make more sense...
well my honest comment about something
shoot... i'm the Tolkien of coding hahaha
as Uncle Bob said "your code is telling a story".... well my "story" is about despair and doom
🤣
check on this
this is the first try on serious DEFF Script to CSV Script for reassembling DEFF on my tool
the 0, N, N N is a number that i have to convert because Script dump do it in the Hex fashion... while i expect a number... that would take a little time but i will convert it anyway
i will keep the data as dump from the Script Recompiler... and instead of being lazy and dumb i wrote a little code in my tool that convert that hex string into signed integers...
as a note for anyone interested... in a very far future i will add the Camera controls into the DEFF conversion parameters... since Camera movement as an object could be added into the glTF 2.0 format...
sincerely i don't do it right now, just because i only know 30% of what is doing Scripts with Cameras... and also their methods inside SC... i saw a lot of them... i mean A LOT
Nice
something that i'm doing right now is rewriting some parts of the old "test" code i had to convert DEFF... previously i was using the Discriminator did by Monoxide for SC, now -since i'm using CSV with more data in it- i directly tell the tool what have to do with each file... since i can add that data as part of the database... in other words i'm doing a full mapping of the DEFF files involuntary lol
and have to say something... Scripts are ASS
ASS -> Assembly System Source
StaticTMD, AnimatedTMD-SAF, AnimatedTMD-CMB, AnimatedTMD-LMB0, ParticleFile, GeneratedParticle, SAF, CMB, LMB0, LMB1, LMB2 this are the files types present in DEFF... well Generated Particles actually not a file... but anyhow... hehehe
That smiling lavitz is still so creepy
now... that i'm thinking... my tool work as a Necrophagist song... you can't believe that is in total lack of harmony but still do it's thing lol
re-introduce me into LMB animations always had a side effect sorry hahahaa
writing code in hangover is something difficult lol
Thought id share this little bit of fun im having lol since i found these tools thanks @wicked gulch cause otherwise i wouldnt have learned how to start this lol
Shana entering her goth era
Hell yeah!
Figuring where the texture placements go has really been a fun lesson
wow!!! awesome Robbie!... looks that you made a good progress in there... ❤️
that's some excellent stuff, Robbie!
awesome work!...
@wicked gulch does your tool export textures? Could import that into SC
hmmm you mean actually getting a file conversor into SC?
ahhhh
you mean if my tool is capable of export textures into TIM...
sorry but not... 🥲
i wanted to do something like that
but find out that user sometimes could be something complex...
so i ended to give up until being more experienced as programmer
hahahaha
anyway there are some tools that using a win98 inside a virtual machine could create new TIMs
i wonder why ever someone did a proper TIM Exporter...
btw... something that i can't figure out is why in TIM format 4-bit, even if support 64 CLUT, in TLoD Devs ever used more than 18
those questions also are preventing to me doing new tools 🤔 ... must be a reason but my mind can't catch it...
4 bits can only hold 16 different values
Maximum number of cluts is 16
You'd need 6-bit colour for 64 cluts
ahh so i was understanding the format very bad lol
and why tools like TimViewer shown 64 sets?
and is not the only one...
PSicture did the same
Who knows
the number of palettes are 64... but the calculation is also done like that lol
I guarantee each pixel and only reference up to 16 palettes
That's why Lenus is broken
which this is good to know...
because she's 18
Yeah
well this is good to know... so i can write a TIM conversion tool
which support maximum 16 palettes...
please can you pin* the 16 palette comment you did?
maybe it's time to write a proper one
Hey man, some of us were perfectly well-adjusted as teenagers
hahahahaha
at that age i was missigno lol
my CLUT adjusted when i got into the 24... XD
If you're going to write a tool to convert images to cluts you'll have to write a quantizer
Which is very hard to do well
You'd be better off requiring users to convert their files into a format that already uses indexed colour like gif and then converting that
that's the idea...
Then you can let photoshop or whatever do the quantization for you
yep thought in that and seems to be the best way to do things...
Wish there was a way for it to just do one texture paint but that would just be to easy lol
hahahahaa
actually is possible... but need to do some workaround with SC in the code... also need some rewritten in the Faces configurations in the TMD Models
glTF DEFF: this module will take the DEFF converted data, and re-arrage for later being converted into glTF Files. I redo this module specially to handle DEFF format, since DEFF is a 'Complete Scene' rather than a 'Single Model'. Also in a future will add the Camera Control here too, so in the module previously written would need A LOT of refactor, just to convert a single model and then adapt everything to convert DEFF.
this is the first comment on my glTF DEFF Converter... i think it's the best to describe what's going on...
Curious question about the tool, why does the charecter and boss models download already set up but the monster one we have to put together?
Enemies Animations are not working?
They come in like this
show me...
this is not normal
which model is
ahh
the Merman
let me check
well in my end is ok
its weird everyone else is find but the enemies are the only ones that come like that and no animation
hmmm
also havent tried since you gave that hotfix last time lol
try to convert it again... but be sure of having all the animation conversion enabled
ahhh maybe was that
will do
anyhow thanks to report me this
now... i find something more and more weird
now models are in the correct (non-game-engine) spatial orientation
lol why is it everytime i point out a small thing you find something i didnt see lol
instead of X(width), Y(height), Z(depth) in Blender 4.2.1 are shown as X(Width), Y(Depth), Z(Height)
oh my
because you try stuff that surely other people don't...
You're the worst person to test your own code
Cause you'll use it in the same way you wrote it to work
also... because i do whatever I expect the code to do...
lol me im just mindlessly learning and trying lol
which is the best way...
if i told you everything... not only you'll get bored and sleepy... but also i will be implanting a workflow that maybe is not the one that fits you
So Robbie... be happy... it's the way i learn to do things too...
oh i am happy
and i love trial and error
yall need someone to test something i guess im the guy for it lol
also you are giving a very big hand to me... it a very good feedback... also i'm planning having this first DEFF conversion prototype soon... surely i will ask you to test it...
anyhow atm i have only one DEFF to Convert hahaha
getting the Data and adapt it without the Script Engine is a very long way
I can’t wait for DEFF to really fuck with the dragons and spells 😈😈😈
you'll be pleased for sure!
hehehe cant wait specially playing with the idea of a Dark Dragoon Shana
maybe one day i can take a crack at game coding lol
yeah... something that can tell you.. if you have a clear purpose (a project or something that give you some impulse), go for it... also don't be mad if things a little complex... everything is a learning, I'm sure and very confident to say that even Monoxide -a person who everyone here consider as a top-, day by day is learning something new...
ahh that.... maybe Blender permit to do the rotation if you select all the objects and all the keyframes...
if i'm correct should work... if not... it's because of how the orientation of Axis works... in 3D Software is: X(Width), Y(Depth), Z(Height) ; while in games is: X(width), Y(height), Z(depth)
and Blender can't do a full rotation applied to origin points if the origin point is not set by default already in the model
im able to rotate them fine but if i run the animation it goes back to be upside down lol its kind of funny actually
ahhhh hahaha
that's because you need to set Keyframe by Keyframe the new Transforms
you need to select the correct keyframe in the timeline and rotate the objects... once you do it... need to set (overwrite) this new keyframe... if i'm correct was the I or K key
once done... should do the trick...
aww
but always select the exact keyframe or will look weird
this will be fun now that i got something new to try lol
at last it will be tried tomorrow as its late and must sleep soon for work
IMPORTANT NOTICE TO EVERYONE HERE!!:
Maybe i will move the support of my tools again to 4.1 * if not rollback even more to 3.6*.
Why?, well because seems that are several problems RELATED to Blender (i mean a lot, freeze, lag, crashes) that are pointing directly to EEVEE Next Engine... and since is the "main" way to Viewport rendering you will be lagging or crashing even with very simple scenes (something that happened a lot lately to me). I don't think much people here could run a Cycles Viewport Rendering even with the most basic options enabled, since Cycles is designed to be used in High budget PCs.
also... i want to start a discussion over some naming on my tool, the Parents i think are working good... but had some doubts about naming some of the In-Battle CutScenes
this are the current ones... but not 100% sure that are the correct... seems that the word "Death" appears a lot... i know, i know, I'm an Death Metal enthusiast but don't want to be repetitive hehehe
To be fair, we do kill a lot of things
so i keep my Death Metal approach... i take note of this xD
@wicked gulch almost every battle cutscene involves sorrow, yes.
so, TLoD is the DOOM of JRPGs hahahaha
Still refactoring some of the Particle Simulation code... since i want to keep it as simple and elegant as possible... just find out that i will do a full animation approach for DEFF... to keep Models kind of "hidden" in the moments that are not used in Scene, so for that i have to animate from start to end of animation... and only be in it's position/rot/scale != 0 while [showIsTrue]
well the Scale 0 theory is working 100% in my test so this will be the key to "hide" objects
the most i refactor... the most i see my own code... i figure out how a bad programmer i am hahahaha
Need to fix a Quaternion Calc... since is rotating the models in a very odd way!...
