posted by cimple 2013. 4. 25. 19:17

이 리뷰 보셔도 사실 상관없어요 - 아이언맨3 리뷰




...라고 제목에 적었지만 다량의 미리니름을 내포하고 있습니다.


미리니름에 방해받고 싶지 않으신 분들은 '뒤로' 버튼을 눌러 주시면 감사하겠습니다.








사실 영화 개봉일에 리뷰를 쓴다는 것은 그다지 좋은 일은 아닙니다. 쓰는 사람에게도, 읽는 사람에게도요. 쓰는 입장에서 영화 리뷰란 영화를 보고 난 감상을 나누며 공감하는 목적이 클 터인데, 사실 영화를 보지 않으신 분들은 별로 읽고 싶지가 않을테고 공감이고 뭐고 없겠죠. 읽는 입장에서도 마찬가지로 '개봉일에 리뷰라니, 먼저 봤다고 유세하는건가 뭔가' 하는 생각이 들 수도 있습니다. 그래서 사실 좀 꺼려지기는 한데, 그렇다고 굳이 미루어 리뷰를 쓸 만한 작품까지는 아닌 것 같고, 그렇다고 나름 기대한 작품을 밋밋하게 넘어가 버리기도 아쉽고 하여 짧은 리뷰를 작성해 보려고 해요.


제목에도 썼지만, 리뷰 읽고 보더라도 별 상관은 없는 영화였으니까요.






영웅의 고뇌는 없었다


사실 예고편의 이미지들에서 아이언맨3 에서는 아이언맨의 영웅으로서의 고뇌, 어두운 면을 다루게 될 것이라고 기대했습니다. 간단하게 말하면 그런건 없어요. 뉴욕에서의 외계인 침공 사건 이후로(어벤져스가 출동했던 그 사건입니다. 어벤져스를 안보신 분들을 위해...) 내 힘으로는 내가 사랑하는 사람을 지킬 수 없을지도 모른다라는 정신적 압박에 시달린다는 '설정' 은 있지만, 그것이 왜 아이언맨에게 그토록 트라우마가 되었는지, 그것이 대체 어떤 의미였는지 설명도 없고 공감도 없습니다. 단지 뭐 그게 힘들었나보다 하는거죠. 더군다나 이러한 갈등과 메인 빌런인 '만다린' 과의 갈등은 아무런 연관관계가 없습니다. 만다린도 그런 트라우마 따위 일절 관심도 없고요. 이 영화에서 '아이언맨의 고뇌'란, 그냥 나쁜 악당 때려잡는 데 가끔씩 발작일으키는 질환 수준에 불과합니다. 그래서, 사실 제가 원했던 드라마는 없었습니다. 홀로 떨어진 곳에서 소년과 교감하며 트라우마를 치유하는 모습에서 그것을 발견했어야 했는데, 그래야만 했던 이유도 잘 모르겠거든요.






빌런은 몹시도 실망스럽다


사실 저는 영화보기 전에 이런 저런 정보를 많이 찾아보고 보는 타입은 아니어서(오히려 몰입이나 감상에 방해가 되는 일이 많기 때문에) 아이언맨3 의 메인 빌런인 만다린에 대해서는 잘 알고있지 못했습니다. 그런데 알고 보니 원작에서 대단히 강력한 빌런으로 등장한다고 하더군요. 때문에 사실 많은 분들이 이 메인 빌런에 대해서도 기대하지 않았을까 싶어요.


이것도 간단하게 말씀드리면 빌런 기대하셨던 분들은 크나큰 실망을 하셨을 수 밖에 없었을 같네요. 오래전 아이언맨으로부터 상처를 받아 복수를 꿈꾸고 빌런이 되었다는 좀 지나치게 흔한 설정에, 세계를 정복하고 돈과 권력을 손에 넣기를 원하는 다소 유치하다싶은 야망, 그리고 누구나 쉽게 예상할만한 허수아비를 세워두었다는 클래식한 전개까지. 아이언맨 슈트를 두부자르듯 잘라내는 그의 피지컬은 눈여겨볼 만한 것이었지만, '그릇된 욕망으로 만들어진 일그러진 과학의 산물' 로서 그 빌런은 그저 적당한 액션씬 제조의 대상이었다고 생각됩니다.


그 외에도 억지로 쑤셔넣은 서비스컷이라는 생각을 지울수없는 흐콰한 페퍼포츠의 액션, 뜬금없이 총맞아 사망하는 옛 연인 과학자 '마야', 비중있는듯 등장하다가 폭탄테러맞고 영화내내 누워있던 경호원 '해피' 까지, 떡밥회수 및 극중진행에 있어 탐탁하지 않은 부분들이 많았습니다.





인상깊은 장면들


혹평만 내리자니 훌륭한 장면 언급을 좀 해야겠네요. 다양한 아이언맨 슈트들이 등장해서 적과 싸우는 모습은 분명 눈여겨볼 명장면이었지만, 저는 영웅이 여럿으로 나뉘어지는 것 같아 그것도 좀 별로더라고요. 오히려 에어포스원이 추락할때 비행기에서 날아간 사람들을 한꺼번에 구해내는 장면이 진짜 영웅다운 멋진 모습이었던 것 같습니다. 그 외에 딱히 인상깊은 액션씬이 있었는지는... 불분명하게 사라져간 빌런 만다린으로부터 후속작의 느낌을 좀 받긴 했습니다. 아마 어벤져스에 대항해서 레드스컬, 로키, 어보미네이션 등과 함께 빌런 팀을 꾸려주지는 않을까... 하는 막연한 기대와 함께요. (극 초반에 중국인 박사라는 사람이 아주 잠깐 등장하는데 '닥터 우' 라는 또 다른 빌런이라고 하네요. 아이언맨 중국판에서는 좀더 다른 컷이 있다고 하는데;)






아이언맨의 끝


헐리우드에서 시리즈의 3편은 그 시리즈의 종결을 의미하는 경우가 꽤 됩니다. 스파이더맨, 캐리비언의 해적 등은 3편 이후 리붓되었고, 트랜스포머나 배트맨 등은 3부작으로 종결되었죠. 영화를 보고 나서, 아이언맨 하나로 나오는 시리즈는 사실상 종결되었다는 생각이 들었습니다. 슈트들을 폭파시킨 다음, 그토록 그를 괴롭히던 심장의 파편들을 끄집어 내고, '토니 스타크는 돌아온다' 라는 문구를 일부러 대문짝만하게 박아 놓았거든요. 이게 영화 끝부분에서 굉장히 순식간에 지나가서 보고 나서도 '어?' 하게 만들긴 하지만... 그래서 '나는 아이언맨임' 이라고 강조하긴 하지만, 아마 후속 어벤져스에서나 또는 다른 시리즈에서 잠깐 등장하는 정도로 아이언맨을 만날 수 있지 않을까 합니다. 사실 더 이상 아이언맨 혼자를 가지고 풀어 나갈 만한 이야기가 많아 보이지 않고, 또 그것이 매력적으로 보이지도 않을 것 같아서요.



사실 여러 모로 아쉬운 점을 지울 수 없었던 '아이언맨3' 이었습니다. 어벤져스 멤버들 중에 가장 인기가 많은 아이언맨이니, 오히려 눈을 사로잡는 화려한 액션이나 전형적인 히어로물의 전개보다는 그가 가지고있는 상처들과 두려움, 특히 '슈트'와 함께 해야 슈퍼 히어로가 되는 그의 숙명을 좀더 진지하게 다루어보면 어땠을까 하는 아쉬움입니다. 


하지만 감동이 전혀 없는 것은 아니었어요. 영화의 흐름과는 좀 다른 곳에서 마음이 울리긴 했지만 말이죠. 자신의 연구가 잘못된 곳에 사용되는 것을 괴로워하며, '마야' 박사가 2차 세계대전때 로켓을 발명했던 베르너 폰 브라운 박사의 말을 인용합니다. 우주 여행을 꿈꿨던 이상주의자 폰 브라운 박사는 V-2 로켓이 영국 런던에 떨어지자 이렇게 말했다고 합니다.


"로켓은 완벽했다. 하지만, 잘못된 행성에 떨어져 버렸다."




posted by cimple 2013. 3. 26. 17:01

Mental-ray shader programming Start-up link:

http://acaciaecho.wordpress.com/2011/04/15/mental-ray-shader-writing-startup/


위 사이트에 기본적인 쉐이더를 컴파일하는 방법이 잘 나와있는데, 이를 위해서는 MSVC 를 이용한 명령줄 컴파일을 할 수 있어야한다.


맨 아래에 소스코드 링크를 받아 보면 소스코드와 함께 배치파일이 들어 있는데, 이것이 컴파일을 하게 만들어 주는 명령행을 배치파일 형태로 만들어 둔 것이다.




대략 이런식으로 되어 있는 파일인데, 이 한줄 한줄의 명령어를 VS 명령 프롬프트(x64) 로 실행하면 각각 컴파일 및 링크가 되는 것이다. 


그런데 IDE 를 활용하지 않다 보니 낯설기도 하고, 추가 포함 디렉토리나 추가 라이브러리 디렉터리 등을 설정해 주는 법을 몰라 좀 헤매었다.


사실 이 명령은 VS 의 속성 페이지에 들어가보면 '명령줄' 에서 확인해 볼 수 있는 것이다. 우리가 속성 창에서 이리저리 조작하는 것이 결국은 이 컴파일하는 cl 과 링크하는 link 명령의 파라미터들을 조정해 주는 행동이라는 것.



그래서 여기에 나오는 옵션대로 내가 원하는 환경변수 등을 추가해 줄 수 있는 것이다. 


include 디렉토리를 추가해 주는 것은, 배치파일에 다음과 같은 set 명령행을 추가해 주는 것으로 추가하였다. 아마 링크에 대한 설정도 비슷하게 될 것 같은데 시도해보지 않아서 패스...



좌우지간 이런 식으로 패스등을 설정해서, VS 명령 프롬프트(x64) 를 실행시키고, 해당 배치파일이 있는 디렉토리로 들어가서 배치파일을 실행시키면 컴파일이 된다. obj 파일 및 dll 파일이 튀어나오는데 dll 파일, 그리고 소스코드와 함께 주어진 mi 파일 등을 Maya mentalray 디렉토리에 있는 정확한 위치에 잘 복사해주면 된다.


위 사이트에서 위쪽 부분에 있는 public source 링크를 받아보면 이미 멘탈레이 쉐이더에 포함되어 있는 쉐이더들의 소스코드 및 mi 파일들이 나온다. 똑같이 세팅해서 컴파일해서 확인해볼 수 있는데, 단 이때 같은 node 이름으로 쉐이더가 마야에 등록되어 있다면 dll 이나 mi 이름을 바꾸어 넣더라도 멘탈레이 쉐이더로 등록이 안된다. 테스트 해보고 싶으면 원래 있던 dll, mi 를 백업해놓고 지운 다음에 테스트해보도록.






위의 것은 다 차치하고, Visual Studio 에 Metal-ray 용 프로젝트를 만드는 방법도 있다. 이러면 간단히 Maya devkit 에 있는 include 와 library 디렉토리를 지정해주고 라이브러리 두개를 import 하는 것으로 세팅을 끝마칠 수 있다.


이 세팅 방법은 다음 링크에서 확인해 볼 수 있다.


http://pixelsorcery.wordpress.com/2010/08/25/writing-mental-ray-shaders-from-scratch-for-maya/


컴파일 해서 사용하면 잘 된다.



posted by cimple 2013. 3. 8. 13:59

Automatic Rigging 및 개인적 만족(;) 을 얻기 위해서 Sphere packing 알고리즘을 Maya 에서 구현하는 중이다.


이 때 거쳤던 난관들을 하나하나 기록해보려 한다.



1. particleFill 커맨드 문제


이 문제에 부딪혀서 상당히 오랜 시간을 헤맸다. 먼저 Maya 의 particleFill 명령어의 목적은 모델의 내부를 파티클들로 채워 주는 것이다.



(왼쪽 모델을 이렇게)


Sphere packing 위해서 모델 내부를 discretization 하는 과정을 그냥 Maya 의 기능으로 손쉽게 하는 것이다.


이 기능을 수행하려면 마야의 nDynamics 모듈로 들어가서 nParticles > createParticles > Fill Objects 를 선택하면 된다.


문제는 이것을 스크립트로 실행할 때인데, 해당 명령어의 MEL 스크립트는 아래와 같다.


particleFill -rs 50 -maxX 1 -maxY 1 -maxZ 1 -minX 0 -minY 0 -minZ 0 -pd 1 -cp;


이것을 MEL 스크립트로 실행하면 아무런 문제가 없이 잘 되는데, 문제는 이것을 Python command 로 import 해서 사용하는 데에 발생했다.


import maya.cmds as mc

mc.particleFill(rs=50,maxX=1,maxY=1,maxZ=1,minX=0,minY=0,minZ=0,pd=1,cp=1)

particle ;

# Error: RuntimeError: Maya command error #


이유를 알 수 없는 에러였다. 이것은 import maya.mel 이후 eval 명령어를 사용해도, from pymel.all import * 이후 Pymel 로 사용해도 같은 문제를 발생시켰다.


저 ' particle ; ' 이라는 마야 명령어를 실행시킬 때 문제가 발생한다는 것이었는데, Echo 를 찍어보아도 별다른 것이 나오지 않아 해결이 불가능한 버그였다.


한가지 다행인 것은 저런 에러 메시지와 함께 파티클이 생성은 되는데, 해당 부분이 에러처리가 되기 때문에 작성된 파이선 프로그램이 제대로 동작하지 않는 문제가 있다. 그래서 이는 이렇게 해결하였다.


try:

    particleFill(rs=100,maxX=1,maxY=1,maxZ=1,minX=0,minY=0,minZ=0,pd=1,cp=1)

except:

    pass


이렇게 하면 파티클 자체가 생성되고, 문제가 되는 particle ; 부분을 건너뛰어버려서 문제를 해결할 수 있었다.

 



To be continued...

posted by cimple 2013. 3. 5. 00:08

Python Module 사용법을 자꾸 망각해서(;;) 몇가지 내용을 메모해둔다. 나중에 정리해야겠다.



1. Python Module 을 import 하기 위해서


하나의 파일에 파이썬 스크립트를 작성하면, 이 스크립트를 모듈로 import 할 수 있다.

이를 위해서는 먼저 해당 파일이 Python path 안에 들어있거나, 

해당 파일이 위치한 경로를 Python path 에 등록해 주어야 한다.



import sys 

# sys 모듈을 먼저 import 한다.


print sys.path    

# 현재 Python path 확인이 가능하다


if "C:/Users/cimple/Documents/GitHub/autoRig" not in sys.path :

    sys.path.append("C:/Users/cimple/Documents/GitHub/autoRig")

# 내가 등록하고 싶은 path 가 이미 python path 에 등록되어있는지 확인하고 등록한다. 이 과정이 없으면 같은 path 를 계속해서 등록한다.


import autoRig

reload(autoRig)

# 내가 원하는 module 을 import 한다. 그런데 load 이후 한번 reload 를 해주어야 수정된 결과가 바로 업데이트된다. 아니면 수정을 하더라도 처음 import 된 모듈을 그대로 사용한다.

posted by cimple 2012. 12. 26. 22:11

Maya plug-in 개발 환경을 구축할 때, Plug-in wizard 를 사용하는 방법이 일반적이었지만, Maya version 및 Visual Studio version 에 따라 제대로 만들어지지 않는 등의 많은 문제가 있었다.


CG Circuit 의 Maya API 강좌를 참고해서 Maya Plug-in 개발환경 구축을 설명한다.



1. File > New Project > Win32 Project


2. DLL Project ,Empty project


3. Project properties


4. Configuration 탭다운 메뉴에서 All Configurations 선택


5. Linker > General > Output file 의 확장자를 .mll 로 변경


$(OutDir)\$(ProjectName).mll



6. C++ source code 추가


7. C/C++ > General > Additional include directory 에 Maya Include 디렉토리 추가


8. Preprocessor > Preprocessor Definitions 에


WIN32; NDEBUG;_WINDOWS;NT_PLUGIN;REQUIRE_IOSTREAM 


9. Linker > General > Additional library directory 에 Maya lin 디렉토리 추가


10. Input > Additional Dependencies 에


Foundation.lib OpenMaya.lib OpenMayaUI.lib OpenMayaAnim.lib 

OpenMayaFX.lib OpenMayaRender.lib Image.lib opengl32.lib glu32.lib


11. Command Line > Additional options :


/export:initializePlugin /export:uninitializePlugin


12. 상단의 Configuration 에서 x64로 변경 (64bit 의 경우)


Linker> Advanced 에서 target machine 확인

posted by cimple 2012. 10. 31. 16:12

 



엄재경 해설이 오늘 (날짜로는 어제군요) 강의를 오셨습니다. 3년의 대학원 생활 동안 많은 세미나 연사분들이 계셨지만, 이렇게 설레고 기대하는 마음으로 기다린 세미나는 처음이었고, 또한 이렇게 즐겁고 많이 웃었던 세미나도 처음이었던 것 같네요.

이제 제 나이도 서른줄이지만, 20대시절 열광했던 그 역사의 산실을 만들어온 주인공을 직접 만나뵌다는 것은 가슴 두근거리는(;;) 일이었어요. 

다른 세미나 연사분들과는 달리, 파워포인트 슬라이드 한 장 없이 강의만으로 두시간 가까운 세미나를 순식간에 지나가게끔 만드신 타고난 만담꾼, 엄재경 해설의 이야기를 조금이라도 전해 볼까 합니다.


스토리작가 엄재경, 그리고 스타리그의 시작. 

세미나 자리에는 저와 같은 스덕뿐만 아니라 다양한 사람들이 계셨으므로, 엄재경 해설은 먼저 만화 스토리 작가로 이 문화산업계에 처음 발을 들여 놓으시던 시절 이야기로 강의를 시작하셨어요. 엄재경 해설도 군대 제대하고, 복학하고 뭘 해야 하지 고민하는 흔한 청년들의 고민을 함께하던 시절이 있으셨답니다. 돈을 벌어야겠다는 생각에 노가다도 해 보시는 등 전전긍긍하다가, 당시 친구였던 만화작가 이충호님과 뜻이 맞아 만화의 스토리를 쓰는 스토리작가 일을 하셨다고 해요. 그때 만드신 작품이 당시 소년만화 보신 분들이라면 아실 "마이러브", 그리고 "까꿍" 이었죠. 놀랐던 것은 그 와중에 부모님의 걱정으로 잠시 대기업(!)인 LG 에 입사하신 적도 있으셨다고 해요. 그런데 회사 연수 다 받고 발령 3주만에 사표(;;)를 미련없이 쓰고 나오셨다고 합니다. 나는 내가 하고싶어서 이 만화일을 하는 것이다 라는 것을 부모님께 보여드렸다는 것에 만족하셨다고 하시네요. 

그리고 당시에 이충호님 말고도 스토리작업을 함께 하셨던 작품이 '초시공전사 넥스트' (제목만 들으면 응? 했는데 찾아보니 알겠더군요) 였는데, 이 작품이 잠깐은 드래곤볼을 제칠 정도로 인기가 좋았습니다. 그런데 엄재경 작가님이 스토리의 진행을 위해 소년 만화의 암묵적인 룰을 깨고, 당시 꽤나 인기 있었던 캐릭터를 죽였다고 하셨어요. 그러자 갑자기 만화의 인기도가 폭락(...), 그때 엄재경 해설은 어떤 마음가짐을 배우셨다고 해요. 대중을 위한, 대중이 좋아하는, 대중이 보고 싶어하는 이야기를 들려 주어야겠다는 것. 그리고 그런 마인드는 지금의 해설을 하는데까지 일관되게 이어져 내려오고 있다고 하셨습니다.

이어서 스타리그의 탄생 이야기 보따리를 풀어 주셨습니다. 스덕들이라면 아마 대충은 알고 있는 이야기겠지만, 만화 '까꿍' 을 게임화하고 싶어 하는 분들이 한데 모여서 밤새 토론한 것이 스타 이야기였다는 것, 그리고 그 때 만났던 분이 바로 지금의 온게임넷 본부장인, 당시 투니버스의 '게임플러스' PD 였던 황형준 PD 였다는 것, 그리고 거기서부터 '스타를 스포츠처럼 중계해보자' 라는 재미있는 도전이 일어났고, 탁구대에서 시작한 투니버스의 스타 중계가 99 PKO 로, 온게임넷으로, 그리고 스타리그의 전설로 만들어졌다는 이야기였습니다. 당시 황형준 PD가 참 도전적인 일을 많이 했다고 회고하셨어요. 특히 그때만 해도 네트워크 상태가 불안정하던 시절이어서 방송사고가 일어날 가능성이 높음에도 불구하고, 99년도 크리스마스 이브에 99 PKO 결승전 생중계를 강행했다고 합니다. 이때 소위 대박을 터뜨렸고, 온게임넷이 개국되고 지금의 E-sports 가 자리잡는 데 많은 역할을 했었다고 하네요.



새로운 세대, 새로운 문화 컨텐츠, 그리고 게임. 

엄재경 해설은 스타리그와 E-sports 에 대해서 평가하시면서, 일단 순수한 목적으로 자생적으로 커져 나간 풀뿌리 문화라는 사실을 먼저 꼽으셨어요. (특정 스포츠가 언급되어 죄송하지만) 전두환 정부 시절 3S 정책으로 계획적으로 만들어진 야구와는 달리, E-sports 는 정말로 그것을 좋아하는 몇몇의 사람들이 시발점이 되어, 게임을 조롱하고 무시하는 사람들의 틈바구니 속에서도 많은 게이머들이 끊임없은 노력과 의지로 그것을 건전한 문화로 정착시켰다는 것이죠. 

또한, 게임과 E-sports 가 한국이 IT 강국으로 성장할 수 있는 데 큰 밑바탕을 마련했다 생각한다고 말씀하셨습니다. 물론 IT 강국이라는 것에 대해 분분한 의견은 있을 수 있지만, 엄재경 해설은 일본의 문화산업, 일본인의 국민성에 대해서 언급하셨어요. 일본인은 개인주의적이고, 남에게 폐를 끼치기 싫어하기 때문에, 게임 패키지를 하나 사거나 만화책을 하나 사면 그것은 자신의 소유, 그리고 남에게 빌려달라거나 빌려주지 않는 문화라고 합니다. 반면 한국은 우루루 몰려다니며 무엇을 하기 좋아하는 문화라, 패키지 게임이나 단행본 만화가 살아남을 수 없는 구조라고 하셨어요. 

이러한 이유로, 최근의 일본은 나라 전체가 약간 쇄국에 가까운 이미지라고 덧붙이시며, 여전히 출판 종이만화, 그리고 콘솔게임이 고고하게 자리를 차지하고 있다고 하셨습니다. 반면 한국은 빠르게 출판만화 시장이 해체되었지만, 대신 모두가 함께 볼 수 있는 웹툰이라는 새로운 컨텐츠가 그 자리를 대신하였고, 패키지 게임 대신 MMORPG 가 흥행하게 되었다고 말씀하셨죠. 물론 장단점은 있지만, 엄재경 해설은 새로운 세대, 그리고 새로운 방식의 문화컨텐츠의 소비 방식에 있어서, 한국은 좀더 빠르게 그러한 흐름에 적응하고 있는 것 같다고 평가하셨어요. 그리고 그 원인중 하나는, 함께 게임을 보고, 함께 즐기고, 그것으로 서로 끊임없이 이야기하고 또다른 이야기를 만들어내는, E-sports 가 끼친 영향이 적지 않다는 것이죠. 

때문에 게임과 게임을 즐기는 게이머에 대한 편견없는 시각이 필요하고, 새로운 세대에 발빠르고 능동적으로 적응하기 위해 항상 새로운 것을 받아들이고 도전할 준비가 되어 있어야 한다는 것으로 강의를 마무리하셨습니다. 



질문과 답변 

사실 위에서 언급한 좀 딱딱한 이야기들 말고, 청중이 모두 함께 빵 터지는 무척이나 재미있는 에피소드나 이야기들을 많이 말씀해 주셨는데, 글로 옮기려니 영 재주가 없네요. 하긴 그 만담을 어떻게 글로 옮기겠습니까. 

시간이 금방 지나가버려서, 공교롭게도 제가 유일하게 엄재경 해설에게 질문을 한 질문자가 되었어요. 그래서 꼭 하고 싶었더 질문이 있어서 드렸는데,

"엄재경 해설님의 별명은 기적의 포장가, 엄대엄, 뭐 이런 별명이 있으신데, 이런 것들은 항상 어떤 스토리텔링을 하려고 하신다고 말할 수 있을것 같아요. 어떻게 그런 스토리들을 준비하고, 만들어 내시는지요?"

라는 질문이었죠. 엄재경 해설이 껄껄 웃으면서, 그런데 굉장히 구체적으로 답변해 주셨습니다.

일단 '기적의 포장가' 부분에 대해서, 엄재경 해설은 현재의 시대가 '스토리의 시대에서 캐릭터의 시대로 넘어가고 있다' 는 약간 의외의 말씀을 해 주셨어요. 즉 스토리는 별로 중요한 것이 아니다. 사람들은 진부하지 않은 새로운 이야기를 말하지만, 역설적으로 뻔한 이야기를 엄청 좋아한다, 라고 하시며, 같은 이야기지만 어떤 캐릭터이냐가 지금은 더욱 중요하다 라고 말씀하셨어요. 그 예로 드신 것은 락 음악에 대한 이야기를 하셨는데 저는 락 음악은 잘 모르고, 결론은 노래에서도 내러티브보다 캐릭터가 중요하다, 는 말씀이셨죠. (저는 "투헤븐" 과 "강남스타일" 의 차이 정도로 이해했습니다.) 그래서 스타리그에서도 각 선수들이 어떤 캐릭터를 가지고 있냐를 집중적으로 부각시키셨고, 결국 하나의 스타리그는 이 캐릭터와 캐릭터들이 서로 연결되어 만들어지는 하나의 컨텐츠가 된다, 그리고 이로 인해 올림푸스의 서지훈, 인크루트의 송병구처럼 한 시즌의 스타리그 전체가 그 캐릭터로 기억된다, 라고 멋지게 말씀해주시더라고요. 

그리고 엄대엄 부분에 대해서는 먼저 자신이 게임해설가를 하시면서 멘토가 되는 분이 누구였나를 말씀해 주셨어요. 게임해설가는 정말 엄재경 해설이 월드 퍼스트였기 때문에 (월드 베스트는 아니어도, 월드 퍼스트는 이견이 없다고 하시며) 누구를 참고할 만한 사람이 없고, 엄재경 해설은 하일성 해설위원을 멘토로 삼으셨다고 합니다. 그러면서 하일성 해설위원이 어떻게 해설이 되셨는지, 그리고 왜 인기가 있었는지 말씀해 주셨어요. 이런 거죠. 9회말 8:0 상황에서, "지금 이 팀이 한점을 내느냐가 앞으로 3연전에 영향을 줄수 있거든요?" 라고 말씀하신다는 거에요. 즉 사람들로 하여금 지속적으로 관심을 불러일으키고, 현재의 승부에 몰입할 수 있도록 만들어 주는 것, 바로 그것이 엄재경 해설이 배운 해설자의 역할이었다, 5:5의 비밀이다, 라고 말씀해 주셨어요.

그렇게 일단 강의가 끝나고, 이후에 함께 피자를 먹으면서 싸인도 받고, 조금 더 엄해설님과 함께 이야기를 나눌 기회가 있었습니다. 먼저 자신의 해설 포지셔닝에 대한 생각은 명확하시더라고요. 자신의 게임 상황을 정확하게 전달하고, 예측하며 분석하는 해설을 하기 어렵다는 것은 프로게이머 출신 해설자들이 하나 둘 씩 해설을 하게 되면서 정확하게 아셨다고 합니다. 결국, 위에서도 언급했지만 엄재경 해설은 대중을 즐겁게 하고, 많은 대중을 끌어들이는 해설을 해야 하겠구나, 그것이 나의 역할이구나 라고 말씀하셨어요. 그런데 스타 2에서는 그게 더욱더 힘들어졌다고 하십니다. 엄재경 해설은 스타 1은 권투에, 스타 2는 유도에 비유하셨어요. 서로 좀 치고박고 그러면 코피 터지고 피멍들고 그렇게 유불리를 알 수가 있는 것이 스타 1인데, 깃싸움 신나게 하다가 업어치기 한판으로 끝나 버리는 것이 스타 2라는 것이죠. 게임의 스타일과 양상이 다른데, 사람들은 스타 1의 해설을 기대하기 때문에 그것이 참 쉽지 않은 것 같다 라고 말씀하시더라고요.

그리고 좀 조심스러운 질문일 수도 있는데, 제가 "리그오브레전드가 대세가 될 것을 모르시지 않으셨을 듯 한데, 왜 리그오브레전드 해설을 하지 않으시고 스타2 해설을 하시게 되셨냐" 라고 질문드렸어요. 사실 지금의 대세가 롤이 될 것도 알고 계셨고, 스타 2가 고전중이라는 것은 엄재경 해설이 가장 잘 알고 계셨습니다. 하지만 그렇게 어려우니까, 그렇게 힘드니까, 바로 엄재경이어야만 한다는 온게임넷의 요청, 그리고 스타리그를 지켜야겠다는 본인의 결심이 있으셨다고 하셨습니다. 두 해설을 병행하는 것은 온게임넷 방침으로 안 되었고, 엄재경 해설은 힘든 항해일지언정 스타2라는 배를 선택했다고 말씀하셨어요. 블리자드 코리아 측에서도 현실을 잘 알고 있고, 군단의 심장에서 많은 것을 준비하고 있다고 귀띔해 주셨습니다.



이렇게 참 짧지만 소중했던 세미나가 끝나고, 감사의 인사를 마지막으로 엄재경 해설님과 헤어졌습니다. 정말 세미나 시간 내내 웃고 공감하며 즐거웠던 세미나 시간이었고, 또한 유익한 정보와 생각할 거리도 많았던 시간이었던 것 같습니다. E-sports 의 중흥의 역사를 만들어 오시고, 산 증인이신 엄재경 해설님, 누군가에게 가슴 뜨겁게 벅차는 이야깃거리를 만들어 내기 위해 지금도 고민하시고 노력하시는 엄재경 해설님, 앞으로도 더욱 훌륭한 해설가로, 또 컨텐츠 제작자로, 오래도록 그 열정을 우리에게 전해 주시기를 부탁드리겠습니다.

강의 감사합니다!

posted by cimple 2012. 10. 25. 14:33

 

 

2012 SIGGRAPH 의 Autodesk Masterclass 에서 등장했던 Animation Binder.

 

모션 캡쳐된 애니메이션을 캐릭터 Rigging 의 키값으로 옮겨주고 싶을 때 사용하는 툴이다.

 

http://markj3d.blogspot.kr/search/label/MasterClass

 

위 제작자 블로그에서 직접 다운로드 받을 수 있다.

 

사용법은

 

 

Autodesk MasterClass - Live Animation Binding from Mark Jackson on Vimeo.

 

위 동영상을 참고.

posted by cimple 2012. 7. 21. 16:33

- 다량의 미리니름을 내포하고 있습니다. 아직 영화를 보지 않으신 분들은 '뒤로' 버튼을 누르시기 바랍니다.


- 제목에서도 눈치채셨다시피, 영화 '다크 나이트 라이즈' 를 비판하는 내용을 상당수 포함하고 있습니다. 영화를 보신 분들이라고 하더라도 영화의 감동을 해치고 싶지 않으시고, 기분을 상하지 않고 싶으신 분들 또한 '뒤로' 버튼을 누르시기 바랍니다. 








어쩌면 우리는, 수없는 볼거리의 홍수 속에서, 어떤 것에 대한 기대감과 동시에 그것에 대한 실망감을 예견하는 버릇이 들어 버렸는지도 모릅니다. 기대치 않은 즐거움을 얻는 경우는 꽤 있지만, 기대한 곳에서 그만큼의 감동을 느끼긴 사실 대단히 어려워졌습니다. 때문에 사실 요즈음의 우리는 일종의 습관처럼 실망감을 예견합니다. 말하자면, 마지막 스타리그에서 4강의 테테전을 기다리는 마음이랄까요.


하지만, 그 가운데에서도 정말 오롯이 기대감만을 쏟아붓고 싶은 대상이 생깁니다. 다크 나이트 라이즈는 그런 흔치않은 대상이었던 것 같습니다. 전작의 성공도 있지만, 크리스토퍼 놀란의 '배트맨 시리즈' 에는 단순히 그런 박스오피스 숫자로 측정하지 못하는 일종의 '아름다움' 같은 것이 있었습니다. (표현할 단어가 정말 궁색하네요.) 그 아름다움이란, 헐리우드 블록버스터의 '오락' 에서 쉽사리 찾아보지 못하는 '영화의 미' 라고 개인적으로 생각합니다. 인간의 삶과 죽음, 선과 악, 진실과 거짓이라는 주제에 대해 '헐리우드 슈퍼히어로 무비' 가 깊이있고 복합적으로 그려내었다는, 좀 믿기지 않은 사실 말이지요. 우리는 그 전설과도 같은 작품이 마무리된다는 '다크나이트 라이즈' 에, 순수하고 열정적인 기대감들을 차곡 차곡 부어 넣었습니다. 


그리고, 전설은 끝났습니다. 영화 '다크 나이트 라이즈' 는 전설을 이어 나가기보다는, 전설을 끝맺고 싶었던 모양입니다. 시리즈의 마지막인 이유도 있겠지만, 제가 본 '다크 나이트 라이즈' 는 더이상 우리에게 어떠한 이야깃거리나 마음을 쏟을 만할 거리를 만들어 주지 못합니다. 그러면 왜 전설은 끝났다고 표현했는지, 그래서 왜 이 영화를 보고 난 다음, 또다른 찬사와 경탄보다는, 이 배트맨 시리즈가 잘 끝났음에 안도하고 미소짓는 정도로 극장에서 일어나야 했는지, 제가 느꼈던 이유들을 정리해 보고자 합니다.



...사실 너무 많아서 정리가 잘 될지 의문입니다. 






1. 사라진 캐릭터들.


'다크 나이트 라이즈' 를 좋게 볼 수가 없는 수많은 이유 중에서, 가장 먼저 말할 수 밖에 없는 것은 도무지 그 어떤 캐릭터도 매력을 느낄 수가 없다는 것이었습니다. 리뷰를 쓰면서 캐릭터 하나 하나를 되짚어 보아도, 전혀 공감을 형성하거나, 두려움이 들게 한다거나, 감동을 주는 인물이 없었습니다. 그 중에서도 최악은 악역입니다.






- 최악의 악역들.


전작 히스 레저의 조커를 단 한 마디도 언급하지 않아도, 베인은 그 자체로 너무나 특색없고 매력없는 악당입니다. (빌런이라는 이름도 아깝습니다.) 단지 그가 임팩트를 준 것은 목소리와, 배트맨과 싸워 허리를 부러뜨렸다는 사실 뿐이며, '지능과 힘을 겸비한 최고의 빌런' 이라는 사전 보정 없다면 카리스마도 그닥입니다. 


우리는 라즈 알 굴이라는 죽어버린 유령과 싸우는 배트맨을 보고싶지 않았습니다. 베인에게 결정적으로 실망하게 된 장면은, '라즈 알 굴의  뜻을 이룬다' 라는 대사부터 였던 것 같네요. 베인은 자신의 뜻과, 자신의 철학, 자신의 가치, 그리고 자신만의 악이 가득찬 도시를 그려 내야 했습니다. 그것은 그의 천재적 두뇌, 막강한 신체 등 그가 가진 특징들과 함께 개연성을 이루었어야 했고요.


헌데 그의 연설은 유치했고, 그 결과물의 도시는 단지 약간의 무법지대가 된 거 말고 대체 무엇을 이루었는가 무의미하며, 브루스 웨인을 가둬놓고 감시 한 명 안붙여놓는 어리석음에, 탈리아 알 굴의 순정남이었다는 꼭두각시 이미지가 덧씌워지더니, 결국은 배트맨도 아니고 캣우먼의 손에 죽음을 당하는 최악의 최후를 맞습니다. 전작 다크나이트에서 조커를 차로 치지 못하고 피해버리는 장면을 기억하신다면, 베인의 죽음이란 얼마나 비교 불능으로 가벼운 것인지요.


그렇다면 착한 여자 갑부인줄 알았다가 암흑 조직의 수장임이 밝혀진 탈리아 알 굴이 메인 빌런일까요? 그럴 수 없음은 역설할 필요도 없고, 일단, '다크 나이트 라이즈' 는 이런 반전 장난질이 필요한 영화가 아니었습니다. 모든 패를 다 보여줘도, 관객의 멱살을 쥐고 흔들 수 있는 힘이 있었죠. 그 얄팍한 반전이 가져다주는 충격도, 의미도, 가치도, 아무 것도 없었습니다. 단지 전작과의 연계성을 약간 획득하고, 가장 매력적이어야 할 빌런, 베인을 쓰레기통에 디밀었죠. 


기타 무의미한 졸개들은 언급도 못 하겠고, 하여간 '다크 나이트 라이즈' 의 악역들을 말하면 정말 안스러울 뿐입니다. 그들은 그 스스로도, 그들이 만들어 낸 고담시도 모두 실패작일 뿐이었습니다. 








- 멘토, 미아.


배트맨은 알프레드와 폭스, 훌륭한 멘토를 둘이나 둔 축복받은 영웅이고, 이들의 조언은 영화 전체에 담긴 어려운 질문들에 대한 해답을 찾는 데 있어 배트맨과 관객, 모두에게 방향을 제시합니다. 따라서 이들은 관객에게도 매우 중요합니다. 그러나 의도적이었는 지는 모르겠지만, '다크 나이트 라이즈' 는 멘토 없는 배트맨을 홀로 남겨둡니다. 알프레드는 배트맨 그만하고 평범하게 살라고 보채다가 비밀 말하고 떠나버리고, 폭스는 무기 셔틀로 전락합니다. 결국 배트맨은 조언자 없는 외로운 영웅으로 그려집니다.


이것이 '다크 나이트 라이즈' 에서 브루스 웨인이 겪어야 할 시련이었는지는 몰라도, 멘토들은 분명 배트맨 시리즈에서 매력 있는 캐릭터들이었습니다. 이들을 없애면서 대체 얻은 것이 무엇이었나 의문이네요. 또 알프레드가 밝힌 레이첼에 대한 진실은 우리가 알고 있던 무게감에 비해 너무도 가볍게 다루어졌습니다. 마지막 장면에서 알프레드가 바라던 평범함으로 다시 대면한 것으로, 그 갈등은 얼렁뚱땅 덮어지는 것이었나, 싶고요. 하여간 멘토의 부재도 정말 크게 아쉬운 면이었습니다.






- 그렇다면 다른 캐릭터는


그렇다면 다른 캐릭터들 중에서 매력적인 캐릭터가 있었느냐, 주인공인 배트맨부터, 캣우먼, 존 블레이크(로빈), 고든 경감, 다 어느 하나 딱히 인상깊다고 말할 수 있는 캐릭터가 없었습니다. '캣우먼이 이쁘다' 라는 사실이 있지만, 그걸 정말로 진지하게 말할 영화 아니었잖아요. '다크나이트 라이즈'가.


배트맨은 레이첼밖에 모르던 순정파에서 이 여자 저 여자 쉽게 만나고 마음주는 바람둥이로 변했고, 복잡한 철학이고 가치고 자시고 그냥 악당과 싸워 고담시를 지키는 전통 슈퍼 히어로가 되었습니다. 존 블레이크는 정의감 불타서 배트맨 없는 고담시를 이리저리 뛰어다니며 열심히 노력하고, 그 정의감과 현실 철학으로 나중에 로빈이 되는 것 같은데, 그렇다고 이 인물이 이번 '다크 나이트 라이즈' 의 중심적 인물이냐, 그건 아니고요. 고든 경감도 정의감에 열심히 뛰어 다닙니다. 그게 끝이고요. 선과 악을 오고가며 독특하고 매력적인 캐릭터로 그려졌어야 할 캣우먼은 그냥 과거 포맷하고 싶은 배트맨 도우미입니다. 


영화를 보면서 강렬한 인상 없이, 인물들을 더듬거리며 기억해 내야 한다는건 참으로 안타까운 일입니다. 그만큼 색깔도, 개성도 불분명한 캐릭터들이 잡탕처럼 뒤섞여, 폭발과 총성 속에서 두시간 여를 뒹굴다가 '그렇게 행복하게 살았습니다' 로 마무리하는 것이 '다크 나이트 라이즈' 의 인물들이었습니다.





2. 사라진 개연성들


쌓인 말을 쏟아내다 보니, 리뷰글이 지나치게 길어지는 듯 하네요. 개연성 부분 관련해서는 그냥 생각나는 것들을 개조식 가깝게 풀어쓰고자 합니다. 혹시 제가 잘 몰라서 개연성이 없다고 생각하는 부분이 있을 수도 있으니 그런 부분들은 조언 주시면 감사하겠습니다.



- 브루스 웨인 허리가 부러졌는데 접골 한방에 회복... 정말 이 부분은 웃음 터질뻔 했는데 참았네요.


- 감옥에서 탈출하는 브루스 웨인. 그 오랜 세월 아무도 탈출 못한 그곳을 탈출하는 방법이 '몸에 줄을 묶지 않고 훌쩍 뛰면' 된다는 것이, 아무리 그래도 좀 설득력이...;;


- 감옥 안에 있어야 할 브루스 웨인이 슬며시 엄중히 통제된 고담 시 안으로 들어와서, 제 발로 잡히기까지 했는데, 폭스가 있는 곳까지 안전히 배달되어서 들어옴. (흠;;)


- 베인에게 의해 본진 털려서 무기 다 빼앗긴 줄 알았는데, 폭스가 숨겨둔 무기 창고가 또 있어서, 무기 빼앗긴게 그다지 큰일이 아니었구나;


- 레이첼에 대한 진실이 밝혀져도 '알프레드는 쫓아내지만 뭐 딱히;'


- 하비 덴트에 대한 진실이 밝혀져도 '뭐 어쩌라고'


- 고든 경감 등이 사형판결 받고 강물위로 걸어가는데 안전하게 안깨지고, 반대쪽에서 배트맨 걸어옴;


- 경찰과 범죄자들이 한판 패싸움을 벌이는데, 도무지 납득이 가지 않음. 굳이 일렬로 달려들어 죽고, 패싸움을 벌일 필요가 왜 있는건지? 그냥 배트맨과 베인 싸움의 배경도구일 뿐?


- 밝은 대낮에 경찰들 옆에서 싸우는데 아무 주목이나 관심도 없이 싸우게 되는 배트맨.


- 비행기로 간편하게 가져다 내다 버릴 수 있는 궁극의 핵융합 무기


- 블레이크가 뚜껑만 열어줘도 빠져나올 수 있던 일부 갇혀 있던 경찰들


- 아무리 주인공이라도 핵융합 폭탄이 아슬아슬하게 폭발했는데 멀쩡히 살아있음. 차리라 알프레드가 고개를 들고 미소 짓는 정도로만 씬을 마무리했어도 좋았을 것 같은데.


- 배트맨이 브루스 웨인인줄 아는 사람이 이제 넘쳐남. (블레이크, 베인, 캣우먼, 고든 경감 등등등...) 



이게 다가 아니라 더 많이 있었던 것 같은데, 이 정도에서 마무리를 지을까 합니다.











3. 마치며...


오랜 만에 리뷰를 쓰려니 의욕적으로 시작해도 뒤로 갈수록 힘이 빠지네요. 게다가 재밌고 신나게 썼으면 좋겠는데 실망감이 큰 채로 남기는 리뷰글이라...


더 좋은 리뷰글을 남기지 못해 아쉽습니다. 그리고 '다크 나이트 라이즈' 는 더 좋은 영화가 될 수 있었을 텐데, 정말 아쉽습니다.


이로써 전설은 끝났습니다. 그런데 아쉬움 때문에 저는 아직 끝나지 않았던 시절의 전설을 다시 한 번 들추어 보게 될 것 같네요.


ThEnd.






posted by cimple 2012. 2. 22. 22:41
Maya Plug-in Wizard 는 쉽고 간편하게 Microsoft Visual Studio 환경에서 마야 플러그인을 개발할 수 있도록 설정을 해 주는 기능을 하지만, 마법사라는 놈들이 원래 그렇듯이 뭔가 자동으로 뭘 찾고 연결하고 하다보니 프로그램의 버전이나 환경 등이 조금만 달라져도 잘 동작하지 않는 단점이 있습니다.

때문에 Maya 의 버전에 따라서, 또 Visual Studio 버전에 따라, 운영체제에 따라(32-64bit) Plug-in Wizard 가 잘 동작하지 않는 경우가 많았는데, 이건 지금도 마찬가지입니다; 

지난번에는 Maya2009 - VS2008 조합을 해결하는 포스팅을 했었죠. 이번에도 비슷한 문제에 부딪혀서 이렇게 저렇게 많은 해결 방법을 시도했는데 실패를 거듭했습니다.

결국 구글의 도움을 받아, 아래에 있는 링크의 글을 통해 해결을 할 수 있었는데요, 다른 게 아니라 아예 Issac Peral 이라는 분이 Creative Crash 에 수정한 Plug-in wizard 를 넣어 두었습니다.


솔루션을 발견한 링크 클릭은 여기



파일 크기가 크지 않기 때문에 이 포스팅에 직접 해당 파일을 압축한 파일을 올려둡니다.

 

위 파일의 압축을 푼 뒤, Maya Plug-in Wizard 에 한번이라도 경험이 있으신 분들은 하던 그대로 설치해 주시면 됩니다. 잘 기억이 안나시는 분들도 Maya devkit 의 Plug-in wizard 폴더에 가면 (저 같은 경우는 C:\Program Files\Autodesk\Maya2012\devkit\pluginwizard 폴더 안에) TXT 파일이 있으니, 그것을 읽고 그대로 복사복사 하시면 됩니다.

단, 주의사항은

1.  Maya devkit 안에 들어 있는 TXT 파일에서, 64비트의 경우에는 MayaPluginWizard 폴더를 복사할 때 2중 구조로 복사해야 한다고 별표까지 쳐 놨습니다. 하지만 여기에 올려진 파일은 그냥 MayaPluginWizard 폴더를 Visual Studio 2010 의 VCWizard 폴더에 바로 복사해 주면 됩니다.

2. Visual Studio 2010 에서 Maya Plug-in Wizard 로 프로젝트를 생성하신 이후, 프로젝트 속성에서 구성 속성 > 일반 > 대상 확장명을 .mll 로 바꾸어 주시기 바랍니다. 아마 .dll 로 되어 있을 것입니다. 이건 프로젝트 생성할 때마다 바꾸어 주어야 하는 것 같습니다;


일단 '따라하세요'  수준의 포스팅을 마칩니다. 구글링을 해 보니 이러한 Plug-in Wizard 를 사용하지 않고 안정적으로 Maya Plug-in 개발환경을 구축하는 포스팅들이 있더군요. 나중에는 그 포스팅을 하여서 더이상 이런 폐해가 없도록 막아야 하겠습니다.

감사합니다.

 
posted by cimple 2012. 2. 14. 15:49

사실 이 포스트는 Maya Python Script 에 해당한다기보다는 Python String 처리라고 할 수 있다. 그러나 Maya Python Script 에도 유용하게 사용되었으므로 포스팅해 본다.


polyinfo 정보를 슬라이싱

Python script 에서 mesh 가 어떤 구조로 연결되었나를 로 알기는 사실 생각보다 까다롭다. (API 를 사용한다면 쉽겠지만)

Python script 에서 mesh 의 연결 구조를 알려 주는 script 는 polyinfo 이다.

만약, Mesh 의 이름이 pCube 라면

import maya.cmds as mc
mc.polyInfo('pCube1.vtx[0]', ve=True)


라고 입력하면, pCube 의 0번째 vertex 에 연결되어 있는 edge 가 무엇인지 알려준다. 그런데 이게 골치아프게도 return 값이 list 같은 형태가 아니라 string 이다.

# Result: [u'VERTEX 0: 10 2 0 \n'] # 


위와 같은 결과를 얻게 된다. 

즉 이것을 사용하고 싶으면 Python string 처리를 해서 잘라 써야 하는데, 익숙하지 않으면 상당히 귀찮은 일이다.

귀찮지만, 위의 경우에는 찬찬히 생각해 보면 다음의 과정을 거치면 된다.

1. 콜론(:) 의 위치를 찾는다.
2. 콜론 앞으로는 다 잘라내고, 콜론 뒤에만 쓴다.
3. 공백은 삭제하고, 각각의 숫자들만 따로 받는다.

이것이 다음 4줄의 코드로 구현된다.

tmp = mc.polyInfo('pCube1.vtx[0]', ve=True)

idx = tmp[0].find(':')

sparse = tmp[0][idx+1:]

result = sparse.split()



즉, 먼저 string 의 .find() 함수는 해당 문자열의 위치를 반환한다.

다음, 해당 문자열 바로 다음부터 쓰기 위해 슬라이싱을 할 수 있다. 문자열[숫자:] 로 하면, 문자열에서 해당 숫자 다음부터 잘라내서 쓰겠다는 말.

그리고, 그 문자열에 .split() 함수는 공백 단위로 문자열을 분리해준다.

이렇게 하면 다음과 같은 훌륭한 결과를 얻을 수 있다.

# Result: [u'10', u'2', u'0'] # 


이제 리스트 형태로 각각을 사용하기만 하면 끝.


검색, 치환하기

오브젝트 이름에서 공통된 특정 부분을 잘라내거나, 다른 것으로 바꾸고 싶을 때 replace 명령을 사용하면 된다.

jntName = 'Bizzy_L_Eye_03_jnt'

skinJntName = jntName.replace("_jnt","_skin")

skinGrpName = jntName.replace("_jnt","_grp")