본문 바로가기

Graphics/3dsMax with python

[3dsMax python] Layer with pymxs 레이어 생성하기 안녕하세요, 레이어 생성하기 코드입니다. 레이어 계층을 관리할 수 있습니다. from pymxs import runtime as rt if __name__ == '__main__': parent = rt.LayerManager.NewLayerFromName("C") child = rt.LayerManager.NewLayerFromName("D") child.setParent(parent) 레이어에 객체 넣기 레이어에 객체를 넣어볼려고 하니깐, 어떤 함수가 있는지를 몰라서 맥스스크립트 문서를 참고했습니다. obj =rt.getNodeByName(target_name) layer = rt.LayerManager.NewLayerFromName(new_name) layer.addnode(obj).. 더보기
[3dsMax python] Scene object with pymxs 전체 씬그래프 탐색 맥스 왼쪽에 보면 레이어와 씬그래프를 볼 수 있는곳이 있습니다. 전체를 가져올때도 좋지만, 특정계층을 오브젝트를 가져올때 유용합니다. from pymxs import runtime as rt def output_node(node, indent=''): """Print the scene graph as text to stdout.""" print(indent, node.Name) for child in node.Children: output_node(child, indent + '--') output_node(rt.rootnode) 계층없이 모든 오브젝트 가져오기 objs = pymxs.runtime.objects for o in objs: print(o.name) 특정 오브젝트 가져오.. 더보기
[3dsMax python] pymxs 사용해보기 MAXScript 런타임 사용하기 자바스크립트의 런타임은 브라우저가 될수도 있고, node.js 가 될 수 있는것 처럼 맥스스크립트를 인식할 수 있는 런타임이 있고, 파이썬을 인식할 수 있는 런타임이 따로 있습니다. 근데 pymxs 는 맥스스크립트를 랩핑한거니깐 맥스스크립트의 런타임도 사용하는 것 같습니다. 근데 뭐.. 맥스스크립트를 잘 몰라서 큰 의미는 없을것 같습니다. 일단 '그냥 rt. 뒤에 나오는게 맥스스크립트에서 사용하는것과 비슷하게 사용하고, 맥스스크립트 런타임을 사용한다'고 이해하고 넘어야야 겠습니다. import pymxs rt = pymxs.runtime t = rt.Teapot() rt.classOf(t) MAXScript Undo System 이거 돌려봤는데 호출해서 사용했을때 버그가.. 더보기
[3dsMax python] 시작과 환경구축 3ds Max 3ds Max 는 많은 디자이너들이 사용하지만, 그 안에서 작동하는 Script에 대한 정보는 많지는 않습니다. 저도 잘 모르지만 파이썬 스크립트를 사용할 기회가 생겨 여기에 기록하며 공부해 보겠습니다. Python3 vs. Python2 3dsMax2021 부터 Python3 를 지원합니다. 새로 유입되신 분들은 '그럼 아직도 Python2 를 사용해왔다는건가?ㄷㄷ' 라고 의문이 들 수 있습니다. 근데 놀랍게도 3dsMax2020 까지 Python2 를 사용했습니다. 저도 맘같아선 Python3 를 사용하고 싶지만, 업체에서는 기존에 레거시가 있기때문에 2021를 사용하는 곳은 거의 없습니다. 저의 타겟은 3dsMax2018 이기때문에 Python2 를 사용해야합니다. MaxPlus vs.. 더보기
[python] setuptools과 setup.py로 빌드 로컬배포해보기 setuptools setuptools는 파이썬에 포함되어 있는 것을 확인했습니다. (따로 설치x) 제가 작성한 파이썬 파일은 다음과 같습니다. 아래 파일을 패키지화 해보겠습니다. def sayHi() : print "Hi, velbie! :)" 폴더구조를 아래처럼 만들었습니다. 원래는 helloworld 출력하는 velbie.py 밖에 없었는데 빌드하려니깐 README 파일이 필요하다고 해서 이 공식문서에서 readme를 복붙해 만들었습니다. (링크) 테스트부분은 없앴습니다. C:. │ README │ setup.py │ └─example_project velbie.py __init__.py setup.py 파일을 복붙해서 이름만 수정했습니다. (packages=부분을 봐주세요) import os fr.. 더보기
[python] setup.py로 배포 적용(import) 해보기 예제 작성 아래 소스를 빌드하고 배포하고 설치해보겠습니다. # velbie.py def sayHi() : print "Hi, velbie!" setup.py 생성하기 모듈을 빌드하고 배포하고 설치하려면 distutils 를 이용해야합니다. Distutils 에게 내 정보를 설명해줍니다. py_modules 에는 위에 파일이름을 .py를 제거하고 입력해줍니다. # setup.py from distutils.core import setup setup(name='velbie', version='1.0', py_modules=['velbie'], ) 빌드하기 velbie.py과 setup.py 를 같은 폴더에 넣어두고, 아래 명령어를 입력합니다. 그러면 dist 폴더가 생성되고 그 안에는 velbie-1.0.z.. 더보기