April 16, 2024, 14:06
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: Problem with ActorX importer  (Read 8248 times)
SS396
Newbie
*
Posts: 7


View Profile
« on: May 22, 2013, 09:05 »

Hi,
I've got a problem and I'm wondering if anyone can help.

I'm trying to import some .psk and .psa files into 3dsmax 2014 and I get weird results.

The first picture is after one .psk import (bones only just so I don't clutter up the screen), all bones look to be correct.


The second picture is another .psk import where the bones structure is duplicate.

You will notice that some of the bone end points have moved locations for some unknown reason.  The bones along the back and the main root bone endpoint are not in the correct locations.  I have tried importing with both reorient bones on and off.

The third picture is a .psa import and applying an animation.

You will notice the entire bone structure rotates 180 degrees on the Z axis, and then rotates about 25 degrees in the other 2 axes.

This doesn't happen with other .psk and .psa imports I have tried.

Also when using UModel to view the bone structure and animations, everything works as advertised.

Any help would be greatly appreciated.

Thanks.

P.s. if you want me to package up the .psk's and .psa's let me know.
« Last Edit: May 22, 2013, 16:38 by SS396 » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7973



View Profile WWW
« Reply #1 on: May 22, 2013, 12:43 »

Sorry, I didn't understand from your explanation - are you trying to load multiple meshes into the single scene?
Logged
SS396
Newbie
*
Posts: 7


View Profile
« Reply #2 on: May 22, 2013, 16:34 »

Yes.

The model is built in 4 parts, and I'm pretty sure each .psk file contains the entire skeleton bone structure, so the first import is fine, but the next import causes issues.

That is the first problem, the next problem is when I apply the animations, I'm seeing the model rotate to an odd position.

I've imported some .psk's and .psa's before with no issues, so its something to do with these specific files.

Thanks for the reply.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7973



View Profile WWW
« Reply #3 on: May 22, 2013, 17:38 »

Sometimes models are connected with a bit different skeleton - unreal engine handles this correctly, but umodel and ActorX Importer could have different problems connecting meshes (usually umodel has problems but importer - doen't).
Try to connect meshes together in umodel's viewer, look my video tutorials if you need information about that.
Logged
SS396
Newbie
*
Posts: 7


View Profile
« Reply #4 on: May 23, 2013, 03:16 »

Ok, well I seem to have found another problem.

I loaded all the meshes in Umodel, cycled through them and noticed one (only one) of the model parts (lower legs) does not load in the correct location.  The bones are in the correct position, just the mesh is much higher than it should be. (its in the models back instead of below the knee)

This is the snip of the dump of the object
    LodCount = 2
    MeshOrigin = { X=-0, Y=-0, Z=-0 }
    MeshScale = { X=1, Y=1, Z=1 }
    RotOrigin = { Yaw=-16384, Pitch=0, Roll=16384 }
    BoneCount = 34

This is a snip of the dump of a similar object that loads in its correct position.
    LodCount = 2
    MeshOrigin = { X=-0, Y=-180, Z=-0 }
    MeshScale = { X=1, Y=1, Z=1 }
    RotOrigin = { Yaw=-16384, Pitch=0, Roll=16384 }
    BoneCount = 34

You'll notice one is Y-0 and the other is Y-180.

Is there a way to move the location of the incorrect piece?  Any idea why this piece is incorrect?


However, this still does not explain why the bone ends move to odd positions on an import, and why the model rotates oddly when applying an animation.  I think its something to do with its bindpose position.  All models that use this specific .psa file seem to be effected equally.

Other models that use a different .psa import and animate correctly.

I 'm going to try to find older versions of the .psk, and .psa files, as I don't remember them having this problem previously.

Thanks.
 


Logged
SS396
Newbie
*
Posts: 7


View Profile
« Reply #5 on: May 23, 2013, 11:50 »

Ok, all older versions of this same .psk and .psa are having the same issues.

I think its a bone problem, where the coordinates of the bone end is not in its correct place.  I just don't know enough about it, but I'm doing a fair bit of digging and learning.  I feel you could find and solve the problem much faster than I can.

Here is a screenshot of the .psk and .psa loaded into skeledit.  You will notice all bones are connected, and I have them labeled.


Everything looks fine and dandy.

Importing the bone structure into 3Dsmax 2014 looks like this.

I have the "root" bone selected and you will see its in an entirely different area than the same bone in skeledit.  I think the starting and ending coordinates are off.  Also you will see that the bones are not connected correctly, its not connected like it is in skeledit.  There are breaks in the bone structure.
I think everything is shifted one bone off down the line.


Logged
SS396
Newbie
*
Posts: 7


View Profile
« Reply #6 on: May 23, 2013, 11:51 »

This is the bone map from skeledit
11:29:17 PM: bone# 0 (parent  0); tree size: 33   GodRoot
11:29:17 PM: bone# 1 (parent  0); tree size: 32   \--Root
11:29:17 PM: bone# 2 (parent  1); tree size: 18      +--Pelvis
11:29:17 PM: bone# 3 (parent  2); tree size:  8      |  +--R_Pelvis
11:29:17 PM: bone# 4 (parent  3); tree size:  7      |  |  \--R_Hip
11:29:17 PM: bone# 5 (parent  4); tree size:  6      |  |     \--R_Knee
11:29:17 PM: bone# 6 (parent  5); tree size:  5      |  |        \--R_Ankle
11:29:17 PM: bone# 7 (parent  6); tree size:  4      |  |           \--R_Ball
11:29:17 PM: bone# 8 (parent  7); tree size:  1      |  |              +--R_Toe
11:29:17 PM: bone# 9 (parent  Cool; tree size:  0      |  |              |  \--R_ToeTip
11:29:17 PM: bone#10 (parent  7); tree size:  1      |  |              \--R_Toe_Back
11:29:17 PM: bone#11 (parent 10); tree size:  0      |  |                 \--R_Toe_BackTip
11:29:17 PM: bone#12 (parent  2); tree size:  8      |  \--L_Pelvis
11:29:17 PM: bone#13 (parent 12); tree size:  7      |     \--L_Hip
11:29:17 PM: bone#14 (parent 13); tree size:  6      |        \--L_Knee
11:29:17 PM: bone#15 (parent 14); tree size:  5      |           \--L_Ankle
11:29:17 PM: bone#16 (parent 15); tree size:  4      |              \--L_Ball
11:29:17 PM: bone#17 (parent 16); tree size:  1      |                 +--L_Toe
11:29:17 PM: bone#18 (parent 17); tree size:  0      |                 |  \--L_ToeTip
11:29:17 PM: bone#19 (parent 16); tree size:  1      |                 \--L_Toe_Back
11:29:17 PM: bone#20 (parent 19); tree size:  0      |                    \--L_Toe_BackTip
11:29:17 PM: bone#21 (parent  1); tree size: 12      \--BackRotate
11:29:17 PM: bone#22 (parent 21); tree size: 11         \--Back1
11:29:17 PM: bone#23 (parent 22); tree size:  6            +--Back2
11:29:17 PM: bone#24 (parent 23); tree size:  2            |  +--R_Bicep
11:29:17 PM: bone#25 (parent 24); tree size:  1            |  |  \--R_Elbow
11:29:17 PM: bone#26 (parent 25); tree size:  0            |  |     \--R_Wrist
11:29:17 PM: bone#27 (parent 23); tree size:  2            |  \--L_Bicep
11:29:17 PM: bone#28 (parent 27); tree size:  1            |     \--L_Elbow
11:29:17 PM: bone#29 (parent 28); tree size:  0            |        \--L_Wrist
11:29:17 PM: bone#30 (parent 22); tree size:  1            +--Booster_L
11:29:17 PM: bone#31 (parent 30); tree size:  0            |  \--Booster_L_Tip
11:29:17 PM: bone#32 (parent 22); tree size:  1            \--Booster_R
11:29:17 PM: bone#33 (parent 32); tree size:  0               \--Booster_R_Tip
Logged
SS396
Newbie
*
Posts: 7


View Profile
« Reply #7 on: May 23, 2013, 11:51 »


This is the data written to the screen on the .psk import.
format "Bone[%] = %, %, %, %, %, %, %, % \n" (i-1) MeshBones.Name MeshBones.Flags MeshBones.NumChildren MeshBones.ParentIndex MeshBones.Orientation MeshBones.Position MeshBones.Length MeshBones.Size

Bone[0] = GodRoot, 0, 1, 0, (quat 0 0 0 1), [0,0,0], 0.0, [0,0,0]
Bone[1] = Root, 0, 2, 0, (quat -0.145679 -0.691938 0.145679 -0.691938), [0,138.327,-1.72144], 0.0, [0,0,0]
Bone[2] = Pelvis, 0, 2, 1, (quat -0.145679 -0.691938 -0.145679 -0.691938), [0,0,0], 0.0, [0,0,0]
Bone[3] = R_Pelvis, 0, 1, 2, (quat 0.00460432 -0.0178251 -0.0660131 -0.997649), [21.1973,-2.4341,-3.17177], 0.0, [0,0,0]
Bone[4] = R_Hip, 0, 1, 3, (quat -0.358482 0.607784 -0.280543 -0.65068), [42.5019,0,0], 0.0, [0,0,0]
Bone[5] = R_Knee, 0, 1, 4, (quat -0.0558846 -0.0306956 -0.776312 -0.627116), [66.9832,0,0], 0.0, [0,0,0]
Bone[6] = R_Ankle, 0, 1, 5, (quat 0.0446598 0.0301105 0.672322 -0.738296), [59.8458,0,0], 0.0, [0,0,0]
Bone[7] = R_Ball, 0, 2, 6, (quat -0.00660997 0.00944527 0.401928 -0.915599), [41.9131,0,-0.553384], 0.0, [0,0,0]
Bone[8] = R_Toe, 0, 1, 7, (quat 0 0 0.193808 -0.981039), [22.2725,0.230842,0], 0.0, [0,0,0]
Bone[9] = R_ToeTip, 0, 0, 8, (quat 0.00731372 -0.707069 0.00731372 -0.707069), [30.5222,0.0343582,0.0454375], 0.0, [0,0,0]
Bone[10] = R_Toe_Back, 0, 1, 7, (quat -0.373877 0.927478 0 0), [0.0502381,-0.198708,0], 0.0, [0,0,0]
Bone[11] = R_Toe_BackTip, 0, 0, 10, (quat -0.176896 0.98423 0 0), [25.1592,0,0], 0.0, [0,0,0]
Bone[12] = L_Pelvis, 0, 1, 2, (quat -0.0661521 0.997651 0.00126055 0.017713), [-21.1973,-2.43394,-3.17178], 0.0, [0,0,0]
Bone[13] = L_Hip, 0, 1, 12, (quat 0.352619 -0.607195 -0.281817 -0.653876), [42.5019,0,0], 0.0, [0,0,0]
Bone[14] = L_Knee, 0, 1, 13, (quat 0.0489004 0.0468104 -0.775584 -0.627604), [66.9834,0,0], 0.0, [0,0,0]
Bone[15] = L_Ankle, 0, 1, 14, (quat -0.00619487 -0.0396797 0.673007 -0.738545), [59.8458,0,0], 0.0, [0,0,0]
Bone[16] = L_Ball, 0, 2, 15, (quat -0.00444069 0.0143874 0.401765 -0.915619), [41.9048,-0.00893099,-1.00546], 0.0, [0,0,0]
Bone[17] = L_Toe, 0, 1, 16, (quat 0 0 0.193808 -0.981039), [22.2725,0.230875,0], 0.0, [0,0,0]
Bone[18] = L_ToeTip, 0, 0, 17, (quat 0.00731372 -0.707069 0.00731373 -0.707069), [30.5221,0.0343639,-0.0455001], 0.0, [0,0,0]
Bone[19] = L_Toe_Back, 0, 1, 16, (quat -0.378606 0.925558 0 0), [0,0,0], 0.0, [0,0,0]
Bone[20] = L_Toe_BackTip, 0, 0, 19, (quat 0.128613 -0.695312 0.128613 -0.695312), [25.3278,0,0], 0.0, [0,0,0]
Bone[21] = BackRotate, 0, 1, 1, (quat -0.00130824 -0.000851902 0.546832 -0.837241), [13.4505,0.980411,-0.0168404], 0.0, [0,0,0]
Bone[22] = Back1, 0, 3, 21, (quat 0.00156116 8.83819e-007 -0.00193706 -0.999997), [19.9652,-36.995,0], 0.0, [0,0,0]
Bone[23] = Back2, 0, 2, 22, (quat 0 0 0.0012516 -0.999999), [57.1338,-38.4291,0], 0.0, [0,0,0]
Bone[24] = R_Bicep, 0, 1, 23, (quat 0.270897 0.689621 0.625095 0.245549), [36.7324,13.6098,47.9388], 0.0, [0,0,0]
Bone[25] = R_Elbow, 0, 1, 24, (quat -0.296777 0.678886 0.267749 -0.615912), [52.7053,0,0], 0.0, [0,0,0]
Bone[26] = R_Wrist, 0, 0, 25, (quat 0.000722865 -0.707106 0.000722865 -0.707106), [179.766,0.367895,-0.000239016], 0.0, [0,0,0]
Bone[27] = L_Bicep, 0, 1, 23, (quat 0.270894 0.689623 -0.625095 -0.245547), [36.7322,13.6097,-48.136], 0.0, [0,0,0]
Bone[28] = L_Elbow, 0, 1, 27, (quat 0.296777 -0.678886 0.267749 -0.615912), [52.7052,0,0], 0.0, [0,0,0]
Bone[29] = L_Wrist, 0, 0, 28, (quat 0.000722865 -0.707106 0.000722865 -0.707106), [179.766,0.368545,0.0002], 0.0, [0,0,0]
Bone[30] = Booster_L, 0, 1, 22, (quat 0.412467 0.910972 0 0), [78.3902,111.558,0], 0.0, [0,0,0]
Bone[31] = Booster_L_Tip, 0, 0, 30, (quat 0.412467 0.910972 0 0), [56.126,0,0], 0.0, [0,0,0]
Bone[32] = Booster_R, 0, 1, 22, (quat 0.412467 0.910972 0 0), [46.6612,77.6492,0], 0.0, [0,0,0]
Bone[33] = Booster_R_Tip, 0, 0, 32, (quat 0.412467 0.910972 0 0), [56.126,-1.77918e-005,0], 0.0, [0,0,0]


Any ideas you can point me too?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7973



View Profile WWW
« Reply #8 on: May 23, 2013, 13:17 »

I think the problem you see is just by design. Umodel displays mesh "as is" while Unreal engine connects it to other meshes with some skeletal changes. Usually meshes are prepared by modelers to be on the same skeleton, but sometimes it is not true, I don't know the reason of that.

About skeleton differences in umodel/SkelEdit and in 3dsMax - I use skeleton visualization which is different from Max, so you'll never see the same skeleton in different programs. Umodel paints line from the bone start to parent bone, but Max paints line from bone start to bone end. There's usually no "bone end" term in game engines, so I can't paint skeleton in the same way Max does.
Logged
SS396
Newbie
*
Posts: 7


View Profile
« Reply #9 on: May 23, 2013, 14:25 »

Wouldn't the "bone end" that max needs just be the "bone start" coordinates of the child bone?

Also, I'm sorry but you neglected to address the Umodel problem with the start coordinates shifted in a previous post.
MeshOrigin = { X=-0, Y=-180, Z=-0 }

Basically, the models skeleton I'm importing do not import correctly in 3dsmax 2014, and I also have trouble applying their respective animations.  I don't know if this is because it is a newer version of 3Dsmax or a problem with the import script.

I also have problems with importing some weapons models, as they are completely mirrored along the gun barrel axis.

Would you be willing to try to open a few .psk and .psa files?  and see what your results are?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7973



View Profile WWW
« Reply #10 on: May 23, 2013, 14:57 »

Wouldn't the "bone end" that max needs just be the "bone start" coordinates of the child bone?
It uses coordinates of 1st child bone - i.e. when there are a few child bones they could start in different locations, and they will appear disconnected. Also, some bones doen't have children (fingers, face, etc) - such bones has fixed length.
Quote
Also, I'm sorry but you neglected to address the Umodel problem with the start coordinates shifted in a previous post.
MeshOrigin = { X=-0, Y=-180, Z=-0 }
This value is set up by modeler, or by a man who imported a mesh into UnrealEd. I think it's value is ignored by engine when you're combining multiple meshes on single skeleton.
Quote
Basically, the models skeleton I'm importing do not import correctly in 3dsmax 2014, and I also have trouble applying their respective animations.  I don't know if this is because it is a newer version of 3Dsmax or a problem with the import script.
You appears to be first who reporting anything about Max 2014 here.
Quote
Would you be willing to try to open a few .psk and .psa files?  and see what your results are?
I have only weak notebook now (and 3G Internet at home), it's impossible for me to do that right now.
Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS