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.
@@ -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.0.0'
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 reload_jallib_modules
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
- return layerNodes
72
- else:
73
- return rt.Array()
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 Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_align_to_last():
10
8
  jal.align.align_to_last_sel()
@@ -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 Header
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
@@ -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 Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_collapse_const():
10
8
  if rt.selection.count > 0:
@@ -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 Header
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())):
@@ -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 Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_link_to_last():
10
8
  jal.link.link_to_last_sel()
@@ -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 Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_selFilter_all():
10
8
  jal.sel.set_selectionSet_to_all()
pyjallib/py.typed ADDED
File without changes
pyjallib/reloadModules.py CHANGED
@@ -9,7 +9,7 @@ import sys
9
9
  import importlib
10
10
 
11
11
 
12
- def reload_jallib_modules():
12
+ def reload_modules():
13
13
  """
14
14
  pyjallib 패키지와 모든 하위 모듈을 다시 로드합니다.
15
15
 
@@ -1,28 +1,28 @@
1
- Metadata-Version: 2.4
2
- Name: pyjallib
3
- Version: 0.1.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=nWAaxSNOlxjENL167hO0TKW5L3Z2s2xByWDKzpqlB0U,467
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/reloadModules.py,sha256=TbUWUDNrRgs_CBBu-2b4PPtIOBfK3FEBCA5VeLzbE3E,1158
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=l3_AMPx7Z83ZpTyokU9THjz9ecpafxITwTERb2tzS3s,1890
16
+ pyjallib/max/header.py,sha256=CfjcRmXouCNENFycTdHSx68FLa3eoIKttC8XvIp48JY,2229
15
17
  pyjallib/max/helper.py,sha256=DGoGNX1fuDRkBnndQSFYgxeYrkOfJdnkf5EVBKqsJqc,15566
16
- pyjallib/max/layer.py,sha256=BFnW2-KiYbMKUTiOVKk15D4_y08qJs152NhJvrNAgzg,8677
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/macro/jal_macro_align.py,sha256=6nuDRvL_UX93NMX62Sbw9wfso_VJL7ChA6YRAxvSFw0,4242
24
- pyjallib/max/macro/jal_macro_bone.py,sha256=mHhNJiIz635O8SCxBuTR71hwIsd3JjhVuO9fdAZ1bbY,12394
25
- pyjallib/max/macro/jal_macro_constraint.py,sha256=leMSR45_ignXFt7aK_mtIOef9mW8TMS-pp6KpE-O3Hk,4132
26
- pyjallib/max/macro/jal_macro_helper.py,sha256=PVXjEj_T8fegmo8RngH3VcWueMa0H6ctHl0VokDmzdY,11476
27
- pyjallib/max/macro/jal_macro_link.py,sha256=tdaEvH2BEjzvLnsb3OMICQ2Y5co_dlLOXdBBqUadpts,1165
28
- pyjallib/max/macro/jal_macro_select.py,sha256=xMSj_ONxOnJ4wikOgTBCvYORQNwt3Pr_BamcxTv-LlU,2261
29
- pyjallib-0.1.1.dist-info/METADATA,sha256=izQsoWdtUm7G7upcZG4-uGKNUznkPJrzKXQKWOSZBJY,858
30
- pyjallib-0.1.1.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
31
- pyjallib-0.1.1.dist-info/top_level.txt,sha256=CLvmT5Ev4lzPahY9Cb06KEwbe_2GHUKSZYjxBt8KAR0,9
32
- pyjallib-0.1.1.dist-info/RECORD,,
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,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.1)
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -1 +0,0 @@
1
- pyjallib