Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Importing .STCK animation - We need your help!

Post questions about game models here, or help out others!
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Importing .STCK animation - We need your help!

Post by asdasd123 »

Hi there!

We are trying to import .STCK animation from the game Saint Seiya online (developed by the same company that made Perfect World, also know as PW)

The story so far:

- Both PW's .STCK and SSeiya's .STCK have the same header "MOXBKCTS"
- I tried to import the animation using shakotay2's .STCK script for PW, but it didn't work
- Dispite having the same header, the structure of the files are different

- Now we are trying to figure out SSeiya's .STCK structure.
- Can you help ?

Thanks in advance :D
You do not have the required permissions to view the files attached to this post.
Last edited by asdasd123 on Fri Jan 15, 2016 7:56 pm, edited 3 times in total.
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by shakotay2 »

asdasd123 wrote: shakotay2's script + few modifications
Not sure which problems you solved but I would kindly beg you to mark the changes you applied to my script.

From what I see you've added
numBones = #()
nBones = #()

tmp = #()
unk = #()

fd = #()

but these variables are no arrays. (Not sure if you know what you are doing.)

If you meet a problem like this:
-- Frame:
-- i: 67
-- id: undefined

you may be required to set nBones manually in the script.

My script was designed to work with Max2009 and PerfectWorld files.
Tested with boss (upper body) and bloatfly only.

Also keep in mind that there's no UNICODE support by my script.

(I remember renaming the "unreadable" stck filenames to something like 00001.stck to make them work with the script.)
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by asdasd123 »

shakotay2 wrote:(Not sure if you know what you are doing.)
I apologize for wrongly correcting your script.
From what I've read, my Max2011 was not handling well the undeclared numBones and returned 'undefined', I think my newbie change indirectly took care of that.

Above all, you're right. I didn't know what I was doing and I'm still a newbie
The only thing that I know is that I really, really want to see your script working and import those animations :keke:
shakotay2 wrote:My script was designed to work with Max2009 and PerfectWorld files.
I've just installed 3DSMax 2009 and it seems to work a lot better, although I'm still having troubles
My model is from Saint Seiya Online, created by the same company that made PW.
Since the .stck starts with the same MOXB I'm hoping your script will work (might be newbie's hope, but all I've got :D )
shakotay2 wrote:Tested with boss (upper body) and bloatfly only.
I have high hopes for your script, but since last time you couldn't test it with simple walk/run animations, this is what I'm aiming for.
That's why I've extracted a humanoid model with running animation.
shakotay2 wrote: If you meet a problem like this:
-- Frame:
-- i: 67
-- id: undefined

you may be required to set nBones manually in the script.
Yup, met that and few other problems. Setting it manually to 56 didn't help, I'm still puzzled as to why is that happening :?:

It would mean a lot if you could take a look at my sample. :D

Thanks in advance!
You do not have the required permissions to view the files attached to this post.
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by shakotay2 »

The animation file is useless for me without suiting .ski and .bon file.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by asdasd123 »

Here you go!

Unfortunately Zaramot's importer doesn't work with Saint Seiya models, so I'm using killercracker's altered version of Zaramot's (also included on the sample)

Thanks in advance!
You do not have the required permissions to view the files attached to this post.
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by shakotay2 »

I imported ski and bon file using killercracker's script
then I started my script for Perfect World .stck import.

It throws "load ski and bon file before! "! (Although they are visibly loaded.)

This means killercracker's Saint Seiya script is not compatible with mine.

As simple as that.

No surprise, since it's different games. The scripts for (ski+bone) import are different.
Then how should the animation import work with the Perfect World script?
(Although the signature MOXBKCTS is identical, admitted.)

(Also my script was tested with one geometry only. But there's 5 geometries for Ikki.)
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by asdasd123 »

shakotay2 wrote:It throws "load ski and bon file before! "! (Although they are visibly loaded.)
Want to see something completely weird? Just add my array declaration and it'll work and load!

I have no idea why :scaredy:
Code wrote:...
struct ScaleAnimation (BoneId, KeyFrame, Scaling )

allBones = #()
bone_names = #()
numbones = #() <------ add this line

fn GetBoneNames = ( -- from steev, 10-28-2008
...
If it also works for you, you should get to the point where I was originally asking for help: a unable to convert error

Thank you for all your efforts so far! Hope you can solve this puzzle :]
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by shakotay2 »

asdasd123 wrote:
shakotay2 wrote:It throws "load ski and bon file before! "! (Although they are visibly loaded.)
Want to see something completely weird? Just add my array declaration and it'll work and load!
nope, I fear you didn't get it. There's no difference except that the error message is not thrown. (The mesh and skeleton are loaded without adding your numBones array. numBones is no array, as I said.)

ClearListener()
nBones = GetBoneNames()
nBones = 56 -- add this line and the error message will not be thrown, too

edit: well, thx, anyway. The real problem was that I forgot to give the function ReadAniFile the parameter nBones!

Look at the Saint Seiya .stck files to see the difference to PerfectWorld .stck files.
Look for the frame count, for example. For the Running.stck it is (wrongly read as) 1, iirc. Doesn't make much sense. <- nope, it's 1 and it's correct. (3dsMax does magic things...)

Maybe it's a small difference only. We'll see...
Last edited by shakotay2 on Sun Jan 17, 2016 11:57 am, edited 1 time in total.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by asdasd123 »

shakotay2 wrote:Maybe it's a small difference only. We'll see...
Okay, couldn't find a 1 mesh model, but I've extracted a simpler model with 2 meshes. Hope it helps.

If you need any other samples, just let me know :]
You do not have the required permissions to view the files attached to this post.
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by shakotay2 »

asdasd123 wrote:
shakotay2 wrote:Maybe it's a small difference only. We'll see...
Okay, couldn't find a 1 mesh model, but I've extracted a simpler model with 2 meshes. Hope it helps.

If you need any other samples, just let me know :]
I'll give you some overview, maybe you can search for a simple animation for yourself then.
The following picture show a Perfect world anim; the arrow marks the position, the "underscore" marks the rotation.
The pattern 01 000000 01 000000 helps to understand the structure. (Surprisingly we seem to have a Frame_cnt of 1 here. (: )

For the Saint Seiya .stck the 13 00000 might be the frame count (transition/rotation). The patterns 01 000000 1E 000000
and 01 000000 1E 000000 01 000000 mark transition/rotation (wild guess).
stck_anim_.jpg
(As you can see from the Running.stck file there's a section from 0x1DC6 to 0x222B which appears to be similar to the Perfect World 000.stck from the picture.)

Sadly there is varying frame counts in Running.stck which would require frame interpolation -> no time for such, sry.

If you can find a simple Saint Seiya .stck with constant fram counts, I'd take a look at.

btw: didn't forget the picture - while I was desperately trying to reduce it's size to 250 kB you posted. :D
You do not have the required permissions to view the files attached to this post.
Last edited by shakotay2 on Thu Jan 14, 2016 8:53 pm, edited 2 times in total.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by asdasd123 »

shakotay2 wrote:Sadly there is varying frame counts in Running.stck which would require frame interpolation -> no time for such, sry.

If you can find a simple Saint Seiya .stck with constant fram counts, I'd take a look at.
Okay, i've been looking at hex for the past 3 hours, trying to undestand it's concepts by your explanation. :eek:

So far, all the .stck tested have similar structures

Got a few questions, if you don't mind:

- Why do you say that frame counts are varying? By the exemple, shouldn't it be a fix number (0x13) ?
- Is there a "test" to find out if 01 000000 1E 000000 01 000000 mark transition/rotation ?
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by shakotay2 »

asdasd123 wrote:- Why do you say that frame counts are varying? By the exemple, shouldn't it be a fix number (0x13) ?
There's different sizes of data blocks in Running.stck:
varying_counts.jpg
- Is there a "test" to find out if 01 000000 1E 000000 01 000000 mark transition/rotation ?
Don't know what you mean exactly. (What I meant was that the patterns can be used as markers, obviously.)
You could plot the vectors in 3D space. Transitions should be recognizable this way, if you mean this.

You could build the sum of squares of vector components. Someone said sum (or square root of sum) should be 1.0 for rotation quaternions but I'm not sure if this is always true.
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: EDIT: .STCK importing --- some progress and a New Challe

Post by asdasd123 »

shakotay2 wrote:There's different sizes of data blocks in Running.stck
Okay, I stumbled across something interesting.
I've found a post on a chinese website by Fatduck
Fatduck on a chinese website wrote:先前給這格式難倒了(其實是自己不小心把兩組變數記錄錯了)
動作檔是沒有 keyTime 的, 也就是把一定時間內的動作以平均方式分佈記錄!

Google translation:
Previously stumped for this format (in fact, they do not accidentally record the wrong two variables)
Movement file is not keyTime, that is the movement within a certain time record average in a distributed manner!
And than he puts this structure:

Code: Select all

[b]stck format
=========[/b]
[b]char[8]       "MOXBKCTS"
dword         nAnim              //Animation Count ??
dword         nBones
dword         ??
dword         ??
dword         FramePerSecond
struct BoneAnim {
   dword            nID
   struct TransAnim {
      dword         nPosKey
      dword         ??               //always 1
      dword         ??               //always 255
      struct TransData {
         float X3    posXYZ
      }
      dword         nTimeStart
      dword         nTimeEnd
      dword         nFrameStart
      dword         nFrameEnd
   }
   struct RotAnim {
      dword         nRotKey
      dword         ??               //always 1
      dword         ??               //always 255
      struct RotData {
         float X4    quatXYZW
      }
      dword         nTimeStart
      dword         nTimeEnd
      dword         nFrameStart
      dword         nFrameEnd
   }
}[/b]
Could this mean that 0x130000 is not a frame count, but actually a time? Does this help? Hope it does :D :D :D

Fingers crossed! Thanks! :D
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4291
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1151 times
Been thanked: 2244 times

Re: Importing .STCK animation - We need your help!

Post by shakotay2 »

asdasd123 wrote:Okay, I stumbled across something interesting.
I've found a post on a chinese website by Fatduck
that is for Perfect World, isn't it?
Could this mean that 0x130000 is not a frame count, but actually a time?
doesn't really matter for me - I'm thinking more in "patterns" than in variable names. What I need is constant times or constant frame counts that would keep things simple.

I'm pretty sure that the 13 00 00 00 (=19 dec.) is a frame count. It counts position/rotation vectors.
The 1E 00 00 00 (30 dec.) in the pic of my previous post might be a frame time.

We've a bonecount of 56 in Running.stck, 56 datablocks for transistions, 56 for rotations.
But we've varying frame counts, as I wrote.

Is there any stck file with constant frame counts?

(Well, think it's a good idea to create a program that can check whether they are constant.)
-> PMed you.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
asdasd123
beginner
Posts: 22
Joined: Sun Jun 14, 2015 4:07 pm
Has thanked: 13 times
Been thanked: 3 times

Re: Importing .STCK animation - We need your help!

Post by asdasd123 »

shakotay2 wrote:
asdasd123 wrote:that is for Perfect World, isn't it?
Probably, although there was no reference as to which game it was from

------------------------------------------------------

Found something really interesting while testing files with your program:

Every model has it's own main folder containing:
- folder with .stck animations
- folder with textures
- .bon file
- .ecm file
- .ski file
- .smd file
- and a single .STCK file

All those single .STCK have a constant frame of 1, maybe it's some kind of reference all the other animations

This time I'm uploading an entire model's folder (765 kb).
The file Natasha.stck is the single .STCK for this model.

Thanks for all you've done so far :D
You do not have the required permissions to view the files attached to this post.
Last edited by asdasd123 on Sat Jan 16, 2016 4:22 pm, edited 1 time in total.
Post Reply