#List of useful tools to Convert Assets (3D and 2D)

1 messages · Page 2 of 1

sterile lantern
#

Thats your two triangles

wicked gulch
#

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

sterile lantern
#

Well, the order is different, but that's it

#

It's 2 1 0 1 2 3

wicked gulch
#

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...

sterile lantern
#

RGB gamer torso

wicked gulch
#

hahahahahaha... this way you get more fps during rendering lol

wicked gulch
#

@true apex New update for the exe version of the GUI Tool available!... sorry for the delay but RL sometimes can't help hehehe

true apex
#

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

wicked gulch
#

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

sterile lantern
#

What did I do

wicked gulch
#

the change in the texture placement... i wondered why you change texture and sound.... but the models are still in the same place xD

wicked gulch
# sterile lantern What did I do

i would reformulate as a question, Monoxide, you plan to move the Enemies and Bosses models into the same folders as Texture and Sounds?

sterile lantern
#

Probably

#

I wasn't the one that moved the textures and sounds and I don't remember what was done

wicked gulch
#

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

wicked gulch
#

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)

wicked gulch
#

seriously that code i made... was a real shit hahaha

true apex
wicked gulch
#

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

true apex
#

ooh cant wait

wicked gulch
#

New version of TLoD Texture Converter Released!!

#

i hope this works fine for everyone!

true apex
#

oooh

wicked gulch
#

tell me if it works well

true apex
#

When I get home from work I will

true apex
wicked gulch
#

excellent

wicked gulch
#

Improved a lot the code in just 4 hours... i'm kinda inspired hahaha

wicked gulch
#

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

true apex
#

@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

wicked gulch
#

the DEFF are archives that holds the Dragoon EFFects

#

which are the spells

wicked gulch
#

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

wicked gulch
#

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

wicked gulch
#

Found a Bug!: TLoD Texture Converter have problems in the Advanced Conversion when converting PXL files

wicked gulch
#

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

true apex
#

I can’t wait to try this tool out

wicked gulch
#

i thought Lavitz was taller... like 1,90....

wicked gulch
#

to any person curious i used the heights described in one of the TLoD Guides from Japan

true apex
#

I would of thought he was taller too

junior mantle
#

short king

wicked gulch
#

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:

true apex
#

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

wicked gulch
#

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

true apex
#

Will give this a try

wicked gulch
#

I'm da god of Destruction!... LaShaDa!!... behold and knee before my merged power!

wicked gulch
#

FUCK YEAAAAAAAAAH!!!! @sterile lantern

sterile lantern
#

I'm not sure what I'm looking at 😆

wicked gulch
#

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

sterile lantern
#

Ah, nice work

wicked gulch
#

thanks!... now i will continue doing some improvements over this until i get something usable!

wicked gulch
#

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.

wicked gulch
#

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

wicked gulch
#

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"

true apex
wicked gulch
#

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

wicked gulch
#

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...

true apex
#

Through the new tool you’re working on?

wicked gulch
#

yep exactly!

wicked gulch
#

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

wicked gulch
#

sorry but i slept 3 hours in the last 4 days

#

at much

#

hahaha

wicked gulch
#

maybe i should adjust the animation frame factor

#

but it's pretty solid how it works

#

commander with all the passive animations

sterile lantern
#

Nice, that's looking good

round shadow
#

Seriously, the improvements are really adding up. It's super impressive

forest saddle
#

Great work. Very impressive.

limber tundra
wicked gulch
#

thanks mates for the support! i hope get a good beta release soon!

wicked gulch
#

this is a good comment

sterile lantern
#

Me every time I look at any LOD code

wicked gulch
#

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...

sterile lantern
#

Why use two different roots instead of always using files?

wicked gulch
#

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

wicked gulch
wicked gulch
#

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

true apex
#

cant wait to use this converter

smoky flare
#

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

wicked gulch
#

select one of the shading views... the first one have no light interaction, the last one shows everything (light and shadows included)

smoky flare
#

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

true apex
wicked gulch
#

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

junior mantle
#

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

sterile lantern
#

I wrote a nightmare algorithm that does it

wicked gulch
junior mantle
#

are you accounting for the actual image pixels being 4 bits and colors 16?

wicked gulch
#

i'm not sure... i'm talking about the SubMap Cut Textures...

junior mantle
#

ah, the backgrounds?

wicked gulch
#

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

junior mantle
#

those are just 256-color CLUTs, so one single 512-byte CLUT, and the image data is 1 byte for each pixel

wicked gulch
#

thanks!

junior mantle
#

the actual bit shifting for the colors themselves is the same as the 4bpp textures

#

singe they're all 16bit

#

or 15+1alpha technically

wicked gulch
#

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

junior mantle
#

ha no, it's still indexed, just a bigger table

wicked gulch
#

anyone know what this means?

#

i get rid a memory leak happening... and the TLoD Assets Converter would be usable

junior mantle
#

you mean why one is duplicated? no idea

wicked gulch
#

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

wicked gulch
#

`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

smoky flare
#

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

limber tundra
sterile lantern
#

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

wicked gulch
# smoky flare Do we know why there are like 12 textures of each character? I get that they'd d...

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...

#

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

wicked gulch
#

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

sterile lantern
#

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

wicked gulch
#

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

sterile lantern
#

The dupes are still there in submaps but you could do a simple copy instead of reconverting the duplicated files

wicked gulch
#

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

wicked gulch
#

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

sterile lantern
#

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

wicked gulch
#

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").

sterile lantern
#

I don't understand why using branches in the main repo would be a problem

wicked gulch
#

is not...

#

ahh you mean to like "storing" everything in the TLoD Repo and nothing in my personal repo?

sterile lantern
#

Yeah, you're making it harder on yourself

wicked gulch
#

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...

sterile lantern
#

It shouldn't, you just clone and go

wicked gulch
#

hmmm also... i don't need you permission to do pulls into the repo of TLoD Modding?

sterile lantern
#

No

#

Not if you own the repo

wicked gulch
#

ahhhhh

#

i'm stupid sorry xD

wicked gulch
#

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...

sterile lantern
#

You probably need to include their license info in a document

wicked gulch
#

I want to keep this 108 % 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

wicked gulch
#

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

smoky flare
smoky flare
wicked gulch
#

yeah... sometimes have to be careful since Blender materials are a little "tricky" hehehehe

sterile lantern
#

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

wicked gulch
#

thanks i will work on it for the next release!

#

Line 91... hahahahaha that's a comment! hahhahaha

sterile lantern
#

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

wicked gulch
#

thanks a lot...

#

the bias step in the triangle rasterization... is important for 256*256 textures?

sterile lantern
#

Yes, it's unrelated to textures

#

It's part of rasterization

wicked gulch
#

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...

wicked gulch
#

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

forest saddle
#

Here are some pet ideas: scissorhands, unicorn, or the berserk mouse.

true apex
sterile lantern
#

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

smoky flare
#

What exactly did you want help with? Is it coding stuff?

sterile lantern
#

I just needed some info on how part of a model was configured but I got it sorted, thanks anyway

wicked gulch
wicked gulch
#

This is the name of my new tool lol

sterile lantern
#

same

wicked gulch
#

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

junior mantle
smoky flare
#

Who’s sword is that

wicked gulch
#

its Dart's Sword... the one used in the 'Lavitz lead the way' CutScene heheh

smoky flare
#

The hell? I thought he just had a basic sword this whole time…..

true apex
#

Seriousl i though so too

wicked gulch
#

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

smoky flare
#

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

wicked gulch
#

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... 🤷🏻‍♂️

forest saddle
#

The tool works great and is very easy to use. Thank you for all your hard work.

wicked gulch
#

thanks a lot to you for the speed feedback!

true apex
forest saddle
true apex
#

Oooooh nice

#

Can’t wait to play with this

smoky flare
#

PS, so if I want to get the models of NPCs, how do I do that?

wicked gulch
wicked gulch
wicked gulch
wicked gulch
#

or Bosses

wicked gulch
#

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...

wicked gulch
#

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...

smoky flare
#

Thank you so much

true apex
#

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

sterile lantern
#

@wicked gulch

true apex
#

nevermind i got it to work

wicked gulch
# true apex 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

true apex
#

Nice and nice lol

wicked gulch
true apex
#

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

wicked gulch
#

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

true apex
#

Will try when I get home thanks

#

Well back to my laptop since jm on vacation

wicked gulch
#

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 👌🏻

true apex
#

But it would help

wicked gulch
#

@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?

sterile lantern
#

Yeah, 3.3 core

wicked gulch
#

excellent, thanks!

true apex
#

Hey @wicked gulch is there a reason it won’t create the dragoon textures now?

wicked gulch
#

have you selected the Texture Convert enabled?

true apex
#

yes

#

its been popping up as a critical error now

forest saddle
#

Do you encounter this issue with every model/texture or is it only some models/textures?

true apex
#

It’s done that on charecters and it did it on the menu ones I have used it for bosses and npcs yet

wicked gulch
#

let me check... seems to be something related to threading

#

since the window have not to keep hang

wicked gulch
#

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)

true apex
#

Will try that when I get home, i downloaded SC like a few months back so whatever that build was

wicked gulch
#

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 ZombieShrug

wicked gulch
true apex
#

Yea I’ll try it when I get home from will update when I do

true apex
#

ok so i downloaded the lastest pre-release build nad reput in the asset manager and now i get this

sterile lantern
#

@wicked gulch are you handling spaces in paths properly?

wicked gulch
#

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

wicked gulch
# true apex

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

true apex
#

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

wicked gulch
#

with textures enabled?

true apex
#

Yes

#

Apologizing now if my replies end up a bit delayed at work right now lol

wicked gulch
#

maybe it's an error in some of the texture creating

wicked gulch
#

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

true apex
#

I have my Norton set to run it all times

wicked gulch
#

with the same folder structure

true apex
#

Cause it did prompt me the first time

wicked gulch
#

if not bothering it's good...

#

anyway sometimes if you have the "Norton for gamers"

true apex
wicked gulch
#

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)

true apex
#

Should I try changing the location space?

wicked gulch
#

try with underscore instead of spaces...

sterile lantern
#

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

wicked gulch
#

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

true apex
#

lol so bringing this up found another bug?

wicked gulch
#

yep hahahaha

#

thanks a lot Rmartin691! xD

true apex
#

😂🤣

wicked gulch
#

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}}

sterile lantern
#

Why are there a nunch of spaces?

wicked gulch
#

for some reason the model path is totally broken in this case

wicked gulch
true apex
#

What is nunch lol

#

When I get home I’m just gonna try models and see if it’ll go thru with out crashing

wicked gulch
#

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

wicked gulch
#

the other fixed itself lol

#

a totally unrelated bug fixed another

#

the magic of programming lol

true apex
#

Well
Shit

true apex
#

@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

wicked gulch
#

sorry i was a little out lately... now i came back...

wicked gulch
true apex
#

Let me get home in the next 10 mins and I can do a full detail

wicked gulch
#

anytime you can!... 💪🏻

#

meanwhile i will do a little inspection on the code and the tool looking if i broke something more hehehe

true apex
#

lol

wicked gulch
#

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

vestal halo
#

needs more %20

wicked gulch
#

hahahahahaha

true apex
#

lets see if i can send this screen record i just did

wicked gulch
#

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

true apex
#

stupid system breaks lol

#

still need to be applauded for creating this tool

wicked gulch
#

hahahaha thanks!... thanks to all of you that cares and work with it!.... get me on mood to continue working on this! 💪🏻

true apex
#

this tool is amazing and fun

wicked gulch
#

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

true apex
#

im more excited about the magic cause i have an idea lol

wicked gulch
#

the DEFF converter also will add a very good starting point for modders to create their own DEFF files...

true apex
#

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 🤩

wicked gulch
#

that's sounds really nice!

#

an alternative ending! i love that kind of multiverse modding scenarios

true apex
#

Right though

wicked gulch
#

Released!

true apex
#

nice here we go

#

@wicked gulch thanks for the shout out lol

wicked gulch
#

always credit the people who help me! hehehe

true apex
#

ok curious question going thru the model files has anyone found the models for the Moon Dagger and Moon Mirror

vestal halo
#

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.

true apex
#

thanks

wicked gulch
#

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

red marsh
wicked gulch
#

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...

vestal halo
#

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?)

wicked gulch
#

hmmm the biggest problem comes that DEFF Scripts are very different from Battle and SubMap Scripts...

sterile lantern
#

It's like me asking how many milliseconds your drive to work will take

#

There are way too many variables

wicked gulch
#

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"

vestal halo
sterile lantern
#

You asked how to solve the problem

#

I explained why it's not possible to solve

vestal halo
#

The accuracy of the DEFFs being extracted relates to how long the tool takes to extract it?

sterile lantern
#

How long the DEFFs are

vestal halo
#

Ah, I had a different impression of how it worked. My bad.

sterile lantern
#

Basically the only way to tell how long it's going to take in engine is to run it in engine

wicked gulch
#

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

sterile lantern
#

I do have an idea for you, but you'll have to edit SC code

wicked gulch
#

tell me...

sterile lantern
#

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

wicked gulch
#

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...

sterile lantern
#

I am 99% sure this is not only your best option but your only option

wicked gulch
#

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)

vestal halo
#

I see. I thought it was just the accuracy of static objects being exported/converted.

#

not like, an animation

vestal halo
wicked gulch
#

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%...

vestal halo
#

or is it separate from that?

wicked gulch
sterile lantern
vestal halo
#

understood, this will greatly help me grasp the issue lol.

wicked gulch
#

btw that animation i show it's totally random... each object is calculating Start position, Radius and acceleration in a total random way hehehehe

earnest trout
#

Time to write our own particle system

wicked gulch
#

i have it already hehehe

#

but i wanted fidelity madness

wicked gulch
#

anyway i'm open to more ideas to solve this issue so Senerio don't get out of here!

#

hahahaha

earnest trout
#

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

wicked gulch
#

well

earnest trout
wicked gulch
#

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

sterile lantern
#

DEFF is an archive* it contains the script, models, etc

#

It's like the whole package

wicked gulch
#

sorry that 👆🏻 (sorry Senerio i'm Argentinian... so i forget some expressions hahaha)

earnest trout
#

How dare you !

wicked gulch
#

hahahahahaha

#

xD

earnest trout
#

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

sterile lantern
#

He wants to be able to output them as blender things

#

To use in 3D scenes

earnest trout
#

That is scary things for me 🤣

#

Sounds more like engineer job

sterile lantern
#

Doom has a python tool to convert 3D models and textures

#

This is an extension to that

earnest trout
#

which would need some part of SC Java to be modified

wicked gulch
#

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

earnest trout
#

It's my first week in Java too !

wicked gulch
#

nice!

earnest trout
#

haha more or less

#

Pretty easy to work in java as a c# guy

wicked gulch
#

JkNotActuallyALineParticle Monoxide... please never change! xD.. WhyIsThereANoParticle but still count stuff

earnest trout
#

just need to make sure you put the brackets on the same line of if, else, and any other instructions like that notlikeblob

earnest trout
wicked gulch
#

best depiction ever!

earnest trout
#

For having seen and coded a bit of Python

vestal halo
#

Lucky for me I have no stake in the game, haha. Water forever.

earnest trout
#

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"

wicked gulch
#

me hahahaha

earnest trout
wicked gulch
#

the sorting visually also helps lol

earnest trout
#

Anyway, while I understand the idea, I'm not sure if I could be of any help

vestal halo
#

It's okay, I got the wrong idea from DooM's message.

sterile lantern
#

It's actually insane to make whitespace important to the code

wicked gulch
sterile lantern
#

Not on english keyboards 😛

earnest trout
#

gottem

sterile lantern
#

It's the key to the right of L

wicked gulch
#

Ñ

#

the fear of the English hackers hahahaha

sterile lantern
#

We don't have a wiggly N key

wicked gulch
#

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...

sterile lantern
#

I just did that a couple weeks ago

earnest trout
#

Do you know where to look in code? I can have a gander

sterile lantern
#

I split all 64 particle types into classes

wicked gulch
#

thanks a lot for that...

sterile lantern
#

@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

earnest trout
#

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

wicked gulch
#

yep exactly... and after have some of the data i can track where and when are used...

earnest trout
#

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

wicked gulch
#

well if i recall... i think per DEFF are called 2 or 3 methods... which are used for rendering...

wicked gulch
#

one of them is controlling the camera movement...

earnest trout
#

is it all in SEffe

wicked gulch
#

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

sterile lantern
#

Well, the particle engine is split into classes

#

ParticleManager and like 70 other classes

earnest trout
#

gulp

wicked gulch
#

hahahaha Monoxide said "possible" never "easy" hahahaha

#

renderType = particleTypeId >> 20; this is one of the biggest entrypoints

earnest trout
#

What are you looking to know about each effect

#

the time at which a particle starts, ends, the position on each frame...?

wicked gulch
#

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...

earnest trout
#

if all particles get funneled to a final method that renders them, it simplifies the job I think

wicked gulch
#

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...

sterile lantern
#

There are 6 renderers

wicked gulch
#

it's awesome to think that developers ever get lost in this...

earnest trout
#

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

sterile lantern
#

Each renderer has its own class

wicked gulch
sterile lantern
#
    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");
    };
wicked gulch
#

in ParticleManager.java

earnest trout
#

ok ok

#

Those names

wicked gulch
#

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 🤷🏻‍♂️

earnest trout
sterile lantern
#

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

earnest trout
#

so I guess we can ignore those

wicked gulch
#

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)

earnest trout
#

which ones do you need info about

wicked gulch
#

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

earnest trout
#

ok... let me try to first figure out how to output the logs

wicked gulch
#

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...

earnest trout
#

Do you know where is the start of an effect

wicked gulch
#

what a good question let me find out

sterile lantern
#

scriptAllocateParticleEffect

earnest trout
#

Are we creating a new ParticleManager each time

sterile lantern
#

You can just look for references to ParticleManager

earnest trout
#

ok yeah it's a global

#

ok now the other thing I need is the end of an effect

wicked gulch
#

in the render... when it's not used anymore

earnest trout
#

let's see

sterile lantern
#

It's when the effect deallocates itself

earnest trout
#

that makes a lot of sense

wicked gulch
#

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

earnest trout
#

hold on hold on, still trying to find the deallocate call 😆

wicked gulch
#

sorry i got excited hehehehe

earnest trout
#

I'm still just a fledgling in this code base

wicked gulch
#

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

earnest trout
#

This looks like something

wicked gulch
#

yep... some of the particles use lifespan for setting up...

earnest trout
#

So not all of them?

#

cries

wicked gulch
#

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

earnest trout
#

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

wicked gulch
#

yep... it allocate all the script for that Effect

earnest trout
#

so if I use a magic item, it's called only once?

wicked gulch
#

yep... until the effect is finished... and then deallocate all the script

#

it's better if you use as example Dragoon Transformations

earnest trout
#

do you know where the deallocate is cries

wicked gulch
#

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

earnest trout
#

ok

#

I'm setting things up

wicked gulch
#

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

earnest trout
#

Yep

#

Testing

#

hmmmm

#

ok so

#

Think I got something

wicked gulch
#

wow! nice!

#

the number at the left is the current frame?

earnest trout
#

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?

wicked gulch
#

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

earnest trout
#

yeah I know

#

but I just don't know where the ++ goes

#

Where is the "next frame" processed

wicked gulch
#

i think that depends on the tick more than in the frame

earnest trout
#

Yeah I put it here

wicked gulch
earnest trout
#

Still comes out at 18

wicked gulch
#

maybe that's the number... the magic number

#

i love magic numbers hahahaha

earnest trout
#

Yeah unsure of what it exactly represents

wicked gulch
#

in this case

#

tick...

#

because is running through the battleTick()

#

so tick 18 times in the rendering...

earnest trout
#

I also tried in renderSkyBox()

#

Was still 18

#

You'd think the skybox is rendered more times than 18 times in like 5 seconds

wicked gulch
#

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...

earnest trout
#

so is that of any value to you then?

wicked gulch
#

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

earnest trout
#

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

wicked gulch
#

18 should be the Frame rate.... each second get a 18 frames rendered...

sterile lantern
#

Or it can be deallocated by another script

wicked gulch
#

so it's quite random too lol

sterile lantern
#

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

wicked gulch
#

so we can catch if a destructor get rid of the effect before the lifespan cycle ends... make sense

sterile lantern
#

No, the destructor will be called when it's deallocated

wicked gulch
#

so first came deallocation and then destructor...

wicked gulch
#

/** Deallocates child and assumes its identity? */ this comment on ScriptState.java->consumeChild() is not a kind of replacing the current Script on Execution?

sterile lantern
#

It's like a posix join() but backwards

#

It keeps the child instead of the parent

wicked gulch
#

thanks!

wicked gulch
#

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?

sterile lantern
#

I'm not sure what you mean by "the engine could recognise the values and pass them"

wicked gulch
#

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

sterile lantern
#

Scripts aren't necessarily linear

#

The same wait could run 10 times or not at all

wicked gulch
#

and can start the execution in any point of the Script file...

#

is that true?

sterile lantern
#

No

#

It can start at entrypoints, or fork destinations

wicked gulch
#

the more i know about those files and type of programming... the less i understand... sorry hahahaha

sterile lantern
#

I mean, virtual machines are really not an entry level topic 😆

wicked gulch
#

deterministic or non deterministic.... that is the question

wicked gulch
#

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

wicked gulch
#

doing this method... bring me that i have 300 frames in animation lol

#

this frame is cursed lol

forest saddle
#

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?

wicked gulch
#

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

forest saddle
#

Oh.. that sounds... painful

wicked gulch
#

very much... but i was in this kind of pain before...

forest saddle
#

🫡

wicked gulch
#

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

vestal halo
#

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.

wicked gulch
#

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 💪🏻

vestal halo
#

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.

wicked gulch
#

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.

sterile lantern
#

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

wicked gulch
#

i mean in the animation file...

#

hmmm which is the idea about passing that tick value

#

what it does?

sterile lantern
#

Lets you start an animation at any point instead of starting at the beginning

wicked gulch
#

now make more sense...

wicked gulch
#

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

#

🤣

wicked gulch
#

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

wicked gulch
wicked gulch
#

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

true apex
#

Nice

wicked gulch
#

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

true apex
#

That smiling lavitz is still so creepy

wicked gulch
#

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

wicked gulch
#

writing code in hangover is something difficult lol

true apex
#

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

junior mantle
#

Shana entering her goth era

vestal halo
#

Hell yeah!

true apex
#

Figuring where the texture placements go has really been a fun lesson

wicked gulch
limber tundra
true apex
#

i got bored and finished it lol

wicked gulch
#

awesome work!...

sterile lantern
#

@wicked gulch does your tool export textures? Could import that into SC

wicked gulch
#

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...

sterile lantern
#

4 bits can only hold 16 different values

#

Maximum number of cluts is 16

#

You'd need 6-bit colour for 64 cluts

wicked gulch
#

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

sterile lantern
#

Who knows

wicked gulch
#

the number of palettes are 64... but the calculation is also done like that lol

sterile lantern
#

I guarantee each pixel and only reference up to 16 palettes

#

That's why Lenus is broken

wicked gulch
#

which this is good to know...

wicked gulch
sterile lantern
#

Yeah

wicked gulch
#

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

junior mantle
wicked gulch
#

hahahahaha

#

at that age i was missigno lol

#

my CLUT adjusted when i got into the 24... XD

sterile lantern
#

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

wicked gulch
#

that's the idea...

sterile lantern
#

Then you can let photoshop or whatever do the quantization for you

wicked gulch
#

yep thought in that and seems to be the best way to do things...

true apex
#

Wish there was a way for it to just do one texture paint but that would just be to easy lol

wicked gulch
#

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

wicked gulch
#

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...

true apex
#

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?

wicked gulch
true apex
#

They come in like this

wicked gulch
#

show me...

true apex
wicked gulch
#

this is not normal

#

which model is

#

ahh

#

the Merman

#

let me check

#

well in my end is ok

true apex
#

its weird everyone else is find but the enemies are the only ones that come like that and no animation

wicked gulch
#

hmmm

true apex
#

also havent tried since you gave that hotfix last time lol

wicked gulch
#

try to convert it again... but be sure of having all the animation conversion enabled

wicked gulch
true apex
#

will do

wicked gulch
#

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

true apex
#

lol why is it everytime i point out a small thing you find something i didnt see lol

wicked gulch
#

instead of X(width), Y(height), Z(depth) in Blender 4.2.1 are shown as X(Width), Y(Depth), Z(Height)

true apex
#

oh my

wicked gulch
true apex
#

hey i like your tools they are helping me learn

#

and yes i got them to work now

sterile lantern
#

You're the worst person to test your own code

#

Cause you'll use it in the same way you wrote it to work

wicked gulch
#

also... because i do whatever I expect the code to do...

true apex
#

lol me im just mindlessly learning and trying lol

wicked gulch
#

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...

true apex
#

oh i am happy

#

and i love trial and error

#

yall need someone to test something i guess im the guy for it lol

wicked gulch
#

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

true apex
#

I can’t wait for DEFF to really fuck with the dragons and spells 😈😈😈

wicked gulch
#

you'll be pleased for sure!

true apex
#

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

wicked gulch
#

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...

true apex
#

yea

#

i still cant get the models to permenatly stop being upside down lol

wicked gulch
#

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

true apex
#

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

wicked gulch
#

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...

true apex
#

aww

wicked gulch
#

but always select the exact keyframe or will look weird

true apex
#

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

wicked gulch
#

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

sterile lantern
#

To be fair, we do kill a lot of things

wicked gulch
#

so i keep my Death Metal approach... i take note of this xD

vestal halo
#

@wicked gulch almost every battle cutscene involves sorrow, yes.

wicked gulch
#

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]

wicked gulch
#

well the Scale 0 theory is working 100% in my test so this will be the key to "hide" objects

wicked gulch
#

the most i refactor... the most i see my own code... i figure out how a bad programmer i am hahahaha

wicked gulch
#

Need to fix a Quaternion Calc... since is rotating the models in a very odd way!...