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

MMO Black Desert Online

Post questions about game models here, or help out others!
Post Reply
joqqy
advanced
Posts: 51
Joined: Tue Feb 21, 2012 12:40 pm
Has thanked: 108 times
Been thanked: 47 times

Re: MMO Black Desert Online

Post by joqqy »

KingJuls wrote: Mon Dec 14, 2020 9:47 am
joqqy wrote: Thu Dec 10, 2020 7:47 pm I edited the maxscript, it did not load .pam correctly in Max 2021 due to a syntax error in the declaration of a dictionary type.
Here is the edited version of the maxscript, only tested with Max 2021:
-snip-

Edit 2020-12-11:
Found some additional bugs(spelling error) when loading parVer 1030, here is the updated script with bug fixes:
Blackdesertpam_bugfix2.rar
Additional stuff added is handling of normal maps and decal maps.
Standard material is changed to Physical Material.
Hey,

thanks for your Script.
I work with 3ds Max 201264 Bit and i get this Error:
It’s Lynix’s script, so all credit to him.
I did some bug fixes and changes, but only tested on max 2021.
You should use the script I edited with max 2021, because I am not even sure Dictionary types were even introduced in Maxscript for the 2012 version of Max.
So your simplest solution would be to use the script with Max 2021, maybe a student version.
KingJuls
advanced
Posts: 59
Joined: Wed Feb 28, 2018 8:29 am
Has thanked: 9 times
Been thanked: 3 times

Re: MMO Black Desert Online

Post by KingJuls »

Lynix wrote: Sat Dec 12, 2020 11:21 pm nice addons/ changes on the script ^^
Can u add the Script for older Max Version?
Lynix
advanced
Posts: 42
Joined: Wed Jul 01, 2015 3:11 pm
Has thanked: 2 times
Been thanked: 20 times

Re: MMO Black Desert Online

Post by Lynix »

KingJuls wrote: Mon Dec 14, 2020 3:20 pm
Lynix wrote: Sat Dec 12, 2020 11:21 pm nice addons/ changes on the script ^^
Can u add the Script for older Max Version?
i will look at it... ;) ...
PeterZ
veteran
Posts: 95
Joined: Sat Sep 17, 2016 4:07 am
Has thanked: 6 times
Been thanked: 82 times

Re: MMO Black Desert Online

Post by PeterZ »

benishandler wrote: Thu Feb 28, 2019 4:38 am For newer PAC files, looks like all that's needed is updating lines

Code: Select all

	if parVer == 515 or parVer == 771:

Code: Select all

	elif parVer == 259 or parVer == 515 or parVer == 771:
Hi,here's the Noesis script I fixed for remastered game Version 2100 in 2019 DEC.Tested all classes nude model.
I skipped some data after flag 256&1025.
But,what they mean?
You do not have the required permissions to view the files attached to this post.
X3D
advanced
Posts: 50
Joined: Wed Jan 20, 2016 10:44 pm
Has thanked: 18 times
Been thanked: 24 times

Re: MMO Black Desert Online

Post by X3D »

Thankyou 48464385 for the Noesis script update, much appreciated.
X3D
advanced
Posts: 50
Joined: Wed Jan 20, 2016 10:44 pm
Has thanked: 18 times
Been thanked: 24 times

Re: MMO Black Desert Online

Post by X3D »

Noesis updated script by 48464385 works on all models/meshes, I convert PAC to PSK workflow.
Attached quick render of: 21_ppw Nova
21_ppw_nova_001.png
You do not have the required permissions to view the files attached to this post.
PeterZ
veteran
Posts: 95
Joined: Sat Sep 17, 2016 4:07 am
Has thanked: 6 times
Been thanked: 82 times

Re: MMO Black Desert Online

Post by PeterZ »

X3D wrote: Tue Jan 19, 2021 1:05 pm Noesis updated script by 48464385 works on all models/meshes, I convert PAC to PSK workflow.
Attached quick render of: 21_ppw Nova
21_ppw_nova_001.png
I'm glad to see that :D and trying to make Skykila's paa script work based on Szkaradek123's [2015-01-03] blender script to export correct animation.

Noesis script I worked based on:viewtopic.php?f=16&t=11849#p102530
blender pab&paa-working script:viewtopic.php?f=16&t=11849&start=15#p116515

I gave some changes and added many comments.I wish there's some genius can have a look. :cry:
All data are loaded correctly from paa,I checked with working blender script. But I need some help with Noesis's BoneQuat/rotation.
Here are samples .pac. pab .paa

https://drive.google.com/file/d/1M_XfGn ... sp=sharing
You do not have the required permissions to view the files attached to this post.
PeterZ
veteran
Posts: 95
Joined: Sat Sep 17, 2016 4:07 am
Has thanked: 6 times
Been thanked: 82 times

Re: MMO Black Desert Online

Post by PeterZ »

48464385 wrote: Tue Jan 19, 2021 6:19 pm
X3D wrote: Tue Jan 19, 2021 1:05 pm Noesis updated script by 48464385 works on all models/meshes, I convert PAC to PSK workflow.
Attached quick render of: 21_ppw Nova
21_ppw_nova_001.png
I'm glad to see that :D and trying to make Skykila's paa script work based on Szkaradek123's [2015-01-03] blender script to export correct animation.

Noesis script I worked based on:viewtopic.php?f=16&t=11849#p102530
blender pab&paa-working script:viewtopic.php?f=16&t=11849&start=15#p116515

I gave some changes and added many comments.I wish there's some genius can have a look. :cry:
All data are loaded correctly from paa,I checked with working blender script. But I need some help with Noesis's BoneQuat/rotation.
Here are samples .pac. pab .paa

https://drive.google.com/file/d/1M_XfGn ... sp=sharing
Here's what I have tested the data loaded
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: 1150 times
Been thanked: 2243 times

Re: MMO Black Desert Online

Post by shakotay2 »

Yeah, some genius would know! :D
Looks like there's only a minus at the wrong place (== two differences) in (all) the rotation matrices:
bone count/kf count (97.27 / 97, 28)

Code: Select all

97.27  Noesis
((0.9774166941642761, -0.0, -0.21127915382385254), 
(0.0, 1.0, -0.0), 
(0.21127915382385254, 0.0, 0.9774166941642761), 
(0.0, 0.0, 0.0))

(97, 28) blender
[0.977417, 0.000000, 0.211279](matrix [row 0])
[-0.000000, 1.000000, 0.000000](matrix [row 1])
[-0.211279, -0.000000, 0.977417](matrix [row 2])
(And the keyframe count is off by one, dunno why.)
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?"
PeterZ
veteran
Posts: 95
Joined: Sat Sep 17, 2016 4:07 am
Has thanked: 6 times
Been thanked: 82 times

Re: MMO Black Desert Online

Post by PeterZ »

shakotay2 wrote: Wed Jan 20, 2021 12:00 am Yeah, some genius would know! :D
Looks like there's only a minus at the wrong place (== two differences) in (all) the rotation matrices:
bone count/kf count (97.27 / 97, 28)

Code: Select all

97.27  Noesis
((0.9774166941642761, -0.0, -0.21127915382385254), 
(0.0, 1.0, -0.0), 
(0.21127915382385254, 0.0, 0.9774166941642761), 
(0.0, 0.0, 0.0))

(97, 28) blender
[0.977417, 0.000000, 0.211279](matrix [row 0])
[-0.000000, 1.000000, 0.000000](matrix [row 1])
[-0.211279, -0.000000, 0.977417](matrix [row 2])
(And the keyframe count is off by one, dunno why.)
I got the matrices print right,but the result is still wrong
You do not have the required permissions to view the files attached to this post.
User avatar
Joschka
mega-veteran
mega-veteran
Posts: 286
Joined: Fri Aug 09, 2019 3:51 pm
Has thanked: 73 times
Been thanked: 413 times

Re: MMO Black Desert Online

Post by Joschka »

I took a quick look at the script and there were a few things wrong.
First the quaternion needed to be transposed (i.e. transpose the associated rotation matrix) :

Code: Select all

BoneQuat = NoeQuat( (bs.readHalfFloat(), bs.readHalfFloat(), bs.readHalfFloat(), bs.readHalfFloat()) ).transpose()
Then there was a problem with these lines :

Code: Select all

if Parent is not -1:
	RotKeys.append(NoeKeyFramedValue(rotationkeyframe, BoneQuat * BoneLocalRotList[Parent]))#Not sure what this means
else:
	RotKeys.append(NoeKeyFramedValue(rotationkeyframe, BoneQuat))
According to your comment you were confused about what this step was for. These lines here are used to convert the quaternion from local space (relative to the parent) to model space (relative the model's origin/root), by accumulating the transforms along the bone hierarchy (assuming the bones are well ordered in this case).
However in Noesis, contrary to the bones' transforms that are expected to be in model space, animation data is expected to be in local space, as this is what most games use. So instead you just need to give the transform as is :

Code: Select all

RotKeys.append(NoeKeyFramedValue(rotationkeyframe, BoneQuat))
and

Code: Select all

TrnKeys.append(NoeKeyFramedValue(positionkeyframe, BonePosition))
You also gave the timing data as frames whereas Noesis expects it as time. So I created a variable called framerate that I set at 30 (no clue what the actual anim framerate is, you'll be able to change it if it's not the correct value) and divided all your timings by it to get the value in seconds :

Code: Select all

positionkeyframe = bs.readUShort()//33/framerate
Finally you set your animation to be at 1fps for some reason. I corrected it to use the framerate variable above :

Code: Select all

anims.append(NoeKeyFramedAnim("BlackDesert anim", wholeBones, kfBones, framerate))
And set the Noesis preview to it too

Code: Select all

rapi.setPreviewOption("setAnimSpeed", str(framerate))
If you have several different framerates later and want to use the anim framerate instead of a global one, go to Tools->DataViewer->Persistent Settings->Other->"Always use anim framerate" and set it to 1.

Do all that and you should end up with something like this, not sure if this is perfect but at least it looks better
Image

Hope that helps
fmt_Black_Desert_paa.zip
You do not have the required permissions to view the files attached to this post.
User avatar
Skykila
advanced
Posts: 47
Joined: Sat Apr 03, 2010 8:03 am
Location: Russia
Has thanked: 154 times
Been thanked: 6 times

Re: MMO Black Desert Online

Post by Skykila »

Script does not work with many enemies. For example when opening m0001_goblinmagician, I get the message

Code: Select all

Detected file type: Black Desert anim
Traceback (most recent call last):
  File "D:\Utilites\_Extractors\Noesis\plugins\python\fmt_Black_Desert_paa.py", line 128, in BDLoadModel
    boneName = boneTable[str(boneHash1)]#name = boneNames[m] #load boneName based on bone's hash
KeyError: '3438973197'
X3D
advanced
Posts: 50
Joined: Wed Jan 20, 2016 10:44 pm
Has thanked: 18 times
Been thanked: 24 times

Re: MMO Black Desert Online

Post by X3D »

Deleted post:

Problem Solved by shakotay2
Last edited by X3D on Mon Jan 25, 2021 4:22 pm, edited 2 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: 1150 times
Been thanked: 2243 times

Re: MMO Black Desert Online

Post by shakotay2 »

Traceback (most recent call last):
... in BDLoadModel
boneName = boneTable[str(boneHash1)]#name = boneNames[m] #load boneName based on bone's hash
KeyError: '3785025464'
---------------------------

This happens when there is no/not suiting *.pab file (contains skeleton/bonenames) in the folder where the *.paa resides.

("KeyError" means: wrong bone hash, afaics.)
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?"
X3D
advanced
Posts: 50
Joined: Wed Jan 20, 2016 10:44 pm
Has thanked: 18 times
Been thanked: 24 times

Re: MMO Black Desert Online

Post by X3D »

Thankyou shakotay2 for reminding me about that procedure, all motions are functioning within Noesis.

Just tested Character+Motion, all seems to be working ok.

Attached Animated GIF ppw idle motion
https://drive.google.com/file/d/1Cq76oY ... sp=sharing
Post Reply