i need help to import that files
.act file, .ect file it's from league of angels 3
can anyone help me to make noesis script to import these files ?



Maybe present your result using the tool mentioned there?
As long as this issue isn't solved (is it?) it makes no sense to take care for the skeleton.
shakotay2 wrote: ↑Fri Nov 19, 2021 11:31 pm You may bump as much as you want, nothing will happen.![]()
BecauseUsually you start with the mesh (and weights, if any), then the skeleton, and after that, maybe, you care for the anims.
- nobody starts with animations
- never.
Just my two cents.
edit: aah, see, here's your concerning models thread:Maybe present your result using the tool mentioned there?
As long as this issue isn't solved (is it?) it makes no sense to take care for the skeleton.

Code: Select all
# GTArcade s3d importer by Bigchillghost
from inc_noesis import *
def registerNoesisTypes():
handle = noesis.register("GTArcade", ".s3d")
noesis.setHandlerTypeCheck(handle, noepyCheckType)
noesis.setHandlerLoadModel(handle, noepyLoadModel)
#noesis.logPopup()
return 1
#check if it's this type based on the data
def noepyCheckType(data):
if len(data) < 0x80:
return 0
bs = NoeBitStream(data)
Len = bs.readShort() + 1
Tag = noeStrFromBytes(bs.readBytes(Len), "ASCII")
if Tag != 's3dMesh':
return 0
return 1
#load the model
def noepyLoadModel(data, mdlList):
#noesis.logPopup()
bs = NoeBitStream(data)
Len = bs.readShort() + 5
bs.seek(Len, NOESEEK_REL)
# bone info
boneCount = bs.readInt()
bs.seek(4, NOESEEK_REL)
bones = []
matList = []
for i in range(0, boneCount):
NameLen = bs.readShort() + 1
boneName = noeStrFromBytes(bs.readBytes(NameLen), "ASCII")
bonePIndex = bs.readInt()
tran = NoeVec3.fromBytes(bs.readBytes(12))
rot = NoeQuat3.fromBytes(bs.readBytes(12)).toQuat()
boneMat = rot.toMat43()
boneMat[3] = tran
bones.append( NoeBone(i, boneName, boneMat, None, bonePIndex) )
matList.append(boneMat)
# meshes
Len = bs.readShort() + 1
meshName = noeStrFromBytes(bs.readBytes(Len), "ASCII")
Vcount = bs.readInt()
PositionIdx = []
WeightNum = []
TexCoords = []
for i in range(0, Vcount):
bs.seek(4, NOESEEK_REL)
TexCoords.append(NoeVec3([bs.readFloat(),bs.readFloat(), 0.0]))
PositionIdx.append(bs.readInt())
WeightNum.append(bs.readInt())
TrixCount = bs.readInt()
PolygonIndex = []
for i in range(0, TrixCount):
bs.seek(4, NOESEEK_REL)
for j in range(0, 3):
PolygonIndex.append(bs.readInt())
WeightCount = bs.readInt()
Positions = []
blockStart = bs.tell()
vertWeightList = []
for i in range(0, Vcount):
Offset = blockStart + PositionIdx[i]*0x18
bs.seek(Offset, NOESEEK_ABS)
rlt = NoeVec3([0.0,0.0,0.0])
bindBoneNum = WeightNum[i]
boneIDs = [0]*bindBoneNum
boneWeights = [0.0]*bindBoneNum
for j in range(0, bindBoneNum):
bs.seek(4, NOESEEK_REL)
boneID = bs.readInt()
weight = bs.readFloat()
boneIDs[j] = boneID
boneWeights[j] = weight
coord = NoeVec3.fromBytes(bs.readBytes(12))
rlt += matList[boneID]*coord*weight
Positions.append(rlt)
vertWeightList.append(NoeVertWeight(boneIDs, boneWeights))
meshes = []
mesh = NoeMesh(PolygonIndex, Positions, meshName, meshName)
mesh.setUVs(TexCoords)
mesh.weights = vertWeightList
meshes.append(mesh)
mdl = NoeModel(meshes)
mdl.setBones(bones)
mdlList.append(mdl)
rapi.setPreviewOption("setAngOfs", "0 -90 0")
return 1

Is it too much to ask for a little gratitude to the author before you ask for something more?
when you get helped.
Done.Bigchillghost wrote: ↑Sat Nov 20, 2021 8:44 am Is it too much to ask for a little gratitude to the author

Code: Select all
# hero_003.s3d
FFFFFFFF is -1 (signed)
boneid
offs Name parent boneID Translation (3 floats), Euler angles in radians (3 floats)
# 0 16: BoneRoot FF FF FF FF 0.000000 0.000000 0.000000, -0.000437 -0.000437 -0.000437
# 1 3d: Bip01 00 00 00 00 -0.000948 -1.764057 43.128025, 0.000000 0.000000 0.707106
# 2 61: Bip01 Footsteps 01 00 00 00 -0.000948 -1.764057 0.024066, 0.000000 0.000000 0.000000
# 3 8f: Bip01 Pelvis 01 00 00 00 -0.000948 -1.764057 43.128025, -0.707107 0.000155 -0.707107
# 4 ba: Bip01 Spine 03 00 00 00 -0.000568 -1.766114 50.923256, 0.707107 0.000700 0.707107
# 5 e4: Bip01 Spine1 04 00 00 00 -0.000568 -1.760997 54.482403, 0.707107 0.000294 0.707106
# 6 10f: Bip01 Neck 05 00 00 00 0.006329 -0.580836 60.397083, 0.707081 -0.000124 0.707133
# 7 138: Bip01 Head 06 00 00 00 0.006048 -0.580849 64.198586, 0.706554 -0.027965 0.706554
# 8 161: Bip01 Xtra15 07 00 00 00 0.021098 1.000165 68.871902, -0.046604 -0.710018 -0.046936
# 9 18c: Bip01 Xtra1502 08 00 00 00 -0.047363 1.709546 63.510803, -0.013489 -0.711419 -0.014236
# a 1b9: Bip01 Xtra16 07 00 00 00 2.587241 -0.765083 66.505539, -0.676253 0.076061 0.717271
# b 1e4: Bip01 Xtra1602 0A 00 00 00 2.398893 -2.231949 62.120346, -0.636353 0.151860 0.692290
# c 211: Bip01 Xtra16Opp 07 00 00 00 -2.258046 -0.910697 66.291428, -0.707303 0.183208 0.681943
# d 23f: Bip01 Xtra16Opp02 0C 00 00 00 -2.244474 -2.317387 61.882317, -0.594421 0.334310 0.717189
# e 26f: Bip01 L Clavicle 06 00 00 00 0.863973 -0.445698 60.817902, 0.002627 -0.184419 -0.011840
# f 29e: Bip01 L UpperArm 0E 00 00 00 4.506853 -0.358493 59.400368, -0.043440 -0.466365 0.002092
# 10 2cd: Bip01 L Forearm 0F 00 00 00 9.669111 -0.022056 51.869217, -0.020251 -0.467946 0.045919
# 11 2fb: Bip01 L Hand 10 00 00 00 15.699640 -0.693162 42.922112, 0.567618 -0.426547 -0.346469
# 12 326: Bip01 L Finger0 11 00 00 00 15.332962 -2.218412 40.016575, -0.175609 -0.684052 0.015997
# 13 354: Bip01 L Finger1 11 00 00 00 17.315987 -0.801132 40.241142, 0.418158 -0.573964 -0.510850
# 14 382: Bip01 Xtra14 0E 00 00 00 4.812204 -0.370431 58.407642, -0.680965 0.178353 -0.173399
# 15 3ad: Bip01 Xtra18 14 00 00 00 4.963945 -3.192603 57.692291, 0.701809 0.015671 -0.712103
# 16 3d8: Bip01 R Clavicle 06 00 00 00 -0.909309 -0.444540 60.931591, -0.011837 -0.982773 0.002626
# 17 407: Bip01 R UpperArm 16 00 00 00 -4.552193 -0.357356 59.514072, 0.002093 -0.883523 -0.043441
# 18 436: Bip01 R Forearm 17 00 00 00 -9.714451 -0.020934 51.982922, 0.045920 -0.882331 -0.020252
# 19 464: Bip01 R Hand 18 00 00 00 -15.744982 -0.692056 43.035816, -0.346468 -0.613048 0.567617
# 1a 48f: Bip01 R Finger0 19 00 00 00 -15.378299 -2.217305 40.130280, 0.015998 -0.707799 -0.175610
# 1b 4bd: Bip01 R Finger1 19 00 00 00 -17.361326 -0.800030 40.354847, -0.510850 -0.484501 0.418158
# 1c 4eb: WeaponBone_R 19 00 00 00 -31.231375 -5.584585 47.558403, -0.000211 0.707107 0.000527
# 1d 516: Bip01 Xtra01 05 00 00 00 -1.647468 1.670221 56.412884, -0.262377 0.241227 -0.884832
# 1e 541: Bip01 Xtra0102 1D 00 00 00 -12.722528 8.244953 66.309448, -0.489579 0.381357 -0.760888
# 1f 56e: Bip01 Xtra0103 1E 00 00 00 -17.845085 7.294302 76.474953, 0.159470 0.187952 -0.966870
# 20 59b: Bip01 Xtra0104 1F 00 00 00 -42.756645 12.303156 68.976685, -0.425657 -0.222750 0.872873
# 21 5c8: Bip01 Xtra03Opp 1F 00 00 00 -18.735107 8.473495 76.262909, -0.100796 -0.880305 -0.235425
# 22 5f6: Bip01 Xtra02Opp 1E 00 00 00 -18.515348 8.971450 75.518127, -0.252030 -0.770105 -0.153874
# 23 624: Bip01 Xtra01Opp 05 00 00 00 1.646254 1.670170 56.412872, 0.883769 0.303188 0.261517
# 24 652: Bip01 Xtra01Opp02 23 00 00 00 12.674755 8.322956 66.309273, 0.760219 0.192229 0.488224
# 25 682: Bip01 Xtra01Opp03 24 00 00 00 17.804045 7.408508 76.474701, 0.966628 0.069797 -0.160139
# 26 6b2: Bip01 Xtra01Opp04 25 00 00 00 42.679497 12.593173 68.976067, 0.873167 -0.082307 -0.426448
# 27 6e2: Bip01 Xtra03 25 00 00 00 18.685713 8.593958 76.262650, -0.234012 -0.400183 -0.103904
# 28 70d: Bip01 Xtra02 24 00 00 00 18.462437 9.090346 75.517868, -0.151876 -0.566002 -0.254748
# 29 738: Bip01 L Thigh 04 00 00 00 3.702247 -1.764064 43.128021, -0.702770 0.014358 0.711090
# 2a 764: Bip01 L Calf 29 00 00 00 3.511924 -2.463981 26.891708, 0.702808 0.012341 -0.711188
# 2b 78f: Bip01 L Foot 2A 00 00 00 3.287067 -1.841629 7.978912, -0.706871 -0.018260 0.706871
# 2c 7ba: Bip01 L Toe0 2B 00 00 00 3.549112 -6.034278 0.024066, -0.512745 0.486921 0.486922
# 2d 7e5: Bip01 R Thigh 04 00 00 00 -3.702247 -1.764054 43.128029, -0.711090 0.016090 0.702770
# 2e 811: Bip01 R Calf 2D 00 00 00 -3.511925 -2.463970 26.891716, 0.711188 0.010926 -0.702808
# 2f 83c: Bip01 R Foot 2E 00 00 00 -3.287073 -1.841617 7.978920, 0.706871 -0.018259 -0.706871
# 30 867: Bip01 R Toe0 2F 00 00 00 -3.549107 -6.034267 0.024074, -0.486922 0.512744 0.512744
# 31 892: Bip01 Xtra04 03 00 00 00 4.478276 0.134184 48.760891, -0.214751 -0.699014 0.004851
# 32 8bd: Bip01 Xtra0402 31 00 00 00 4.801251 4.345961 35.023857, -0.171687 -0.712663 0.099496
# 33 8ea: Bip01 Xtra0403 32 00 00 00 4.387856 5.618522 23.558163, -0.164868 -0.709572 0.106357
# 34 917: Bip01 Xtra05 03 00 00 00 -2.444300 -0.890149 49.430538, 0.008940 -0.777851 -0.336429
# 35 942: Bip01 Xtra0502 34 00 00 00 -5.915920 1.835995 42.806335, 0.028890 -0.770518 -0.319377
# 36 96f: Bip01 Xtra06 03 00 00 00 5.535710 -4.197754 48.412014, -0.664692 -0.399085 0.456349
# 37 99a: Bip01 Xtra07Opp 03 00 00 00 -4.125438 -3.721994 48.791866, 0.361163 -0.503983 -0.677991
# 38 9c8: Bip01 Xtra07Opp02 37 00 00 00 -9.775633 -1.450345 37.036144, 0.447794 -0.431430 -0.686761
# 39 9f8: Bip01 Xtra07Opp03 38 00 00 00 -13.249603 -0.001810 26.665604, 0.569634 -0.289463 -0.717331
# 3a a28: Bip01 Xtra07OppOpp 03 00 00 00 4.133063 -3.705759 48.791859, -0.678611 -0.393763 0.361949
# 3b a59: Bip01 Xtra07OppOpp02 3A 00 00 00 9.790490 -1.451868 37.036194, -0.687352 -0.375362 0.448467
# 3c a8c: Bip01 Xtra07OppOpp03 3B 00 00 00 13.269097 -0.014253 26.665693, -0.717769 -0.276657 0.570083
# 3d abf: Bip01 Xtra09 03 00 00 00 -0.577944 -5.403793 48.250893, -0.671830 0.152429 0.714684
# 3e aea: Bip01 Xtra10 03 00 00 00 3.357864 -0.795190 49.607738, -0.495449 -0.470843 0.292591
# 3f b15: Bip01 Xtra1002 3E 00 00 00 8.428974 0.193863 37.486641, -0.447211 -0.495437 0.407195
I'm so sorry Bigchillghost I'm new here and I don't have much knowledge about this stuff and I really appreciate your great effort in creating such a scriptBigchillghost wrote: ↑Sat Nov 20, 2021 8:44 amIs it too much to ask for a little gratitude to the author before you ask for something more?
And it'd be nice if you just put a link to the original post instead of redistributing the whole damn script here. And maybe ask the author for permission first before you decided to remove the ownership claim and publish your modified version of the script.![]()


The information you provided seems very complicated to me, I thought it was easy

Depends on where you start - as I always wrote: getting the skeleton is the first step when it comes to animations.
------------------------------------
Sadly I'm too busy with RL and my own SW projects. So I can this give a thought just from time to time only.But I want to thank you very much for trying to find a solution
my experiences is so weak I don't even know what is concepts of animationDepends on where you start - as I always wrote: getting the skeleton is the first step when it comes to animations.
And, surprise, there's a very good tutorial concerning the bones:
I will wait youSadly I'm too busy with RL and my own SW projects. So I can this give a thought just from time to time only.