주소복사 | 조회 수 566 추천 수 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 46705
공지 Octane 옥테인 크래시 관련 자주 올라오는 질문들과 해결하는 법을 정리해보았습니다. 16 file 이효원 2020.04.19 75653
공지 [필독] 단톡방 질문 방식 관련 공지사항 4 file 권오훈 2019.06.27 34431
공지 일반 [필독] 질문 게시판 유의사항 ! 권오훈 2019.06.27 28717
1451 기타 안녕하세요. 학원 관련 상담입니다. 2 미꼴 2012.04.22 358
1450 기타 Pose Morph이 안보여요 1 박보람 2012.04.21 255
1449 기타 프로젝트 파일 손상없이 저장하는법에 대해서.. 2 토빅 2012.04.20 339
1448 기타 여기서 c4d를 배울 수는 없습니까? 6 오빠생각 2012.04.19 340
1447 기타 어느 한 물체가 충돌하여 충격을받은 물체의 일부분이 파괴되는 모션은 시포디의 무슨 기능을 사용하여 표현할 수 있을까요? 4 토빅 2012.04.17 487
1446 기타 타임라인에서 1프레임씩 이동하려면 3 닭대갈 2012.04.17 948
1445 기타 사양을 한번 여쭤보고 싶습니다. 13 준하돌이 2012.04.17 400
1444 기타 Pftrack 2011 과 시네마에 관한 질문이어요~. 림메이드 2012.04.16 249
1443 기타 스크린 크기가 12m * 3.3m 일때 출력 사이즈 어느정도까지 괜찮을까 궁금합니다. 1 전성욱 2012.04.16 338
1442 기타 물이나 불 등을 초보자도 쉽게 표현할 수 있는 방법이 없을까요? 4 토빅 2012.04.14 486
1441 기타 생전에 첫 영상을 만들어야 하는데 경험이 없어 막막합니다. 4 쿠타 2012.04.12 332
1440 기타 같은 영상, 같은모니터를 쓰는데요(운영체제는 mac과 윈도우) 영상 색감이 다릅니다 4 종현 2012.04.09 446
1439 기타 마우스 뷰포트조작시 오브젝트중심이 안되요 2 닭대갈 2012.04.08 410
1438 기타 C4D 완전히 지우고 다시 설치하는 방법을 여쭤봅니다. 4 준하돌이 2012.04.07 2188
1437 기타 카메라로 가까운곳에 초점이 맺혀 뒤쪽은 흐리게 할수있나요? 1 제팟 2012.04.06 789
1436 기타 Spline Subdivide 나누기가 100으로 제한되어있음 4 file 테세락 2012.04.05 349
1435 기타 spline 시작점 방향을 바꿀 수 있나요? 2 file 허리허리 2012.04.05 727
1434 기타 유저데이터에 체크박스 만드는 법을 알고싶습니다 1 file 고맙습니다 2012.04.02 338
1433 기타 강좌게시판의 기초메뉴얼들의 링크가 깨져서 다운받을 수가 없네요.. 2 토빅 2012.04.02 257
1432 기타 explode segment 가 R13 버전에서 무엇으로 바뀌었나요? 2 테두리 2012.03.31 370
목록
Board Pagination Prev 1 ... 26 27 28 29 30 31 32 33 34 35 ... 103 Next
/ 103
닫기

마이페이지

로그인을 해주세요