주소복사 | 조회 수 500 추천 수 0 댓글 7
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

C4D로 작업하다 또 궁금한게 생겨 이렇게 고수님들의 조언을 듣고자 왔습니다. ^^;

 

재질을 입힌 오브젝트들이 여러 그룹에 분산되어 있는 상황인데요.

재질을 교체해야 할 상황이 생겨서요 다른 재질로 교체 하고 싶은데

 

Apply를 이용해서 교체는 했습니다. 근데 그전에 있던 재질은 남아 있더라구요

이런작업을 몇번하면 여러개의 재질이 쌓이는데 바로 교체하는 방법은 없나요?

없애주세요.jpg

 

위에는 이해하기 쉽게 예시를 든겁니다.

  • ?
    엘라스틱마인드 2013.06.21 18:49

    오브젝트 옆에 있는 건 사실 재질이 아니라 텍스쳐 태그 입니다.

    실제 재질은 텍스쳐 태그의 재질 탭에 있습니다.

     

    사실 이게 좀 불편한 부분이긴 한데 할당이라는 커맨드 방식 자체가 없어서 그렇습니다.

    예) 마야의 재질을 우클릭 후 팝업 메뉴의 상단의 할당 처럼 말이죠.

     

    아마 시네마에서는 그냥 재질을 드래그 해서 뷰포트의 오브젝트에 넣던지

    오브젝트 매니저에 넣는 방식밖에 적용 하는게 없어서 그런데.....

    (아마 없죠? 제 경험은 딱히 귀찮긴 하지만 불편한게 없어서 그냥 전자의 방식으로 주로 끌어다가 놓아서 

    쓰고 남는 태그는 지우고 합니다. 다른 방식이 있을 것 같기도 한데 그냥 써와서;;;)

     

    뭐 그렇다고 못한다는 건 아닙니다.

    스크립트를 만들어서 하면 됩니다.

    방법은 현재 선택한 재질을 현재 선택한 오브젝트에 할당 하는데, 텍스쳐 태그가 없으면 만들고

    선택한 재질을 넣고, 텍스쳐 태그가 이미 있으면 태그 안의 재질을 바꿔주면 되니까요.

     

    그 후에 그 스크립트를 매터리얼의 메뉴에 넣어 주면 됩니다. 그럼 마야랑 똑같이 쓸 수 있는 거졍.

    이럴 땐 시네마의 무한한 UI 편집 가능성이 참 좋죠.

  • ?
    엘라스틱마인드 2013.06.22 18:03

    저도 쓸겸 해서 하나 만들었습니다.

    스크립트로 등록한 후 UI수정해서 alpply 밑에 두고 쓰세요.

     

    이미 여러 재질이 있으면 마지막 텍스쳐태그를 가지고 변환을 한 후 앞쪽의 재질태그는 전부 지웁니다.

    마지막에 넣은 재질 태그가 원해서 넣었다는 가정 입니다.

    (프로젝션 등등 ...태그의 옵션들을 유지 하기 위함.)

     

    재질이 없으면 마지막위치에 태그를 넣고 재질을 할당 합니다.

    이미 재질 한개가 있으면 위치에 상관없이 그곳에 매터리얼을 교체 합니다.

    ( 마지막 위치가 아닌 원하는 위치에 넣었다는 가정 입니다. )

     

    import c4d
    from c4d import gui
    #Welcome to the world of Python
    def GetTexTagCount(obj):
        count = 0
        tags = obj.GetTags()
        for tag in tags:
            name = tag.GetTypeName()
            if name == "Texture":
                count +=1
        return count
    def KillUnusedTexTag(obj):
        for x in range(GetTexTagCount(obj)):
            if x > 0:
                obj.KillTag(c4d.Ttexture)
    def ExistTexTag(obj):
        tags = obj.GetTags()
        for tag in tags:
            name = tag.GetTypeName()
            if name == "Texture":
                return True
        return False
    def GetFisrtTexTag(obj):
        tags = obj.GetTags()
        for tag in tags:
            name = tag.GetTypeName()
            if name == "Texture":
                return tag
        return None
    def GetLastTexTag(obj):
        tags = obj.GetTags()
        LastTag = None
        for tag in tags:
            name = tag.GetTypeName()
            if name == "Texture":
                LastTag = tag
        return LastTag
    def AddTexTag(obj):
        return obj.MakeTag(c4d.Ttexture)
    def AddTexTagToLast(obj):
        tag = obj.GetFirstTag()
        if tag == None:
            return obj.MakeTag(c4d.Ttexture)
        while(1):
            if tag.GetNext() == None :
                break
            else:
                tag = tag.GetNext()
                LastTag = tag
        return obj.MakeTag(c4d.Ttexture,LastTag)
    def PrintGUI(message):
        gui.MessageDialog(message)
    def main():
        obj = doc.GetActiveObject()
        mat = doc.GetActiveMaterial()
       
        if obj == None:
            PrintGUI("선택된 오브젝트가 없습니다.")
            return None
        if mat == None:
            PrintGUI("선택된 매터리얼이 없습니다.")
            return None
       
        tag = GetLastTexTag(obj)
        if tag == None:
            tag = AddTexTagToLast(obj)
           
        tag.SetMaterial(mat)
       
        #Delete other Texture tag
        KillUnusedTexTag(obj)
        #Update UI
        c4d.EventAdd()
       
    if __name__=='__main__':
        main()

  • ?
    엘라스틱마인드 2013.06.22 21:03

    갑자기 생각 났는데

    폴리곤 셀렉션을 해놓았고 여러개 재질일 경우를 처리 않해 놨네요

    뭐 어짜피 셀렉션지정 의 경우는 수동으로 작업하는게 맞는거니

    상관 없을 것같기도...

  • ?
    고리 2013.06.22 21:31

    알트키누르고 던지면 바뀌지않나요???(태그에다가)

    제가 잘못이해한건가...

  • ?
    테디곰 2013.06.25 20:02

    앗! 감사합니다.

    적용해보니 잘되네요.


    근데 하나의 오브젝트는 되는데 여러개를 선택하고 하면 "선택된 오브젝트가 없습니다." 라고 뜨네요.


  • ?
    엘라스틱마인드 2013.06.26 01:08

    여러개는 시퀀스로 다뤄야 되고 체크 할 것도 많고 귀찮아서 일단 한개 만 되게 해놨어요.

    그냥 쓰셔야 할 듯하네요.

     

  • ?
    테디곰 2013.06.26 14:29

    넵! 이렇게 신경써주신것도 감사합니다.

    나머진 제가 공부해서 알아가야죠~ ㅎ 방법을 제시해 주셔서 감사합니다 ^^


질문과 답변

question and answer

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 일반 Cinema 4D Education 학생용 라이센스 사용방법 2 그래바 2020.09.03 18234
공지 Octane 옥테인 크래시 관련 자주 올라오는 질문들과 해결하는 법을 정리해보았습니다. 13 file 이효원 2020.04.19 48805
공지 [필독] 단톡방 질문 방식 관련 공지사항 4 file 권오훈 2019.06.27 12868
공지 일반 [필독] 질문 게시판 유의사항 ! 권오훈 2019.06.27 4803
1461 기타 고릴라 형님의 패키지를 구입하고자 하는데..잘 안되요..ㅠㅠ 6 아트모션 2012.05.01 414
1460 기타 이 프로젝트 파일에서 카메라가 어디에 들어있는지 알고싶습니다. 2 장학증서 2012.04.26 190
1459 기타 한국어 도움말에 관한 질문인데요. 2 준하돌이 2012.04.26 313
1458 기타 X ref 수십개 동시에 불러들이기 테세락 2012.04.26 205
1457 기타 클릭드래그시 마우스포인터가안보여요..ㅜㅜ 근스비 2012.04.25 473
1456 기타 강좌에 올라와잇는 메뉴얼들에 비번이 걸려있는거같아요ㅜㅜ; 5 냠냠이 2012.04.24 223
1455 기타 여러분의 다양한 모델링을 보고싶습니다, 9 다섯손가락 2012.04.23 419
1454 기타 길동님이 강좌만드신 5 숫자관련 강좌를 못찾겠네요. 욱고 2012.04.22 183
1453 기타 안녕하세요. 학원 관련 상담입니다. 2 미꼴 2012.04.22 346
1452 기타 Pose Morph이 안보여요 1 박보람 2012.04.21 223
1451 기타 프로젝트 파일 손상없이 저장하는법에 대해서.. 2 토빅 2012.04.20 247
1450 기타 여기서 c4d를 배울 수는 없습니까? 6 오빠생각 2012.04.19 302
1449 기타 어느 한 물체가 충돌하여 충격을받은 물체의 일부분이 파괴되는 모션은 시포디의 무슨 기능을 사용하여 표현할 수 있을까요? 4 토빅 2012.04.17 448
1448 기타 타임라인에서 1프레임씩 이동하려면 3 닭대갈 2012.04.17 754
1447 기타 사양을 한번 여쭤보고 싶습니다. 13 준하돌이 2012.04.17 363
1446 기타 Pftrack 2011 과 시네마에 관한 질문이어요~. 림메이드 2012.04.16 212
1445 기타 스크린 크기가 12m * 3.3m 일때 출력 사이즈 어느정도까지 괜찮을까 궁금합니다. 1 전성욱 2012.04.16 292
1444 기타 물이나 불 등을 초보자도 쉽게 표현할 수 있는 방법이 없을까요? 4 토빅 2012.04.14 440
1443 기타 생전에 첫 영상을 만들어야 하는데 경험이 없어 막막합니다. 4 쿠타 2012.04.12 270
1442 기타 같은 영상, 같은모니터를 쓰는데요(운영체제는 mac과 윈도우) 영상 색감이 다릅니다 4 종현 2012.04.09 392
목록
Board Pagination Prev 1 ... 25 26 27 28 29 30 31 32 33 34 ... 103 Next
/ 103
닫기

마이페이지

로그인을 해주세요