pyjallib 0.1.8__py3-none-any.whl → 0.1.10__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyjallib/__init__.py +1 -1
- pyjallib/max/ConfigFiles/Default_3DSMaxNamingConfig.json +161 -0
- pyjallib/max/__init__.py +14 -2
- pyjallib/max/anim.py +60 -36
- pyjallib/max/autoClavicle.py +100 -92
- pyjallib/max/autoClavicleChain.py +173 -0
- pyjallib/max/bip.py +211 -14
- pyjallib/max/bone.py +348 -16
- pyjallib/max/constraint.py +29 -38
- pyjallib/max/groinBone.py +109 -39
- pyjallib/max/groinBoneChain.py +173 -0
- pyjallib/max/header.py +40 -6
- pyjallib/max/helper.py +3 -21
- pyjallib/max/hip.py +239 -0
- pyjallib/max/kneeBone.py +517 -0
- pyjallib/max/macro/jal_macro_align.py +11 -10
- pyjallib/max/macro/jal_macro_bone.py +2 -1
- pyjallib/max/macro/jal_macro_constraint.py +2 -1
- pyjallib/max/macro/jal_macro_helper.py +2 -1
- pyjallib/max/macro/jal_macro_link.py +2 -1
- pyjallib/max/macro/jal_macro_select.py +2 -1
- pyjallib/max/mirror.py +1 -1
- pyjallib/max/twistBone.py +259 -476
- pyjallib/max/twistBoneChain.py +162 -0
- pyjallib/max/volumeBone.py +273 -0
- pyjallib/max/volumeBoneChain.py +363 -0
- pyjallib/namePart.py +16 -16
- pyjallib/nameToPath.py +1 -1
- pyjallib/naming.py +15 -16
- pyjallib/namingConfig.py +3 -3
- pyjallib/perforce.py +446 -653
- {pyjallib-0.1.8.dist-info → pyjallib-0.1.10.dist-info}/METADATA +1 -1
- pyjallib-0.1.10.dist-info/RECORD +46 -0
- pyjallib/max/volumePreserveBone.py +0 -171
- pyjallib-0.1.8.dist-info/RECORD +0 -39
- {pyjallib-0.1.8.dist-info → pyjallib-0.1.10.dist-info}/WHEEL +0 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
pyjallib/__init__.py,sha256=pix9ja-vl7MYU3dJ4pgQicVCVwd1SyiQxD-BgWPILY8,461
|
2
|
+
pyjallib/namePart.py,sha256=lKIiOVkWrtAW-D3nuv--vHmdAnlQeVPaXLYUDhcr8QU,24177
|
3
|
+
pyjallib/nameToPath.py,sha256=aBeezepLYdpv3VYxnQ2c4ZWzz2WjticXjkdbAIlVa1k,4676
|
4
|
+
pyjallib/naming.py,sha256=gJcD4wLAySFExlLiVQzF-amCbFbUnOwmxoio8Eyfrbw,36756
|
5
|
+
pyjallib/namingConfig.py,sha256=3w8Xjs_HR3R0K25eySivJn58N9MZwfpk80ySZYVI7Qw,34005
|
6
|
+
pyjallib/perforce.py,sha256=K_FAeDvecdaMT4INUcDluSB6k2NQ8R1NaddTzqLu-q0,24211
|
7
|
+
pyjallib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
pyjallib/reloadModules.py,sha256=RAEG3IxzJ0TlsjvnZwJt56JOkc2j8voqAnRbfQuZ44g,1151
|
9
|
+
pyjallib/ConfigFiles/namingConfig.json,sha256=Ov4bbVJb6qodPaooU63e11YUMGXXPWFAA4AQq1sLBYU,1486
|
10
|
+
pyjallib/max/__init__.py,sha256=Zh3ZZD1ELmS1zFALW47OYlgdhBdZ7b1C_bCrN7vTuIw,1403
|
11
|
+
pyjallib/max/align.py,sha256=HKjCViQCuicGmtvHB6xxVv4BEGEBGtV2gO3NvR_6R2A,5183
|
12
|
+
pyjallib/max/anim.py,sha256=QTpR8T047IMpV40wnMMNo080wY9rHMV9k7ISrh4P61I,26083
|
13
|
+
pyjallib/max/autoClavicle.py,sha256=9Y-ytNP5Wv40JX1Cvm_13oAhfyug_uCpafAdcX1U2bk,8178
|
14
|
+
pyjallib/max/autoClavicleChain.py,sha256=fjBpd4ads148bRBxkXfG5auC4x2Ec198yk-Wpv9V3Js,5098
|
15
|
+
pyjallib/max/bip.py,sha256=wT1Lg_j2BVoLtRqVN3Rhm5WHj-_OHK_3hcl8PYjy8RY,27117
|
16
|
+
pyjallib/max/bone.py,sha256=JgwnnWSbTa77ml4-CNtQkdROCgBUlNBkInD7g5WJgVI,48579
|
17
|
+
pyjallib/max/constraint.py,sha256=93g-X0aZHtZMKXVKr8xMjIhbKou61yc2b3ubQKJquBs,40589
|
18
|
+
pyjallib/max/groinBone.py,sha256=4MvLkXFfdMioyFr4jOMemR26IxNyHtEHOpYRvbsNx9k,7386
|
19
|
+
pyjallib/max/groinBoneChain.py,sha256=E75yHfvse3QJ-Yo__OUBox_dbv_j-bOSzxr_FwetDZA,5604
|
20
|
+
pyjallib/max/header.py,sha256=nuNCVfm5bfYMS0KxB8IRR67D30CXXHRUXHfFYkLG0jU,4120
|
21
|
+
pyjallib/max/helper.py,sha256=Na3jFRwLsjHh4rz0Tk_r_CwHQxOA6n8LhDRA9x5xcSk,18018
|
22
|
+
pyjallib/max/hip.py,sha256=7Mw2Fu_vgWkdm-5m8KoRXDOmphK8apiOiBQQQV1u2KU,11144
|
23
|
+
pyjallib/max/kneeBone.py,sha256=BPob7KL62_B0_ErHIGkVa-DkBMHau_-dhmBHSQgeWkY,22832
|
24
|
+
pyjallib/max/layer.py,sha256=e9Mn8h7xf0oBYST3QIpyBpLMl8qpWTExO9Y6yH6rKc0,8795
|
25
|
+
pyjallib/max/link.py,sha256=J3z9nkP8ZxAh9yYhR16tjQFCJTCYZMSB0MGbSHfA7uI,2592
|
26
|
+
pyjallib/max/mirror.py,sha256=TcbfZXSk-VJQstNqAmD6VGCqYBF9bMuJtFTg-6SiGdQ,14505
|
27
|
+
pyjallib/max/morph.py,sha256=I8HRYx4NznL6GZL4CbT9iTv05SeaBW_mJJ4PzMxCBkw,12664
|
28
|
+
pyjallib/max/name.py,sha256=DcJt2td-N7vfUGyWazdGTD4-0JW-noa7z5nwc6SHm6I,15337
|
29
|
+
pyjallib/max/select.py,sha256=HMJD2WNX3zVBEeYrj0UX2YXM3fHNItfw6UtQSItNsoU,9487
|
30
|
+
pyjallib/max/skin.py,sha256=5mBzG2wSUxoGlkFeb9Ys8uUxOwuZRGeqUMTI9LiWWZU,41937
|
31
|
+
pyjallib/max/twistBone.py,sha256=RnyqXVq4LQRqk-QxaB_gKBkJ9ih5A0c8yvbErpOFGeE,16275
|
32
|
+
pyjallib/max/twistBoneChain.py,sha256=A0F-43SbB-qdjo6U5TcenXapHcGIc4gxatxKiWnNv7M,5503
|
33
|
+
pyjallib/max/volumeBone.py,sha256=fCFJ8YTrjhLkZdpkEekT45VN17DtTJngzJT5uHYZVno,12336
|
34
|
+
pyjallib/max/volumeBoneChain.py,sha256=bS6OwPDSCk0Wrm0Hv9OZ9uGdygikMs98Z-S1koAGrKQ,13481
|
35
|
+
pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json,sha256=PBUYawCELG0aLNRdTh6j-Yka4eNdmpF4P8iRyp0Ngpg,3717
|
36
|
+
pyjallib/max/ConfigFiles/Default_3DSMaxNamingConfig.json,sha256=PBUYawCELG0aLNRdTh6j-Yka4eNdmpF4P8iRyp0Ngpg,3717
|
37
|
+
pyjallib/max/macro/jal_macro_align.py,sha256=_Iqwskz0i4AVlP_AhDrqHwhLml6zoDWkVAxPF3AKqEQ,4286
|
38
|
+
pyjallib/max/macro/jal_macro_bone.py,sha256=I3MYM7fk-_LQonORRD0hJoip0TAk0suS-xDBamhySPQ,12422
|
39
|
+
pyjallib/max/macro/jal_macro_constraint.py,sha256=jJnNHCjsFJNYRqaBEPjzW-dnCDJT6JRZXH7dqBPkeiw,4160
|
40
|
+
pyjallib/max/macro/jal_macro_helper.py,sha256=hd8e5x56aq7Qt0g-hP5bY0p-njVy8ja77_qMPZyvDag,12906
|
41
|
+
pyjallib/max/macro/jal_macro_link.py,sha256=E8i3z2xsrQiGDEz4Qoxc75hkpalzS95mOMcIic0J-Fc,1193
|
42
|
+
pyjallib/max/macro/jal_macro_select.py,sha256=jeSFR_mqqudTTrZE1rU6qifJ4g441cYxXWcHPTWh1CU,2289
|
43
|
+
pyjallib/max/ui/Container.py,sha256=QSk3oCqhfiR4aglSSkherRGAyPFqMRUt83L-0ENBz-s,5571
|
44
|
+
pyjallib-0.1.10.dist-info/METADATA,sha256=WRIWnsOSWqSf4NdHVw8RkNAqb6uPE-N78eFUD67q8fQ,870
|
45
|
+
pyjallib-0.1.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
46
|
+
pyjallib-0.1.10.dist-info/RECORD,,
|
@@ -1,171 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
|
4
|
-
"""
|
5
|
-
관절 부피 유지 본(Volume preserve Bone) 모듈 - 3ds Max용 관절의 부피를 유지하기 위해 추가되는 중간본들을 위한 모듈
|
6
|
-
"""
|
7
|
-
|
8
|
-
from pymxs import runtime as rt
|
9
|
-
|
10
|
-
# Import necessary service classes for default initialization
|
11
|
-
from .name import Name
|
12
|
-
from .anim import Anim
|
13
|
-
from .constraint import Constraint
|
14
|
-
from .bone import Bone
|
15
|
-
from .helper import Helper
|
16
|
-
|
17
|
-
class VolumePreserveBone:
|
18
|
-
"""
|
19
|
-
관절 부피 유지 본(Volume preserve Bone) 클래스
|
20
|
-
3ds Max에서 관절의 부피를 유지하기 위해 추가되는 중간본들을 위한 클래스
|
21
|
-
"""
|
22
|
-
def __init__(self, nameService=None, animService=None, constService=None, boneService=None, helperService=None):
|
23
|
-
self.name = nameService if nameService else Name()
|
24
|
-
self.anim = animService if animService else Anim()
|
25
|
-
# Ensure dependent services use the potentially newly created instances
|
26
|
-
self.const = constService if constService else Constraint(nameService=self.name)
|
27
|
-
self.bone = boneService if boneService else Bone(nameService=self.name, animService=self.anim)
|
28
|
-
self.helper = helperService if helperService else Helper(nameService=self.name)
|
29
|
-
|
30
|
-
def create_rot_helpers(self, inObj, inRotScale=0.5):
|
31
|
-
if rt.isValidNode(inObj) == False or rt.isValidNode(inObj.parent) == False:
|
32
|
-
return False
|
33
|
-
|
34
|
-
volName = self.name.get_RealName(inObj.name)
|
35
|
-
volName = volName + "Vol"
|
36
|
-
|
37
|
-
parentObj = inObj.parent
|
38
|
-
|
39
|
-
rt.select(inObj)
|
40
|
-
rotHelpers = self.helper.create_helper(make_two=True)
|
41
|
-
rotHelpers[0].parent = inObj
|
42
|
-
rotHelpers[1].parent = parentObj
|
43
|
-
|
44
|
-
rotHelpers[0].name = self.name.replace_RealName(rotHelpers[0].name, volName)
|
45
|
-
rotHelpers[1].name = self.name.replace_RealName(rotHelpers[1].name, volName + self.name.get_name_part_value_by_description("Type", "Target"))
|
46
|
-
|
47
|
-
rotConst = self.const.assign_rot_const_multi(rotHelpers[0], [inObj, rotHelpers[1]])
|
48
|
-
rotConst.setWeight(1, inRotScale * 100.0)
|
49
|
-
rotConst.setWeight(2, (1.0 - inRotScale) * 100.0)
|
50
|
-
|
51
|
-
return rotHelpers
|
52
|
-
|
53
|
-
def create_init_bone(self, inObj, inVolumeSize, inRotHelpers, inRotAxis="Z", inTransAxis="PosY", inTransScale=1.0):
|
54
|
-
if rt.isValidNode(inObj) == False or rt.isValidNode(inObj.parent) == False:
|
55
|
-
return False
|
56
|
-
|
57
|
-
returnVal = {
|
58
|
-
"Bones": [],
|
59
|
-
"Helpers": []
|
60
|
-
}
|
61
|
-
|
62
|
-
volName = self.name.get_RealName(inObj.name)
|
63
|
-
volName = volName + "Vol"
|
64
|
-
|
65
|
-
# ExposeTM을 사용하여 회전값을 가져오는 방법
|
66
|
-
# rt.select(inObj)
|
67
|
-
# expHelper = self.helper.create_exp_tm()[0]
|
68
|
-
# expHelper.parent = parentObj
|
69
|
-
# expHelper.exposeNode = rotHelpers[0]
|
70
|
-
# expHelper.useParent = False
|
71
|
-
# expHelper.localReferenceNode = rotHelpers[1]
|
72
|
-
# expHelper.eulerXOrder = 5
|
73
|
-
# expHelper.eulerYOrder = 5
|
74
|
-
# expHelper.eulerZOrder = 5
|
75
|
-
|
76
|
-
# expHelper.name = self.name.replace_RealName(expHelper.name, volName)
|
77
|
-
|
78
|
-
boneGenHelperA = rt.point()
|
79
|
-
boneGenHelperB = rt.point()
|
80
|
-
boneGenHelperA.transform = inObj.transform
|
81
|
-
boneGenHelperB.transform = inObj.transform
|
82
|
-
|
83
|
-
if inTransAxis == "PosX":
|
84
|
-
self.anim.move_local(boneGenHelperB, inVolumeSize, 0, 0)
|
85
|
-
elif inTransAxis == "NegX":
|
86
|
-
self.anim.move_local(boneGenHelperB, -inVolumeSize, 0, 0)
|
87
|
-
elif inTransAxis == "PosY":
|
88
|
-
self.anim.move_local(boneGenHelperB, 0, inVolumeSize, 0)
|
89
|
-
elif inTransAxis == "NegY":
|
90
|
-
self.anim.move_local(boneGenHelperB, 0, -inVolumeSize, 0)
|
91
|
-
elif inTransAxis == "PosZ":
|
92
|
-
self.anim.move_local(boneGenHelperB, 0, 0, inVolumeSize)
|
93
|
-
elif inTransAxis == "NegZ":
|
94
|
-
self.anim.move_local(boneGenHelperB, 0, 0, -inVolumeSize)
|
95
|
-
|
96
|
-
row = ""
|
97
|
-
sourceUpAxist = 0
|
98
|
-
upAxis = 0
|
99
|
-
if inRotAxis == "X":
|
100
|
-
row = "row1"
|
101
|
-
sourceUpAxist = 1
|
102
|
-
upAxis = 1
|
103
|
-
elif inRotAxis == "Y":
|
104
|
-
row = "row3"
|
105
|
-
sourceUpAxist = 2
|
106
|
-
upAxis = 2
|
107
|
-
elif inRotAxis == "Z":
|
108
|
-
row = "row2"
|
109
|
-
sourceUpAxist = 3
|
110
|
-
upAxis = 3
|
111
|
-
|
112
|
-
volumeBoneName = self.name.replace_RealName(self.name.get_string(inObj.name), volName + inRotAxis + inTransAxis)
|
113
|
-
|
114
|
-
volumeBones = self.bone.create_simple_bone(inVolumeSize, volumeBoneName)
|
115
|
-
volumeBones[0].transform = inObj.transform
|
116
|
-
lookatConst = self.const.assign_lookat(volumeBones[0], boneGenHelperB)
|
117
|
-
lookatConst.pickUpNode = inObj
|
118
|
-
lookatConst.upnode_world = False
|
119
|
-
lookatConst.StoUP_axis = sourceUpAxist
|
120
|
-
lookatConst.upnode_axis = upAxis
|
121
|
-
self.const.collapse(volumeBones[0])
|
122
|
-
|
123
|
-
rt.delete(boneGenHelperA)
|
124
|
-
rt.delete(boneGenHelperB)
|
125
|
-
|
126
|
-
volumeBones[0].parent = inRotHelpers[0]
|
127
|
-
rt.select(volumeBones[0])
|
128
|
-
parentHelper = self.helper.create_parent_helper()[0]
|
129
|
-
|
130
|
-
posConst = self.const.assign_pos_script_controller(volumeBones[0])
|
131
|
-
# posConst.AddNode("rotExp", expHelper)
|
132
|
-
posConst.AddNode("rotObj", inRotHelpers[0])
|
133
|
-
posConst.AddNode("rotParent", inRotHelpers[1])
|
134
|
-
|
135
|
-
posConstCode = f""
|
136
|
-
posConstCode += f"local parentXAxis = (normalize rotParent.objectTransform.{row})\n"
|
137
|
-
posConstCode += f"local rotObjXAxis = (normalize rotObj.objectTransform.{row})\n"
|
138
|
-
posConstCode += f"local rotAmount = (1.0 - (dot parentXAxis rotObjXAxis))/2.0\n"
|
139
|
-
posConstCode += f"local posX = rotAmount * {inVolumeSize*inTransScale}\n"
|
140
|
-
posConstCode += f"[posX, 0.0, 0.0]\n"
|
141
|
-
|
142
|
-
posConst.SetExpression(posConstCode)
|
143
|
-
|
144
|
-
returnVal["Bones"] = volumeBones
|
145
|
-
returnVal["Helpers"] = [parentHelper]
|
146
|
-
|
147
|
-
return returnVal
|
148
|
-
|
149
|
-
def create_bones(self,inObj, inVolumeSize, inRotAxises, inRotScale, inTransAxiese, inTransScales):
|
150
|
-
if rt.isValidNode(inObj) == False or rt.isValidNode(inObj.parent) == False:
|
151
|
-
return False
|
152
|
-
|
153
|
-
if not len(inTransAxiese) == len(inTransScales) == len(inTransAxiese) == len(inRotAxises):
|
154
|
-
return False
|
155
|
-
|
156
|
-
rotHelpers = self.create_rot_helpers(inObj, inRotScale=inRotScale)
|
157
|
-
|
158
|
-
returnVal = {
|
159
|
-
"Bones": [],
|
160
|
-
"Helpers": []
|
161
|
-
}
|
162
|
-
|
163
|
-
for i in range(len(inRotAxises)):
|
164
|
-
genResult = self.create_init_bone(inObj, inVolumeSize, rotHelpers, inRotAxises[i], inTransAxiese[i], inTransScales[i])
|
165
|
-
returnVal["Bones"].extend(genResult["Bones"])
|
166
|
-
returnVal["Helpers"].extend(genResult["Helpers"])
|
167
|
-
|
168
|
-
returnVal["Helpers"].insert(0, rotHelpers[0])
|
169
|
-
returnVal["Helpers"].insert(1, rotHelpers[1])
|
170
|
-
|
171
|
-
return returnVal
|
pyjallib-0.1.8.dist-info/RECORD
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
pyjallib/__init__.py,sha256=FD41BluMZ_gDt-gXhEAzIwNyWn_tokcUoZMKTpn_fN8,460
|
2
|
-
pyjallib/namePart.py,sha256=D1hnFNnZbrNicAiW2ZUaIT0LU5pro3uFYrFYOEjt7_Y,24001
|
3
|
-
pyjallib/nameToPath.py,sha256=61EWrc0Wc1K1Qsc4G6jewIccI0IHbiZWroRcU_lX1Wc,4664
|
4
|
-
pyjallib/naming.py,sha256=jJ6w0n_nnUE2uZy_I4KFsMx95Ij3_KvSjhVvQQplxpw,36621
|
5
|
-
pyjallib/namingConfig.py,sha256=6Wyk3h1dFrzOslSoqjLftSUqt7U00tnR2WcgxYWVx5I,33969
|
6
|
-
pyjallib/perforce.py,sha256=YnKAKlbBss4cl66R4nQbr-bsYjTneLzGYaZ187kOSpA,29872
|
7
|
-
pyjallib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
pyjallib/reloadModules.py,sha256=RAEG3IxzJ0TlsjvnZwJt56JOkc2j8voqAnRbfQuZ44g,1151
|
9
|
-
pyjallib/ConfigFiles/namingConfig.json,sha256=Ov4bbVJb6qodPaooU63e11YUMGXXPWFAA4AQq1sLBYU,1486
|
10
|
-
pyjallib/max/__init__.py,sha256=1058Mvp_Ebf3DG_DVkAC4o_frQPq7F6-m-C-Ccme64k,1064
|
11
|
-
pyjallib/max/align.py,sha256=HKjCViQCuicGmtvHB6xxVv4BEGEBGtV2gO3NvR_6R2A,5183
|
12
|
-
pyjallib/max/anim.py,sha256=-shQeE0WeAeCefc8FoI63dNDLHhz0uzOJ4shp5AL_Cs,25135
|
13
|
-
pyjallib/max/autoClavicle.py,sha256=FQGFkucRu670TpkEUs8lQRJyNUykvtxF9rZiPjHoH3s,7517
|
14
|
-
pyjallib/max/bip.py,sha256=m6eA-rg-MghYSxbzj-YXa0KJFPm1wiOsOqyJu76_hlY,16967
|
15
|
-
pyjallib/max/bone.py,sha256=GYs3Uohc0AMkLWZAqZTc1DET-WDgZlvlkhSUaBeszvk,33161
|
16
|
-
pyjallib/max/constraint.py,sha256=gVdGezkRmzWRtUZeAdLnWfmvhgy8HAhD_dXmyI4xvUw,41282
|
17
|
-
pyjallib/max/groinBone.py,sha256=rEZQ7tAXgcZ3NedFacIyvfG07nI8rgF_pVufy-hnKuo,3830
|
18
|
-
pyjallib/max/header.py,sha256=s2no3jRenY4b-xjofKwV9TGbO9doE4KH8paeBQA7qko,3071
|
19
|
-
pyjallib/max/helper.py,sha256=WPoxSoHAFXmAPx_CRJFWBNXn4S2k04UK-1J9x6nIv84,18674
|
20
|
-
pyjallib/max/layer.py,sha256=e9Mn8h7xf0oBYST3QIpyBpLMl8qpWTExO9Y6yH6rKc0,8795
|
21
|
-
pyjallib/max/link.py,sha256=J3z9nkP8ZxAh9yYhR16tjQFCJTCYZMSB0MGbSHfA7uI,2592
|
22
|
-
pyjallib/max/mirror.py,sha256=j8LnsXowyTINzvtWsvCNaDsQ6v7u2RjlY50R8v5JCuc,14517
|
23
|
-
pyjallib/max/morph.py,sha256=I8HRYx4NznL6GZL4CbT9iTv05SeaBW_mJJ4PzMxCBkw,12664
|
24
|
-
pyjallib/max/name.py,sha256=DcJt2td-N7vfUGyWazdGTD4-0JW-noa7z5nwc6SHm6I,15337
|
25
|
-
pyjallib/max/select.py,sha256=HMJD2WNX3zVBEeYrj0UX2YXM3fHNItfw6UtQSItNsoU,9487
|
26
|
-
pyjallib/max/skin.py,sha256=5mBzG2wSUxoGlkFeb9Ys8uUxOwuZRGeqUMTI9LiWWZU,41937
|
27
|
-
pyjallib/max/twistBone.py,sha256=0Z-Z-OiTPM0fXAnzgol0tiY7Kms6-qrEuVCHsCVVbUc,20338
|
28
|
-
pyjallib/max/volumePreserveBone.py,sha256=mTtbAOKRjkbVO-PQQMt6FZzAawtUMbwGgj8XO1n9SV8,7193
|
29
|
-
pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json,sha256=PBUYawCELG0aLNRdTh6j-Yka4eNdmpF4P8iRyp0Ngpg,3717
|
30
|
-
pyjallib/max/macro/jal_macro_align.py,sha256=t0gQjybkHYAvPtjT5uWjUQd1vsXIsxOkdYfhFWduxJU,4270
|
31
|
-
pyjallib/max/macro/jal_macro_bone.py,sha256=QS492tskLrARGIFDmbKEwJw7122xJga0ZP5z8WVVRn8,12422
|
32
|
-
pyjallib/max/macro/jal_macro_constraint.py,sha256=0gpfan7hXES9jhnpZVlxWtCbqUCyGxjtSmVMbp7nUh8,4160
|
33
|
-
pyjallib/max/macro/jal_macro_helper.py,sha256=ODwAl4C6WK2UE45dqpfw90TgN5vDjLJvODvYeO8tj4o,12906
|
34
|
-
pyjallib/max/macro/jal_macro_link.py,sha256=xkgcCX0fJw4vLfMYybtfUklT3dgcO0tHfpt2X9BfWLw,1193
|
35
|
-
pyjallib/max/macro/jal_macro_select.py,sha256=-r24l84XmDEM4W6H0r1jOBErp3q0UxNrr0m9oAHSgkE,2289
|
36
|
-
pyjallib/max/ui/Container.py,sha256=QSk3oCqhfiR4aglSSkherRGAyPFqMRUt83L-0ENBz-s,5571
|
37
|
-
pyjallib-0.1.8.dist-info/METADATA,sha256=7dGxma4w0wrSzOlLcLnI1dN0ha3emWufRpVDWxkCaXY,869
|
38
|
-
pyjallib-0.1.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
39
|
-
pyjallib-0.1.8.dist-info/RECORD,,
|
File without changes
|