조회 수 1675 추천 수 1 댓글 8
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부

  꽤 오래 전부터 간단하게 팁을 좀 정리해서 써볼까 했는데, 제 방식대로 작업을 하다보니 유저데이터라든지, xPresso가 굉장히 장황해져버려서 보기쉽고 간단하게 쓴다는게 쉽지가 않네요.
 특히 6월 정모는 꼭 나가고 싶었는데, 마감이라는 덫에 빠져서 결국 또 못나가게 됐습니다.
 여러가지 핑계로 이래저래 미루다가, 이번엔 제대로 함 글을 써보려고 워드패드를 열었습니다 ㅎㅎ

 

 우선 오늘 소개해드릴 부분은 Instance를 활용한 오브젝트의 레졸루션 변경에 대한 팁입니다.

 

 이번에 프로젝트를 하나 하다보니, 꽤 많은 양의 폴리곤 수를 가진 오브젝트를 처음엔 하나로 셋팅을 시작하다가 이녀석들이 떼거지로 등장해서 서로 유기적으로 움직이는 부분을 리깅하기에 이르렀습니다.  지까짓게 폴리곤이 많아봤자겠지.. 라고 생각했습니다  ㅠㅠ.
 개인적으로 Cinema4D를 무척 맘에 들어하고 있지만, 폴리곤 양이 많아지기 시작하면 버벅대는 부분은 타툴(맥스나 마야, 후디니, XSI)에 비해서 성능이 조금 떨어지는 것 같더군요.
 리깅이 어느 정도 완성되고 나서, 애니메이션을 잡으려 하니 도저히 실시간으로 볼 수 있는 상태가 안되서 애니메이션 작업 때 엄청나게 애를 먹었습니다.
 그러던 중, 애니메이션을 거의 다 잡아갈 즈음에 아이디어가 떠올라서 인스턴스를 접목시켜 작업하기 시작했는데.. 이 때는 이미 리깅이 끝난 상태라 우선 ... 생노가다로 키는 다 마무리했었더랬죠..


 사설이 좀 길었습니다. 이런 이유로, 대략적인 애니메이션을 잡기 위해 많은 양의 폴리곤이 가득한 화면을 적은 양의 폴리곤으로 바꿔 애니메이션을 잡고 최종 렌더 때 원상태로 돌려 렌더할 수 있도록 셋팅하는 법을 소개해볼까 합니다.

 

 우선 큐브를 하나 만들어보겠습니다.
 이름은 음.. lowResObj라고 할께요. 셋팅값은 그림과 같습니다.

1.jpg

 

 low Resolution, 최저량의 폴리곤 수로 셋팅이 되야할 오브젝트니, 세그먼트수를 1로 뒀습니다.

 

이런 식으로, midResObj와 hiResObj까지 만들어줍니다.
(midResObj는 세그먼트를 10, hiResObj는 30으로 맞췄습니다.)

2.jpg

3.jpg

 

 


 이제 instance를 꺼내보죠. hiResObj를 선택하고 instance를 클릭해서 생성해주면, instance에는 hiResObj가 링크되어 생성됩니다.

4.jpg

 

 lowResObj를 드래그해서 hiResObjInstance의 Reference Object 옆의 링크 안에 넣어봅니다.
5.jpg

 

 

 현재 오브젝트들이 몽땅 같은 위치에 겹쳐 있어서 뷰포트 상에서 정확한 확인을 하기엔 좋은 상태가 아닙니다.

 이 상황을 해결해 보죠.
 

 우리가 정확하게 쓸 오브젝트는 큐브들이 아닌 인스턴스 오브젝트입니다.
 즉 원본 큐브는 가능한 안전하게 보관을 해둬야한다는 거죠.
 

 일단 hiResObj Instance라는 인스턴스 오브젝트 이름을 바꿔주죠. 나중에 헷갈리지 않도록~ 자기 취향대로 해주시면 됩니다.

 자꾸 말이 길어지는데 ㅠㅠ.. 이 인스턴스 오브젝트도, 원본 인스턴스 오브젝트로 따로 보관을 하게 됩니다.
 전 그냥 orgObjInstance로 바꿔두기로 했습니다.


 큐브들(hiResCube, midResCube, lowResCube)을 선택하여 한 그룹으로 묶습니다.(alt+G - 개인적으로 키셋팅 따로 하시는 분들은 Group Objects 커맨드를 실행해주시면 됩니다.)
이 그룹 역시 헷갈리지 않도록 네이밍을 해줍니다. 그리고 이 그룹의 Visible in Editor와 Visible in Renderer를 Off시켜줍니다.


* 나중을 위해서라도, 아무리 바빠도, 네이밍은 구분이 잘되도록 해주는게 정말 중요하다고 생각합니다. 개인 취향일지도 모르지만.. 전 오브젝트 이름에 a,b,c,d,e,12,3,ooo,aaa ...이런걸로 오브젝트 네이밍 해놓으면 환장하겠더라구요.

큐브를 그루핑해서 visible부분을 off시키는 이유는, 큐브의 visible부분을 off시켜버리면 인스턴스 오브젝트에서도 꺼져버리기 때문입니다. 각 큐브들의 visible부분을 켰다껐다 해보시면 무슨 뜻인지 바로 이해하실 겁니다.

* alt키를 누르고 visible부분을 나타내는 동그란 두 원 을 클릭해보시면 두개가 동시에 꺼졌다 켜졌다 합니다.

 

6.jpg

 

 

 

이제 orgObjInstance를 선택하고, 다시 인스턴스를 생성해줍니다.
이녀석은 instanceObj로 이름을 바꿔주었습니다.
orgObjInstance를 아까 큐브에서 했던 것처럼 그루핑해서 visible부분을 off시켜줍니다.
여기까지 잘 오셨다면, 아래와 유사한 상태가 되어 있을 것입니다.

7.jpg

 


이제 뷰포트엔 instanceObj만 표시될 것입니다. (렌더러에도 마찬가지구요)

 

 

이제부턴, xPresso와 UserData를 활용해서 오브젝트를 바꿔주는 이 튜토리얼의 핵심적인 부분입니다.


기본적인 개념은, 해상도별로 바꿔줄 스위치를 하나 만들어서 이 스위치가 켜지거나 꺼지는 또는 1번,2번,3번 스위치에 따라서 인스턴스 오브젝트에 걸린 링크를 바꿔주는 것입니다.

 

null을 하나 꺼냅니다. resCtrl로 이름을 바꿔줄께요. 취향따라 헷갈리지 않게 알아서 네이밍하시면 됩니다.
이 녀석에다가 xPresso를 하나 생성해줍니다.

 

8.jpg

 

 

 

xPresso가 생성된 걸 확인하셨으면, 일단 xPresso는 그대로 놔두시고 resCtrl에 유저데이터를 생성해보겠습니다.
스위치는 간단하게, boole형태(우리가 흔히 쓰는 컴퓨터 on/off스위치같은)로 low/high로 해도 됩니다만, 기왕 하는 김에, low/mid/high 이 3가지 모드를 선택할 수 있는 스위치로 만들어보겠습니다.

res Ctrl을 선택하시고 User Data -> Add User Data.. 를 고릅니다.

9.jpg

 


Manage User Data라는 창이 뜹니다. Add Group을 먼저 클릭하시고 네이밍해줍니다. Data를 드래그 해서, 그룹 안으로 넣어주시구요.  다시 그룹을 드래그 해서 User Data밖으로 꺼내주셔서 최종적으로 아래와 같은 형태가 나오면 됩니다.

10.jpg

 

 

Data부분을 바꿔줍니다.
Data Type 엔 Integer, Interface는 Cycle로 바꾸고, 이름은 resChange로 바꿨습니다.
Cycle Option부분이 조금 까다로울 수 있는데, syntax부분을 잘 보시면 Syntax : value; string[;iconid]<new line>이라고 되어 있습니다.
문법에 대한 부분이죠.
" 수치; 문자[;아이콘 아이디 ] 새 줄 " 이런 식으로 작성을 해주면 됩니다.
0; low Resolution Object
1; mid Reolution Object
2; high Resolution Object

 

11.jpg

 

 

이렇게 3개의 0번,1번,2번 스위치 역할을 할 유저데이터를 생성했습니다. 아래처럼 CTRL이란 유저데이터 그룹과, resChange란 유저데이터가 생겼습니다.

12.jpg

 

 

 이제 이렇게 만든 유저데이터를 엑스프레소를 이용해서 원본 오브젝트들과 인스턴스를 연결해주면 됩니다.
 우선 resCtrl의 옆에 xPresso태그를 더블클릭해 xPresso창을 열어줍니다.


저 휑한 그리드 위에, 몇가지만 연결시켜주면 됩니다. 힘내세요..

 

xPresso창 위로 resCtrl을 드래그해서 가져다줍니다.

13.jpg

 

 

resCtrl박스의 우측의 빨간 부분을 좌클릭하시면 아래처럼 메뉴들이 나옵니다. 이 메뉴들은 모두 resCtrl이 가지고 있는 속성들입니다. 이 중에 아까 생성시켰던 유저데이터 그룹(전 CTRL이라고 이름지었습니다)의 CTRL->resChange속성을 선택해줍니다.

14.jpg

 

 

 

이 resChange 속성이 바뀔 때마다 orgObjInstance에 링크된 오브젝트를 바뀌도록 설정하려고 합니다.
instanceGrp안의 orgObjInstance를 드래그 해서 xPresso창으로 가지고 온 후, 이번엔 왼쪽의 파란색부분을 좌클릭해서 Object Properties -> Reference Object를 꺼내줍니다.

15.jpg

 

 

이런 식으로 나와 있으면 성공입니다.

16.jpg

 

 

자 이제, 스위치에 따라서 이 orgObjInstance라는 인스턴스 오브젝트에 링크될 오브젝트들을 바꿔주도록 해야합니다. 가장 핵심인 부분이죠. 사실 이 부분에 대한 개념은, 프로그래밍을 조금이라도 손대보신 분들에겐 정말 쉬운 부분이지만, 디자이너분들에겐 무척 생소한 개념일수도 있습니다. 위에서 잠깐 언급했지만, 우린 현재 resCtrl이란 널 오브젝트에 resChange란 스위치를 만들어줬습니다.
0; low Resolution Object
1; mid Reolution Object
2; high Resolution Object

이와 같이 말이죠. 0번과 1번, 2번 스위치 이렇게 3개를 만들어 준 것입니다.


이 각각의 스위치 번호에 따라 오브젝트를 연결해주는 것이죠.


여기서 필요한 노드가 바로 Condition이란 노드입니다. 이 녀석은 연결된 스위치의 번호에 따라 각 번호에 맞는 인풋에 연결된 오브젝트를 아웃풋으로 출력해주는 역할을 하죠
xPresso창에서 우클릭을 해보면 풀다운 메뉴가 뜹니다. 여기서 가장 상위의 New Node -> XPresso -> Logic -> Condition을 선택해서 Condition노드를 xPresso창에 꺼내도록 합니다.

17.jpg

 

 

꺼낸 후 resChange의 빨간 점을 Condition의 Switch란에 연결을 해줍니다.

18.jpg

 

 

이제 Condition의 Output의 빨간 점은 orgObjInstance의 Reference Object로 연결을 해줘야하는데요. 연결을 하려고 치면 회색 선이 보이면서 연결이 되질 않습니다.
이유는 Condition의 데이터타입이 연결될 오브젝트 - orgObjInstance와 맞질 않기 때문입니다.


아래와 같이 각 노드의 파란 점 위에 마우스를 올려놔보시면 이 부분에 연결되야할 데이터 타입을 알려줍니다.

19.jpg

 

현재 Condition의 인풋은 [Real : 일반적인 수치 데이터입니다. (1.4cm와 같은)] 이며 Reference Object는 데이터 타입이 Link로 되어 있죠.  Condition의 데이터 타입을 Link로 바꿔주면 해결됩니다.

20.jpg

 

21.jpg

 

 

이제 이렇게 연결이 될겁니다.

22.jpg

 

스위치가 3개니, Input1,2만 가지곤 안되겠죠. Input을 하나 추가하고 보기 좋게, 이름을 바꿔줍니다.
Condition의 왼쪽의 파란 부분을 좌클릭해서 Input을 선택하면 Input이 하나 더 추가됩니다.

23.jpg

 

(*창을 정확하게 맞춰주기 위해 Condition의 저 빨간 부분을 Ctrl+더블클릭해보세요. 꺼내진 인풋 수에 맞춰서 창이 확장되거나 축소되면서 정확하게 크기를 맞춰줍니다.)

24.jpg

25.jpg

 

 

Input을 우클릭해보면 다음과 같은 메뉴가 나옵니다. Rename Port를 선택해서 각각의 이름을 바꿔줍니다. 어디까지나 작업의 편의를 위한 것입니다. 귀찮더라도 지켜주시면 자자손손 인생이 편안해집니다(?)...(죄송합니다. 제 개인취향일 뿐일지도 모르는데.. 자꾸 강조하는군요..)
이름을 다 바꾸시고, condition창을 ctrl+더블클릭하시면 크기가 다시 최적화될 것입니다.

26.jpg27.jpg

 

 

이제 거의 막바지군요..
objGrp를 열어 lowResObj를 xPresso창으로 드래그하시고 우측의 빨간 부분을 클릭하셔서 Object를 꺼낸 후, Condition의 lowResObj에 연결합니다. 

28.jpg

29.jpg

 

 

lowResObj노드를 ctrl을 누르신 후 아래로 드래그하신 후 마우스 버튼을 떼시면, 노드가 복사됩니다. 이걸 두번 반복하셔서 두개의 lowResObj노드를 복사합니다. 아래와 같은 결과가 나오면 "빙고"

30.jpg

 

midResObj와 hiResObj를 아래 그림처럼 드래그해서 넣어주면 노드의 아웃풋 상태는 그대로 두고, 리퍼런스로 삼고 있는 오브젝트만 변경이 됩니다.

31.jpg

 

 

이제 이 2개의 오브젝트를 Condition에 연결해주면 됩니다.

32.jpg

 

 

확인을 위해 뷰포트에 마우스를 놓고 , N-B 또는 N-D 를 클릭해 Gouraud Shading(Lines) (또는 Quick Shading(Lines))를 선택합니다.
33.jpg

 

 

resCtrl의 resChange를 바꿔봅니다. 아래와 같이 맞게 변형되면 성공입니다.

34.jpg

 


자 마무리로 한가지만 더 추가작업을 해보겠습니다.
resChange를 드래그해서 뷰포트로 꺼내보도록 할께요.

 

35.jpg

 

그럼 뷰포트안에 HUD가 생성이 됩니다. ctrl+클릭으로 이동이 가능하니 원하시는 부분에 이동을 시켜주세요.

36.jpg

 

이제 이 hud를 클릭하셔서 바꿔주시면 됩니다.
일단 몇가지 옵션 조절을 더해볼께요. 우클릭하시면 여러가지 팝업메뉴가 등장합니다.
Show -> Always를 선택하시면, resCtrl을 선택하지 않으셔도, 항상 뷰포트에 표시가 됩니다.37.jpg

 

Display -> Object와 Name을 체크해제해주시면, 필요한 노드이름만 볼 수도 있습니다. 그 외에 컬러 조절이나 심지어 아이콘까지도 자기 취향에 맞게 삽입할 수 있습니다.

38.jpg

 

 


긴 여정이 끝났습니다. ㅠㅠ
정말 짧게 쓰고 싶었습니다만, 제가 글재주가 부족한 관계로.. 무척 길어졌네요.

 

막상 여기까지 해보신 분들 중, 뭐야.. 이걸 대체 어따 쓰는 거지?.. 라는 분들도 계실지 모르겠습니다. ㅠㅠ
왜 인스턴스를 굳이 두번이나 쓴거지? 라던가.. 머 이거 그냥 Option에 Level of Detail을 low로 해주면 되는거 아닌가? 등등의 의문점이 나올수도 있겠습니다.
이런 여러가지 의문점들을 댓글로 달아주시면 시간날 때마다 열심히 답변드리도록 하겠습니다.


그리고 중간에 글이 너무 길어질 듯 해서, random 이펙터를 넣는 부분을 생략했는데, 이 부분을 첨가한 c4d파일을 첨부하도록 할테니 참조하셔서 도움이 되길 바랍니다. (본문엔 용량이꽉 차서.. 댓글로 올려야겠네요)

 

긴 글 보시느라 수고하셨습니다. 다음엔 sound effector를 활용하는 법이라던가.. 중간중간 익혀온 다른 팁들로 다시 인사드리도록 하겠습니다. (동영상 튜토 쪽으로도 생각을 해봐야겠습니다. 글정리하는게 너무 힘들군요 ㅠㅠ)

  • ?
    꺼니 2012.07.02 16:01 Files첨부 (1)

    change_resoultion 관련 c4d파일입니다.

  • profile
    길동 2012.07.03 16:22

    좋은자료 만드시느라고 고생많으셨습니다.~~

    최고!

  • ?
    꺼니 2012.07.04 13:09

    헤헷.. 앞으로 자주 올리도록 하겠습니다~!

  • profile
    정석 2012.07.04 12:36

    수고하셨습니다.~

    작업도 고생많으셨겠어요~

  • ?
    꺼니 2012.07.04 14:07

    그래도 거의 마무리가  되어가서.. 지금은 좀 살만하네요 ;;

    정모가서 꼭 다들 뵙고 싶은데.. 좀처럼 기회가 안나네요 ㅠㅠ

  • profile
    총각김치 2012.07.09 17:14

    감사 합니다. 주옥같은 튜토 로군요.

    고생 많으셨어요 ~~ 잘 보겠습니다.

  • ?
    재미쓰 2012.07.10 16:51

    와...너무 자세히 잘 설명을 해주셔서 그냥 완전 공부가 잘 되었습니다.

    감사합니다.

  • ?
    아론_데_림 2012.08.12 16:19
    와 너무 좋은 튜터입니다 잘 활용하겠습니다

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 팁 / 노하우 P2P Hidden Coin Miner 멀웨어 관련 증상 및 치료방법 (아이원스튜디오 배포) 2 file 염귤 2023.09.28 574
공지 릴레이 튜토리얼 [공지] '릴레이 튜토리얼 시즌2'를 시작합니다! 1 십사 2021.11.10 4473
공지 릴레이 튜토리얼 [공지]유저들과 함께하는 Relay Tutotial 연재 스타트! 12 그래바 2019.10.07 5516
공지 기초 이제 입문하시는 초보분들 필독.....!! 644 길동 2005.07.12 57440
753 동영상 강좌 동양적인 양피지 롤 에니메이션 3 아미노산스 2021.09.17 721
752 팁 / 노하우 조인트나 캐릭터 셋업 없이 간단하고 쉽게 에니메이션 하는 팁 3 아미노산스 2021.09.12 569
751 팁 / 노하우 C4D에서 주름을 표현하는 간단한 방법 4 아미노산스 2021.09.06 1203
750 릴레이 튜토리얼 [릴레이튜토리얼]제프한 - 토포와이어(TOPOWIRE) 플러그인 튜토리얼 4 젶한 2021.08.19 927
749 동영상 강좌 Glittering Tree - 옥테인을 활용한 씬 제작과정 2 박정규 2021.08.16 725
748 스터디모임 스터디 하실 분을 찾습니다! 15 Bloo 2021.08.16 1236
747 스터디모임 캐릭터 3D 애니메이션 스터디 모집 합니다. file 인삼군 2021.08.10 1331
746 팁 / 노하우 C4D 헤어를 이용한 나무 만들기 - 옥테인 재질, 시포디 나무, Cinema4d Hair Tree Octane Render 2 file 씨지토리닷컴 2021.07.25 1308
745 일반 Mac book air M1 에서 옥테인 과 레드쉬프트 랜더 테스트 신 제작 트윈즈 2021.07.17 819
744 동영상 강좌 방모델링/옥테인를 활용한 3D아트웍 난초홍 2021.06.17 1040
743 스터디모임 서울에서 스터디멤버 모집합니다 (마감) 규랭 2021.06.09 379
742 스터디모임 C4D스터디(C4Dium)를 같이 진행하실 분을 모집합니다.(3명) 3 file 김찹쌀떡 2021.05.20 916
741 팁 / 노하우 C4D 모델링 최적화, 시포디, 옥테인 렌더 최적화 file 씨지토리닷컴 2021.05.17 1774
740 스터디모임 같이 으쌰으쌰할 취준생 스터디 구해요~ 관찰기록 2021.05.02 276
739 기초 C4D 모그라프 기초 설명(클로너와 프렉쳐 기본 설명), 시포디 Mograph 입문 강좌(Cloner, Fracture) 씨지토리닷컴 2021.04.24 1413
738 기초 C4D 맵핑 기초, 프로젝션 맵핑 기초, 언랩 기초, 시포디 Mapping, Unwrap, UVW Mapping 입문 강좌 씨지토리닷컴 2021.04.15 1865
737 스터디모임 서울 cinema 4d 스터디 하실 분 ! 1 히린 2021.03.30 597
736 팁 / 노하우 C4D 학원에서 배우는 3점 조명 설치 방법, 핵심 노하우, 3 Point lighting 1 file 씨지토리닷컴 2021.02.05 3622
735 팁 / 노하우 C4D 옥테인 렌더 믹스 재질, Octane Mix Material file 씨지토리닷컴 2021.02.02 2222
734 팁 / 노하우 C4D 모그라프 이펙트 시리즈, Mograph Effect Serise Editer, 시포디 강의 file 씨지토리닷컴 2021.01.18 1347
목록
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 45 Next
/ 45
닫기

마이페이지

로그인을 해주세요