rpyc 모듈을 사용하여 외부 Python 인터프리터에서 Maya 작업
처음에
이전 Houdini를 만졌을 때, 외부의 Python에서 Houdini의
hou
객체를 조작한다 hrpyc
모듈이 굉장하다…hrpyc
를 참고해, Maya에서 같은 것을 쓸 수 있을까 생각했기 때문에 만들어 보았습니다.rpyc 모듈이란?
Remote Python Call, 즉 다른 프로세스의 Python 객체를 사용하기위한 모듈입니다. 1
호출자는 서버를 세우고 네트워크를 통해 호출자에게 객체의 프록시를 제공하여 다른 세션의 Python 객체를 사용할 수 있습니다.
자세한 것은 2 에 맡깁니다만, Houdini로 사용하는 hrpyc는 rpyc를 매우 간소하게 한 래퍼입니다.
사용법
pip install rpyc -t <mayaのScriptフォルダ>
에서 rpyc를 설치합니다. 바이너리는 없기 때문에 python2계라면 무엇이든 괜찮아… mrpyc.py
#! python2
# encoding: utf-8
import threading
from rpyc.utils import classic
from rpyc.core import SlaveService
from rpyc.utils.server import ThreadedServer
PORT = 18812
def _start_server(port=PORT):
t = ThreadedServer(
SlaveService,
hostname = '0.0.0.0', port = int(port),
reuse_addr = True, authenticator = None,
registrar = None, auto_register = False
)
t.start()
def start_server(port=PORT):
thread = threading.Thread(target=lambda: _start_server(port))
thread.start()
return thread
def import_remote_maya_module(server="127.0.0.1", port=PORT):
return classic.connect(server, port).modules['maya']
3. Maya의 ScriptEditor 등에서 다음을 실행하여 Maya의 서버를 세운다.
import mrpyc
mrpyc.start_server()
4. 외부 인터프리터에서 다음을 실행하여 Maya 모듈을 얻고 polyCube를 만듭니다.
import mrpyc
maya = mrpyc.import_remote_maya_module()
maya.cmds.polyCube()
rpyc · PyPI
조임
이외에 간단 수 있었어!
그냥 실험한 느낌, 몇 분이 지나면 연결이 죽거나 Maya가 충돌하기 때문에,
좀 더
hrpyc
의 _RemoteHouAttrWrapper
를 참고하여 구현하면 안전하게 할 수 있을지도 모릅니다.굉장하다고 생각하는 것만으로 실제로 사용한 적은 없습니다만. 3
제설이 있습니다. ↩
자신이 만진 느낌이라면 hrpyc.py에서 여분의 부분을 깎아 만들어 3시간 정도로 할 수 있었다. ↩
Reference
이 문제에 관하여(rpyc 모듈을 사용하여 외부 Python 인터프리터에서 Maya 작업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takumi_akashiro/items/68a9ca3a6f8ff86f92a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)