주소복사 | 조회 수 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 19616
공지 Octane 옥테인 크래시 관련 자주 올라오는 질문들과 해결하는 법을 정리해보았습니다. 16 file 이효원 2020.04.19 50394
공지 [필독] 단톡방 질문 방식 관련 공지사항 4 file 권오훈 2019.06.27 14142
공지 일반 [필독] 질문 게시판 유의사항 ! 권오훈 2019.06.27 6116
1602 기타 작업화면 회전시 Y축만 반전되는데 버그인가요? 프로젝트 첨부했어요 2 헬로 2013.07.16 396
1601 기타 (에러)Incorrect File Structure 5 file 돌개바람 2013.07.08 3004
1600 기타 프리뷰랑 램은 아무런 상관이 없나요..?? 4 눈물조각 2013.07.04 367
1599 기타 R14, 아이맥 2012 late 모델 그래픽 openGL 문제 file 한형 2013.07.03 431
1598 기타 null 오브젝트에 axis 질문입니다 1 로레 2013.07.03 398
1597 기타 사운드 반복되는 문제? 3 얌냠샴샹 2013.06.26 311
1596 기타 C4D 언어 삭제 아쿠 2013.06.21 351
» 기타 재질을 다른 재질로 리플레이스 하는 법이 있나요? 7 file 테디곰 2013.06.21 500
1594 기타 씬에 사용된 폴리곤 수를 알고 싶습니다. 2 터스크 2013.06.20 329
1593 기타 오브젝트창에서 폴리곤을 원하는 위치로 옮기는법이 궁금합니다. 3 테디곰 2013.06.19 417
1592 기타 ipb파일 c4d로 불러오기... 아키텍트재형 2013.06.18 428
1591 기타 파일을 기록할수 없습니다. - 출력경로를 확인하세요? 1 동동이 2013.06.14 1116
1590 기타 시포디 오류해결방법 알려주세요. 2 file 동동이 2013.06.13 436
1589 기타 에펙 렌더시 색감 및 화질 설정 2 file 쏭쏭이 2013.06.11 2560
1588 기타 symmetry로 대칭시킨 대상만 놔두고 렌더링 시 hide 시킬 수 있을까요? 1 오트로스 2013.05.31 369
1587 기타 초당 24P작업시 타임라인 상에서도 24P로 보여주는 옵션이 있나요? 3 아트모션 2013.05.23 373
1586 기타 모션캡쳐 데이터를 구입할 수 있는 곳이 있나요? 2 러브데어 2013.05.20 1118
1585 기타 취업 또는 진학시 포트폴리오 7 아쿠 2013.05.06 665
1584 기타 유저그룹 홈페이지 2 아쿠 2013.04.19 319
1583 기타 PSD, AEP 아이콘 제대로 나오게 하려면 어떡해야 할까요? 3 file 연화 2013.04.10 1281
목록
Board Pagination Prev 1 ... 18 19 20 21 22 23 24 25 26 27 ... 103 Next
/ 103
닫기

마이페이지

로그인을 해주세요