주소복사 | 조회 수 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 19259
공지 Octane 옥테인 크래시 관련 자주 올라오는 질문들과 해결하는 법을 정리해보았습니다. 16 file 이효원 2020.04.19 49996
공지 [필독] 단톡방 질문 방식 관련 공지사항 4 file 권오훈 2019.06.27 13797
공지 일반 [필독] 질문 게시판 유의사항 ! 권오훈 2019.06.27 5762
20919 텍스쳐 c4d 로 이런 재질 내는 방법 문의드립니다. 1 file 라스 2019.03.11 503
20918 make a preview 저장하려면요? 2 데헷? 2014.03.26 503
20917 라이팅 조명 그림자 알려주세요...ㅜㅜ 1 file 쭈야~ 2017.06.02 503
20916 일반 Greyscale Gorilla HDRI StudioPack 2.01 설치문제 3 file 꿈꾸는앨리스 2017.12.21 503
20915 Redshift Redshift는 네트워크 렌더링이 안되나요? 3 알아서 2019.11.29 503
20914 텍스쳐 안녕하세요 c4d 부분 텍스처 관련해서 질문이있습니다!(지브러쉬) 2 file 물보라를일으켜 2020.06.07 503
20913 Octane Octane LiveViewer만 실행하면 응답없음이 되네요 ..ㅠㅠ file 명훈 2021.03.12 503
20912 PC조립 안녕하세요. 그래픽카드 3060 2way 가능한지 여쭤보고 싶습니다! 2 미오 2021.04.09 503
20911 Octane 현재 시포디 버전(R25)와 옥테인렌더에서 디노이저 설정이 예전과 너무 다릅니다. 2 아호아렁 2022.04.11 503
20910 Character Joint Align Tool 에 대한 질문입니다. 2 file 수옥 2007.11.20 502
20909 모델링 일부 엣지부분 베벨값을 줄때 둥글게 되지 않습니다 해결법좀...? 3 file 아트펜 2009.03.16 502
20908 기타 (급)컨텐츠 브라우저 날벼락 도와주세요 8 file 재히 2009.04.21 502
20907 MoGraph 오브젝트를 그룹화 시키는 방법좀 부탁드립니다. 혹시 단축키도있다면 알려주세요~. 2 필로스 2009.12.15 502
20906 라이팅 c4d로 야경을 만들려고 합니다. 2 동네개랑놀기 2010.02.16 502
20905 렌더링에 대해 (Mac C4d) 6 정순영 2010.03.03 502
목록
Board Pagination Prev 1 ... 379 380 381 382 383 384 385 386 387 388 ... 1778 Next
/ 1778
닫기

마이페이지

로그인을 해주세요