pyjallib 0.1.1__py3-none-any.whl → 0.1.3__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/ConfigFiles/namingConfig.json +63 -0
- pyjallib/__init__.py +2 -2
- pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json +121 -0
- pyjallib/max/header.py +12 -0
- pyjallib/max/layer.py +6 -3
- pyjallib/max/macro/jal_macro_align.py +1 -3
- pyjallib/max/macro/jal_macro_bone.py +1 -3
- pyjallib/max/macro/jal_macro_constraint.py +1 -3
- pyjallib/max/macro/jal_macro_helper.py +1 -3
- pyjallib/max/macro/jal_macro_link.py +1 -3
- pyjallib/max/macro/jal_macro_select.py +1 -3
- pyjallib/py.typed +0 -0
- pyjallib/reloadModules.py +1 -1
- {pyjallib-0.1.1.dist-info → pyjallib-0.1.3.dist-info}/METADATA +28 -28
- {pyjallib-0.1.1.dist-info → pyjallib-0.1.3.dist-info}/RECORD +16 -14
- {pyjallib-0.1.1.dist-info → pyjallib-0.1.3.dist-info}/WHEEL +1 -2
- pyjallib-0.1.1.dist-info/top_level.txt +0 -1
@@ -0,0 +1,63 @@
|
|
1
|
+
{
|
2
|
+
"paddingNum": 2,
|
3
|
+
"partOrder": [
|
4
|
+
"Prefix",
|
5
|
+
"RealName",
|
6
|
+
"Index",
|
7
|
+
"Suffix"
|
8
|
+
],
|
9
|
+
"nameParts": [
|
10
|
+
{
|
11
|
+
"name": "Prefix",
|
12
|
+
"predefinedValues": [
|
13
|
+
"Pr"
|
14
|
+
],
|
15
|
+
"weights": [
|
16
|
+
5
|
17
|
+
],
|
18
|
+
"type": "PREFIX",
|
19
|
+
"descriptions": [
|
20
|
+
"Prefix"
|
21
|
+
],
|
22
|
+
"koreanDescriptions": [
|
23
|
+
"접두어"
|
24
|
+
],
|
25
|
+
"isDirection": false
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"name": "RealName",
|
29
|
+
"predefinedValues": [],
|
30
|
+
"weights": [],
|
31
|
+
"type": "REALNAME",
|
32
|
+
"descriptions": [],
|
33
|
+
"koreanDescriptions": [],
|
34
|
+
"isDirection": false
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"name": "Index",
|
38
|
+
"predefinedValues": [],
|
39
|
+
"weights": [],
|
40
|
+
"type": "INDEX",
|
41
|
+
"descriptions": [],
|
42
|
+
"koreanDescriptions": [],
|
43
|
+
"isDirection": false
|
44
|
+
},
|
45
|
+
{
|
46
|
+
"name": "Suffix",
|
47
|
+
"predefinedValues": [
|
48
|
+
"Su"
|
49
|
+
],
|
50
|
+
"weights": [
|
51
|
+
5
|
52
|
+
],
|
53
|
+
"type": "SUFFIX",
|
54
|
+
"descriptions": [
|
55
|
+
"Suffix"
|
56
|
+
],
|
57
|
+
"koreanDescriptions": [
|
58
|
+
"접미어"
|
59
|
+
],
|
60
|
+
"isDirection": false
|
61
|
+
}
|
62
|
+
]
|
63
|
+
}
|
pyjallib/__init__.py
CHANGED
@@ -6,7 +6,7 @@ pyjallib Package
|
|
6
6
|
Python library for game character development pipeline.
|
7
7
|
"""
|
8
8
|
|
9
|
-
__version__ = '1.
|
9
|
+
__version__ = '0.1.2'
|
10
10
|
|
11
11
|
# reload_modules 함수를 패키지 레벨에서 사용 가능하게 함
|
12
12
|
from .namePart import NamePart, NamePartType
|
@@ -14,4 +14,4 @@ from .naming import Naming
|
|
14
14
|
from .namingConfig import NamingConfig
|
15
15
|
from .nameToPath import NameToPath
|
16
16
|
from .perforce import Perforce
|
17
|
-
from .reloadModules import
|
17
|
+
from .reloadModules import reload_modules
|
@@ -0,0 +1,121 @@
|
|
1
|
+
{
|
2
|
+
"paddingNum": 2,
|
3
|
+
"partOrder": [
|
4
|
+
"Base",
|
5
|
+
"Type",
|
6
|
+
"Side",
|
7
|
+
"FrontBack",
|
8
|
+
"RealName",
|
9
|
+
"Index",
|
10
|
+
"Nub"
|
11
|
+
],
|
12
|
+
"nameParts": [
|
13
|
+
{
|
14
|
+
"name": "Base",
|
15
|
+
"predefinedValues": [
|
16
|
+
"b",
|
17
|
+
"Bip001"
|
18
|
+
],
|
19
|
+
"weights": [
|
20
|
+
5,
|
21
|
+
10
|
22
|
+
],
|
23
|
+
"type": "PREFIX",
|
24
|
+
"descriptions": [
|
25
|
+
"SkinBone",
|
26
|
+
"Biped"
|
27
|
+
],
|
28
|
+
"isDirection": false
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"name": "Type",
|
32
|
+
"predefinedValues": [
|
33
|
+
"P",
|
34
|
+
"Dum",
|
35
|
+
"Exp",
|
36
|
+
"IK",
|
37
|
+
"T"
|
38
|
+
],
|
39
|
+
"weights": [
|
40
|
+
5,
|
41
|
+
10,
|
42
|
+
15,
|
43
|
+
20,
|
44
|
+
25
|
45
|
+
],
|
46
|
+
"type": "PREFIX",
|
47
|
+
"descriptions": [
|
48
|
+
"Parent",
|
49
|
+
"Dummy",
|
50
|
+
"ExposeTM",
|
51
|
+
"IK",
|
52
|
+
"Target"
|
53
|
+
],
|
54
|
+
"isDirection": false
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"name": "Side",
|
58
|
+
"predefinedValues": [
|
59
|
+
"L",
|
60
|
+
"R"
|
61
|
+
],
|
62
|
+
"weights": [
|
63
|
+
5,
|
64
|
+
10
|
65
|
+
],
|
66
|
+
"type": "PREFIX",
|
67
|
+
"descriptions": [
|
68
|
+
"Left",
|
69
|
+
"Right"
|
70
|
+
],
|
71
|
+
"isDirection": true
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"name": "FrontBack",
|
75
|
+
"predefinedValues": [
|
76
|
+
"F",
|
77
|
+
"B"
|
78
|
+
],
|
79
|
+
"weights": [
|
80
|
+
5,
|
81
|
+
10
|
82
|
+
],
|
83
|
+
"type": "PREFIX",
|
84
|
+
"descriptions": [
|
85
|
+
"Front",
|
86
|
+
"Back"
|
87
|
+
],
|
88
|
+
"isDirection": true
|
89
|
+
},
|
90
|
+
{
|
91
|
+
"name": "RealName",
|
92
|
+
"predefinedValues": [],
|
93
|
+
"weights": [],
|
94
|
+
"type": "REALNAME",
|
95
|
+
"descriptions": [],
|
96
|
+
"isDirection": false
|
97
|
+
},
|
98
|
+
{
|
99
|
+
"name": "Index",
|
100
|
+
"predefinedValues": [],
|
101
|
+
"weights": [],
|
102
|
+
"type": "INDEX",
|
103
|
+
"descriptions": [],
|
104
|
+
"isDirection": false
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"name": "Nub",
|
108
|
+
"predefinedValues": [
|
109
|
+
"Nub"
|
110
|
+
],
|
111
|
+
"weights": [
|
112
|
+
5
|
113
|
+
],
|
114
|
+
"type": "SUFFIX",
|
115
|
+
"descriptions": [
|
116
|
+
"Nub"
|
117
|
+
],
|
118
|
+
"isDirection": false
|
119
|
+
}
|
120
|
+
]
|
121
|
+
}
|
pyjallib/max/header.py
CHANGED
@@ -31,6 +31,15 @@ class Header:
|
|
31
31
|
JalLib.max 패키지의 헤더 모듈
|
32
32
|
3DS Max에서 사용하는 다양한 기능을 제공하는 클래스들을 초기화하고 관리합니다.
|
33
33
|
"""
|
34
|
+
_instance = None
|
35
|
+
|
36
|
+
@classmethod
|
37
|
+
def get_instance(cls):
|
38
|
+
"""싱글톤 패턴을 구현한 인스턴스 접근 메소드"""
|
39
|
+
if cls._instance is None:
|
40
|
+
cls._instance = Header()
|
41
|
+
return cls._instance
|
42
|
+
|
34
43
|
def __init__(self):
|
35
44
|
"""
|
36
45
|
Header 클래스 초기화
|
@@ -55,3 +64,6 @@ class Header:
|
|
55
64
|
self.skin = Skin()
|
56
65
|
|
57
66
|
self.twistBone = TwistBone(nameService=self.name, animService=self.anim, constService=self.constraint, bipService=self.bip)
|
67
|
+
|
68
|
+
# 모듈 레벨에서 전역 인스턴스 생성
|
69
|
+
jal = Header.get_instance()
|
pyjallib/max/layer.py
CHANGED
@@ -65,12 +65,15 @@ class Layer:
|
|
65
65
|
Returns:
|
66
66
|
레이어에 포함된 노드 배열 또는 빈 배열
|
67
67
|
"""
|
68
|
+
returnVal = rt.Array()
|
68
69
|
layer = rt.ILayerManager.getLayerObject(inLayerNum)
|
69
70
|
if layer is not None:
|
70
71
|
layerNodes = rt.refs.dependents(layer)
|
71
|
-
|
72
|
-
|
73
|
-
|
72
|
+
for item in layerNodes:
|
73
|
+
if rt.isValidNode(item):
|
74
|
+
returnVal.append(item)
|
75
|
+
|
76
|
+
return returnVal
|
74
77
|
|
75
78
|
def get_layer_number(self, inLayerName):
|
76
79
|
"""
|
@@ -2,9 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
from pymxs import runtime as rt
|
5
|
-
from pyjallib.max.header import
|
6
|
-
|
7
|
-
jal = Header()
|
5
|
+
from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
|
8
6
|
|
9
7
|
from PySide2 import QtWidgets, QtCore, QtGui
|
10
8
|
import gc # Import garbage collector
|
@@ -5,9 +5,7 @@ from pymxs import runtime as rt
|
|
5
5
|
from PySide2 import QtWidgets, QtCore, QtGui
|
6
6
|
import gc # Import garbage collector
|
7
7
|
|
8
|
-
from pyjallib.max.header import
|
9
|
-
|
10
|
-
jal = Header()
|
8
|
+
from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
|
11
9
|
|
12
10
|
class HelperTypeSelDialog(QtWidgets.QDialog):
|
13
11
|
def __init__(self, parent=QtWidgets.QWidget.find(rt.windows.getMAXHWND())):
|
pyjallib/py.typed
ADDED
File without changes
|
pyjallib/reloadModules.py
CHANGED
@@ -1,28 +1,28 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: pyjallib
|
3
|
-
Version: 0.1.
|
4
|
-
Summary: A utility library for 3D game character development pipelines.
|
5
|
-
Author-email: Dongseok Kim <jalnagakds@gmail.com>
|
6
|
-
Requires-Python: >=3.10
|
7
|
-
Description-Content-Type: text/markdown
|
8
|
-
|
9
|
-
# pyjallib
|
10
|
-
|
11
|
-
pyjallib Package is a Python library designed to streamline the game character development pipeline. It provides tools and utilities to assist game developers in creating, managing, and optimizing character assets.
|
12
|
-
|
13
|
-
## Features
|
14
|
-
- Character asset management
|
15
|
-
- Pipeline automation tools
|
16
|
-
- Asset optimization utilities
|
17
|
-
- Easy integration with common game engines
|
18
|
-
|
19
|
-
## Installation
|
20
|
-
```bash
|
21
|
-
pip install pyjallib
|
22
|
-
```
|
23
|
-
|
24
|
-
## Documentation
|
25
|
-
For detailed documentation, please visit our wiki page.
|
26
|
-
|
27
|
-
## License
|
28
|
-
This project is licensed under the MIT License - see the LICENSE file for details.
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: pyjallib
|
3
|
+
Version: 0.1.3
|
4
|
+
Summary: A utility library for 3D game character development pipelines.
|
5
|
+
Author-email: Dongseok Kim <jalnagakds@gmail.com>
|
6
|
+
Requires-Python: >=3.10
|
7
|
+
Description-Content-Type: text/markdown
|
8
|
+
|
9
|
+
# pyjallib
|
10
|
+
|
11
|
+
pyjallib Package is a Python library designed to streamline the game character development pipeline. It provides tools and utilities to assist game developers in creating, managing, and optimizing character assets.
|
12
|
+
|
13
|
+
## Features
|
14
|
+
- Character asset management
|
15
|
+
- Pipeline automation tools
|
16
|
+
- Asset optimization utilities
|
17
|
+
- Easy integration with common game engines
|
18
|
+
|
19
|
+
## Installation
|
20
|
+
```bash
|
21
|
+
pip install pyjallib
|
22
|
+
```
|
23
|
+
|
24
|
+
## Documentation
|
25
|
+
For detailed documentation, please visit our wiki page.
|
26
|
+
|
27
|
+
## License
|
28
|
+
This project is licensed under the MIT License - see the LICENSE file for details.
|
@@ -1,32 +1,34 @@
|
|
1
|
-
pyjallib/__init__.py,sha256=
|
1
|
+
pyjallib/__init__.py,sha256=nuApOEfpw0H0-z0v_SJswZlD1KR3nrBiNrnk1-y8_k8,460
|
2
2
|
pyjallib/namePart.py,sha256=D1hnFNnZbrNicAiW2ZUaIT0LU5pro3uFYrFYOEjt7_Y,24001
|
3
3
|
pyjallib/nameToPath.py,sha256=61EWrc0Wc1K1Qsc4G6jewIccI0IHbiZWroRcU_lX1Wc,4664
|
4
4
|
pyjallib/naming.py,sha256=W1y8a-Xa2qpAR1f-lFcJeg1uEYGJF2QbVXvsaQ1VpnM,36549
|
5
5
|
pyjallib/namingConfig.py,sha256=6Wyk3h1dFrzOslSoqjLftSUqt7U00tnR2WcgxYWVx5I,33969
|
6
6
|
pyjallib/perforce.py,sha256=YnKAKlbBss4cl66R4nQbr-bsYjTneLzGYaZ187kOSpA,29872
|
7
|
-
pyjallib/
|
7
|
+
pyjallib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
pyjallib/reloadModules.py,sha256=RAEG3IxzJ0TlsjvnZwJt56JOkc2j8voqAnRbfQuZ44g,1151
|
9
|
+
pyjallib/ConfigFiles/namingConfig.json,sha256=Ov4bbVJb6qodPaooU63e11YUMGXXPWFAA4AQq1sLBYU,1486
|
8
10
|
pyjallib/max/__init__.py,sha256=usuGjRQHOigvWVCPjVV2FcRvNtGBvULkF_tPUELLmcs,775
|
9
11
|
pyjallib/max/align.py,sha256=HKjCViQCuicGmtvHB6xxVv4BEGEBGtV2gO3NvR_6R2A,5183
|
10
12
|
pyjallib/max/anim.py,sha256=-shQeE0WeAeCefc8FoI63dNDLHhz0uzOJ4shp5AL_Cs,25135
|
11
13
|
pyjallib/max/bip.py,sha256=Tx9cbeiuwctYpKMMCDUARz4eP-zb6XfSKY1TXrwoqk8,16987
|
12
14
|
pyjallib/max/bone.py,sha256=GYs3Uohc0AMkLWZAqZTc1DET-WDgZlvlkhSUaBeszvk,33161
|
13
15
|
pyjallib/max/constraint.py,sha256=QJHkSAPv7mxq2m58ni0OFc0mfrwrx91CsqupQXPfwr0,39876
|
14
|
-
pyjallib/max/header.py,sha256=
|
16
|
+
pyjallib/max/header.py,sha256=CfjcRmXouCNENFycTdHSx68FLa3eoIKttC8XvIp48JY,2229
|
15
17
|
pyjallib/max/helper.py,sha256=DGoGNX1fuDRkBnndQSFYgxeYrkOfJdnkf5EVBKqsJqc,15566
|
16
|
-
pyjallib/max/layer.py,sha256=
|
18
|
+
pyjallib/max/layer.py,sha256=ogfj6qhK1ZY0_-MvxSH3nyUu9A93-0g-z5x1QWpXGcs,8803
|
17
19
|
pyjallib/max/link.py,sha256=J3z9nkP8ZxAh9yYhR16tjQFCJTCYZMSB0MGbSHfA7uI,2592
|
18
20
|
pyjallib/max/mirror.py,sha256=j8LnsXowyTINzvtWsvCNaDsQ6v7u2RjlY50R8v5JCuc,14517
|
19
21
|
pyjallib/max/name.py,sha256=z_fclfutesFxhk2hVliqZGnRQauKcB8LJpRbKQ5cYAc,16703
|
20
22
|
pyjallib/max/select.py,sha256=HMJD2WNX3zVBEeYrj0UX2YXM3fHNItfw6UtQSItNsoU,9487
|
21
23
|
pyjallib/max/skin.py,sha256=5mBzG2wSUxoGlkFeb9Ys8uUxOwuZRGeqUMTI9LiWWZU,41937
|
22
24
|
pyjallib/max/twistBone.py,sha256=To9k9DHfnpVmBBevXLsSefDNIXt_RUxyCSE9UgL6Bs8,15853
|
23
|
-
pyjallib/max/
|
24
|
-
pyjallib/max/macro/
|
25
|
-
pyjallib/max/macro/
|
26
|
-
pyjallib/max/macro/
|
27
|
-
pyjallib/max/macro/
|
28
|
-
pyjallib/max/macro/
|
29
|
-
pyjallib
|
30
|
-
pyjallib-0.1.
|
31
|
-
pyjallib-0.1.
|
32
|
-
pyjallib-0.1.
|
25
|
+
pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json,sha256=lfD5ltvSBOYdqtVpkdgJxL3srEzQ3jBCMeK-Ae2GLUA,2751
|
26
|
+
pyjallib/max/macro/jal_macro_align.py,sha256=t0gQjybkHYAvPtjT5uWjUQd1vsXIsxOkdYfhFWduxJU,4270
|
27
|
+
pyjallib/max/macro/jal_macro_bone.py,sha256=QS492tskLrARGIFDmbKEwJw7122xJga0ZP5z8WVVRn8,12422
|
28
|
+
pyjallib/max/macro/jal_macro_constraint.py,sha256=0gpfan7hXES9jhnpZVlxWtCbqUCyGxjtSmVMbp7nUh8,4160
|
29
|
+
pyjallib/max/macro/jal_macro_helper.py,sha256=dhTVLeO3xz6tBdmJtpupgpZRCos8-kcqZBg8ff2QZgE,11504
|
30
|
+
pyjallib/max/macro/jal_macro_link.py,sha256=xkgcCX0fJw4vLfMYybtfUklT3dgcO0tHfpt2X9BfWLw,1193
|
31
|
+
pyjallib/max/macro/jal_macro_select.py,sha256=-r24l84XmDEM4W6H0r1jOBErp3q0UxNrr0m9oAHSgkE,2289
|
32
|
+
pyjallib-0.1.3.dist-info/METADATA,sha256=lPxMWhK8AhGOILDJWKIvyB3xc0Sbs5zud8luBDqEFhA,829
|
33
|
+
pyjallib-0.1.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
34
|
+
pyjallib-0.1.3.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
pyjallib
|