안녕하세요 계도님,
1. 기본 임시저장 폴더가 서버로 지정되어있는데, 플레이블라스트를 실행하면 뷰포트캡쳐화면 저장후 자동 재생이 안됩니다.
이경우 Save to file 옵션을 꺼주거나 다른 로컬 폴더로 지정해주어야 재생됩니다.
왜그런것인가요?? (주소가 드라이브가 아닌 //로 시작되어서 그런것인가요??)
2. pre/post MEL 을 활성화/비활성화 시켜주는 옵션이 있나요?
회사에서 렌더가 끝나면 "system(start.." 명령으로 특정한 프로그램을 실행하도록 잘 쓰고있는데요,
집에서 똑같은 명령을 post MEL 에 입력했는데 안되더라고요.
이상해서 직접 스크립트 에디터에서 해당 명령을 실행해봤는데 명령 자체는 잘 먹히던데... 왜그러죠??
집의 컴에는 마야 8.5 와 2008 이 동시에 깔려있습니다. 혹시 서로 다른 두 버젼의 마야간에 충돌이 발생하는 건가요??
3. 마야상에서 적용할 수 있는 배치렌더 명령은 무엇인가요?
(도스모드에서 사용하는 render 명령과는 달리 마야에서는 render 가 소프트웨어렌더러에 한정되어있고 옵션도 다양하지 않더라고요..)
4. 띄어쓰기가 포함된 주소를 짧은형태로 줄이거나(ex. Program Files 를 progra~1로..) 띄어쓰기를 인식시키는 방법이 없을까요?
(웹상에서 띄어쓰기가 %2 로 표시되는 것처럼요..)
감사합니다~ 꾸벅^^
답변 감사합니다~^^
2. 해결책은 알아냈습니다만 '4번'과 연계된 문제때문에 또다른 벽에 부딪혔네요.
일단 system 명령에서 'start'나 'load' 옵션없이 곧바로 문서 이름을 지정하니 잘 되네요..
마야에서 배치렌더를 걸때 제가 원하는 결과가 나타나지 않았다는 것이었는데요, 어제 컴퓨터가 많이 느려진 상태에서 순식간에 뭔가 나타났다 사라지는 것을 목격하고
'아하!'했습니다.
아마 배치렌더쉘이 닫힘과 동시에 postMEL에서 실행된 결과도 함께 종료되어서 그랬던것 같네요.
이전에는
system("start notepad 문서위치및이름")
으로 사용했다면 지금은
system("문서위치및이름")
으로만 쓰고있습니다.
근데 띄어쓰기가 문제가되네요.. 띄어쓰기때문에 주소일부가 옵션 내지는 명령으로 알고 오류가 발생합니다. 이를테면
system("c:/test test/test.txt")
라고 쓰면 test test 가 폴더 이름인데도 불구하고, c:/test 라는것이 명령인 것으로 인식하여 오류가 발생합니다.
따옴표 안에 명령과 주소를 함께 쓰는 형태라서 주사만 따옴표를 감싸는 것은 불가능 하고요... 어떻게 해결해야할까요??
3. 도스상의 컴맨드 렌더의경우 render -r sw -l layer1 -mb 0.... 이런식으로 원하는 렌더러, 이미지 타입, 레이어, 이미지저장위치 등을 지정할 수 있는 플래그들이 많잖아요~
그런데 마야내에서 render 라는 명령을 사용하면 렌더셋팅에서 지정한 설정만 따르게 되어있더라고요.. 거기다 '소프트웨어렌더러'에만 한해서 쓸 수 있고요..
혹시 도스의 컴맨드 렌더처럼 강력한 명령이 있나해서 여쭈은것이었습니다.. 커스텀하게 쓰기엔 정말 좋은데...
system("start notepad \"c:\\test test\\test.txt\"");
이런식으로 "안에서 "를 쓰실 수 없습니다 \를 이용해서요. 그리고, \를 써야할 경우는 \\이렇게 쓰셔야 하구요.
xform -q -ws -m;
명령으로 world space transform matrix를 얻어내실 수 있는데요,
4 0 0 0 0 4 0 0 0 0 4 0 0 15.518362 0 1
이런식으로 리턴되는데
4 0 0 0
0 4 0 0
0 0 4 0
0 15.518362 0 1
여기서 4,4,4 가 global scale입니다.
감사합니다!!! 스케일 문제가 드디어 해결되는군요^~^
근데 system 명령은... 여전히 안되네요..ㅠㅠ
따옴표를 중복해서 사용해도 띄어쓰기된 부분은 한덩어리로 인식하지않네요..ㅠㅠ
(물론 start 나 load 와 함께 사용하면 됩니다만, 이것들을 쓰지 않은상태에서 작동되어야하거든요..)
암튼, 감사합니다~! 많이 배워갑니다~^^
아... 알아낸 월드 스케일 값을 적용하려고 하는데 무슨 명령을 써야하는건가요?;;
xform -q -ws -t 로 알아낸 값은 xform -ws -t 로 적용하면 되잖아요?
스케일도 알아낸 글로벌 값을 xform -ws -m 으로 적용하면되는건가요?
제가 지금 큐브 하나를 만들고, 그것을 복사한다음 그룹을져서 그룹스케일 조절해봤거든요.
그다음 두개의 큐브를 xform -q -ws -m 명령으로 매트릭스 값을 확인/비교해봤는데
글로벌 스케일 부분 말고도 나머지 숫자도 달라져있더라고요..
제가 조절한건 달랑 상위 그룹의 스케일 하나뿐인데...왜그러죠?? (위치나 로테이션 변화도 없었어요)
이부분은 무시하고 글로벌 스케일 값만 일치시키면 크기가 같아질까요??
transform matrix는, translate, rotae, scale, shear 값이 종합되서 만들어지는거라서요,
약간의 rotate, shear값만 있어도 제가 말씀드린 부분은 값이 변하게 되네요.
rotate, shear값이 포함된 transform matrix에서 scale 정보를 뽑아내는건 좀 복잡한 계산이 필요한대요,
쉽게 알아내려면 dummy 노드를 하나 만들어서 편법을 쓰면 됩니다.
즉, dummy 노드를 transform matrix로 이동시킨뒤, rotate, shear 값을 다 0을 주는거지요.
예를 들어, pCube1은 scale은 3,3,3 , rz = -29.228 인 pCube1이 있을 때
xform -q -ws -m pCube1;
하면
2.618058 -1.464845 0 0 1.464845 2.618058 0 0 0 0 3 0 0 0 0 1
이런 값이 나오거든요, 여기서는 scale이 3,3,3 인걸 알기 어렵죠.
이럴때 dummy노드로 pCube2를 만든다음
xform -ws -m 2.618058 -1.464845 0 0 1.464845 2.618058 0 0 0 0 3 0 0 0 0 1 pCube2;
하면 pCube2가 pCube1하고 똑같아지잖아요,
그다음에
setAttr pCube2.rz 0;
한뒤,
xform -q -ws -m pCube2;
하면
3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 1
이 나와서 scale이 3,3,3 인걸 알 수 있습니다.

1. 그렇지 않을까요? 저도 잘 모르겠네요.
2. 서로 다른 두 버전의 마야 충돌은, path 상에서 누가 우선순위가 있는가 정도 말고는 없거든요.
문제가 되는 상황이 마야 내에서 배치 런더를 하시면서 하시는건가요? 도스상에서 커맨드로 렌더하시면서 하시는건가요?
3. 마야에서 렌더를 바꿀 수 없다니요? Render Settings에서 지정하신 렌더러와 옵션으로 렌더가 되지않나요?
4는 ""를 사용해서 하시면 안되나요? 아니면, progra~1의 방법을 쓰셔도 되구요. 원리는 첫5글자까지 다음에 순서대로 ~1, ~2, ~3 이렇게 붙여서 쓰시면 되구요.