일반
2026.05.27 15:02

원단 감기 및 휴지 감기

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

image.png

98파이 -> 100파이로 원단이 감깁니다. 100파이에서 200파이만큼 서서히 커지는걸로 표현하고 싶습니다.

휴지심에 휴지를 돌돌 말면서 커지는걸로 표현하고싶어요.

 

스윕으로 써서 표현하면 뭔가 너무 부자연스럽게 되서 스윕+스플라인(직선) 따로따로 해도 부자연스러워서 도움 요청드려봅니다ㅠㅠ

  • profile

    항상 재밌는 주제를 들고오시네요ㅎㅎㅎ 덕분에 즐거운 저녁이었습니다.

    두 가지 방법으로 제작해볼 수 있습니다.

    첫번째는 가짜로 가볍게 제작하는 방법, 두번째는 기술 구현을 중심으로 정말로 천을 말아주는 방법입니다.

     

    [1] Texture Fake + Cylinder

    비주얼적인 구현이 목적일 경우에 사용됩니다. 사실상 원단을 빼곡하게 만 모델링을 3D로 구현하는 것보다는 말린 원단 오브젝트를 페이크로 제작하는 것이 훨씬 효율적이기 때문에 사용하는 방식입니다.

    옆면에 둥글게 말린 텍스쳐를 입힐 수도 있어서 선호되는 방식입니다. 다만 제가 만든 노이즈처럼 만드는 게 아니라 정말  천 텍스쳐를 입힌 경우에는 텍스쳐의 Rotation값에 키를 돌리셔야 할 거예요.

    실제로 회전하지 않고 있기 때문에, 텍스쳐라도 돌려주시는 겁니다. 텍스쳐가 움직이지 않으면 회전하는 것처럼 보이지 않을 테니까요.

     

    1. 두 개의 실린더를 두고, 실린더의 Radius에 키를 주어 말려나가 없어지는 개체(L)와 말려들며 커지는 개체(R)를 제작합니다. Radius에 키를 줍니다. 98>0, 100>200 
    2. 두 개의 실린더 각각에 Correction을 적용해서 점이나 면을 선택할 수 있도록 해주세요.

    3. 각 실린더의 하단과 상단(가장 위 포인트와 가장 아래 포인트로 선택)의 포인트를 선택하고, Store Selection합니다. 점을 선택하고 저장하는 과정입니다.

    4. 각 포인트 위치에 Null을 위치시키고, Constraint - Clamp를 달아서 Null을 실린더의 '선택된포인트'에 접합시킵니다. To:Point, Target:선택된 포인트
        이렇게 되면, Radius가 변하면 Null의 위치도 선택한 점 위치에 따라 똑같이 변하게 됩니다.

    5. 두 개의 Null을 Tracer로 연결해서 Spline을 만들고, Sweep을 적용해 중간다리를 만듭니다.

    6. Correction을 선택 후 실린더의 옆면을 Store Selection해서 옆면에 말려있는 원단 텍스쳐를 입혀주세요. 이 때, Radius가 늘어나면서 같이 늘어나지 않도록 프로젝션 모드를 Flat이나 Sphere등 고정되어있는 형태로 해주세요. (추후에 이 텍스쳐 Rotation에 키를 줄 수도 있음)

    7. 저는 그렇게 해도 페이크로 한 티가 나는 거 같아서 두 개의 실린더에 Vibrate 태그를 달아 조금 덜컹이도록 해줬습니다.

    8. 마지막 프레임에서 원단의 끝지점이 오른쪽 롤에 완전히 말리도록, Sweep의 Start Growth가 0이 되도록 키를 주어 오른쪽 오브젝트에 완전히 감겨 보이도록 애니를 줍니다.

     

    [2] Helix + Sweep

    정말로 그 기술을 구현하는 데 목적이 있다면 (정말로 말려야 하고, 실제로 말린 단면을 기술적으로 구현해내야 하는 경우) 많이 감긴 Spline(=Helix)을 사용해서 구현해볼 수 있습니다.

    다만 폴리곤이 많이 소요되고, 저는 최대한 가볍고 적게 말리도록 해봤지만 실제로 동심원에 가까워질수록 원 자체의 디테일이 떨어지기 때문에, 두께가 두꺼운 (그래서 단면이 잘 보이는) 원단의 경우가 아니면 추천드리지는 않습니다. 얇은 원단이라면 1번 방법이 훨씬 효율적일 겁니다.

     

    1. 헬릭스 라인을 두 개 생성하고,
    왼쪽 Helix는 Start Radius를 동심원에 가까운 반지름(저는 20으로 했습니다. 0으로 해도 돼요), End Radius를 변화하는 반지름으로 설정합니다. (98>20, 애니를 잡습니다. 전 동심원 크기로 가도록 잡았습니다.) Start Angle을 1800°로 높게 설정해 말리도록 합니다. 1800 > 0으로 키를 줍니다.

    오른쪽 Helix는 Start Radius를 변화하는 반지름으로 설정합니다. (100>200, 애니를 잡습니다.), End Radius를 동심원에 가까운 반지름(저는 20으로 했습니다.)으로 설정합니다. End Angle을 1800°로 높게 설정해 말리도록 합니다. 1800 > 3600으로 키를 줍니다. 더 말려야 하는 쪽이기 때문입니다.
    !!양쪽 두 Helix의 설정이 반대입니다!!

    2. Null을 두 개 만들고, 각각의 helix에 align to spline 합니다. 왼쪽에서의 끝이 오른쪽에서 시작으로 들어간다는 것을 감안하면, 왼쪽은 100프로로, 오른쪽은 0프로로 Position을 잡으시면 되겠습니다.

    3. 두 Null을 연결하는 Tracer를 만들어 spline이 되도록 합니다. 그리고 이 Tracer와 Helix 두 개를 Connect로 연결합니다. 하나의 연결된 라인이 되도록이요!

    4. Sweep으로 실제 형체를 만듭니다. 목적에 따라 두께를 줄 수 있겠지요.

    5. 마지막 프레임에서 원단의 끝지점이 오른쪽 롤에 완전히 말리도록, Sweep의 End Growth를 살짝 낮춰서 오른쪽 오브젝트에 감기도록 애니를 줍니다.

     

    프로젝트 파일 첨부했습니다. 자세한 내용은 프로젝트 파일을 한 번 뜯어보세요~

    부가적으로 넣은 xpresso가 있는데, 롤과 롤 사이의 거리에 따라, 그리고 반지름에 따라 롤이 회전하게끔 하는 공식이 담겨 있습니다. 댓글이 길어져서 분리할게요~

  • profile

    작성자님이 어느정도의 거리로 롤과 롤 사이의 거리를 규정하게 될지 모르니, 거리와 반지름에 따라 원의 회전값이 변화하도록 함수를 설계했습니다.

    원과 원이 서로 크로스되어 '외접하는 선'을 만들어야 하므로, 원의 회전값은 아래와 같은 공식을 가집니다.

    왼쪽 원의 반지름 = r1, 오른쪽 원의 반지름 = r2

    두 원 사이의 거리 = d

    원의 회전값 = θ   라고 할 때,

    image.png

    이 공식을 그대로 c4d에서 작동하도록 구현했습니다.

    Xpresso에서 구현하면 아래와 같습니다. xpresso는 다른 오브젝트의 정보값에 영향을 받아 특정 오브젝트의 특성을 바꾸거나 변화시킬 수 있는 기능입니다. 노드 기반으로 작동합니다.

    혹시나 익숙하지 않으시다면 유튜브 튜토리얼도 꽤 있습니다.

    image.png

    첫번째에서 Add노드로 각 반지름을 더하고 (r1+r2)

    Distance노드로 각 원 사이의 거리를 구합니다. (d)

    Divide노드로 Add값을 d로 나눕니다.

    Trigonometric 노드에서 sin을 선택해서 sin을 씌워줍니다.

    저 경우에는 *-1로 음수로 바꿔주면 제대로 작동하더라구요. c4d특성상 각도가 돌아가는 게 이래저래 반영이 되어 그런듯합니다.

    그러면 원의 위치를 움직여도 원이 돌면서 어느정도 두 원 사이의 외접하는 지점을 향해 회전합니다. (시간이 없어서 Y값 이동까지 완전히 구현되진 않은 듯 하지만요)

    이는 반지름값이 바뀌어도 그에 따라 원이 회전하도록 반영됩니다.

     

     

    2번 방식: 진짜로 말리는 경우도 마찬가지입니다. 적용한 값은 똑같습니다.

    다만 Helix가 Connect로 연결되어 하나의 spline이 되었기 때문에 뷰포트에서 선택하기 어려워서, 밖에 선택하기 쉬운 실린더를 하나 두고 그걸 따라가도록 했습니다.

    실린더가 똑같은 값으로 회전해도 페이크이기 때문에 영향이 없는 1번 방식과 달리, 2번의 Helix는 정말로 시작점과 끝지점이 아래와 위에 있어야 하므로, 마지막 노드에서 각각+90° 와 -90°를 따로 먹여 제대로 회전시켜 주어야 제대로 작동됩니다. sin으로 인해 결과값이 Radian으로 나오기 때문에, Math를 통해 pi/2를 입력하면 90°의 Radian값이 나옵니다.

    화면 캡처 2026-05-28 015919.png

     

    이 역시 반지름에 반응합니다. '변경하는 값으로 지정한' Helix의 반지름이 반영되는 겁니다.

    두 원 사이의 거리를 재기 때문에, 왼쪽 원을 움직여도 반응합니다.

  • profile
    woongraphic 1시간 전
    질문답변게시판에 논문이.... 존경해요

질문과 답변

question and answer

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 Octane 옥테인 크래시 관련 자주 올라오는 질문들과 해결하는 법을 정리해보았습니다. 16 file 이효원 2020.04.19 367059
공지 [필독] 단톡방 질문 방식 관련 공지사항 4 file 권오훈 2019.06.27 322769
공지 일반 [필독] 질문 게시판 유의사항 ! 권오훈 2019.06.27 304868
28692 시뮬레이션 100 cloth 시뮬레이션 질문있습니다...도와주세요...! 4 newfile 복이와춘식이 2026.05.27 20
28691 일반 스플라인 경로에 따라 무한 반복 2 newfile 짱돌 2026.05.27 17
» 일반 원단 감기 및 휴지 감기 3 newfile 짱돌 2026.05.27 25
28689 Octane 완료 옥테인 Live Viewer에서 카메라 시점 고정하는 방법이 있을까요? 3 file 제이블레스 2026.05.24 76
28688 모델링 50 구겨진 종이 모델링 file 넥스트 2026.05.23 81
28687 PC조립 100 완료 컴퓨터 견적 봐주실 선생님..! 도움이 절실합니다..! 4 조스누 2026.05.22 77
28686 Octane 옥테인 1.9버전에서 텍스처 팝업 노드에서 c4doctane 카테고리가 안보이는 현상 1 file 늦깎이 2026.05.20 66
28685 일반 스플라인 경로에 따른 재질 2가지 표현 완료 스플라인 경로에 따른 재질 적용 (2가지 색상) 2 file 짱돌 2026.05.20 73
28684 모델링 완료 사각형에 Subdivision Surface 적용 3 file 2026.05.19 94
28683 일반 c4d 다운그레이드 안되나요? 2 시포디너무어려워요 2026.05.17 96
28682 모델링 개별 spline의 axis와 동일하게 cloner object의 axis를 정렬하는 방법이 있을까요?? 1 file 늦깎이 2026.05.16 81
28681 시뮬레이션 bulge 디포머 freeze bulge, freeze 방법 3 file 짱짱걸 2026.05.16 84
28680 모델링 50 마블러스에서 옷만들고 시포디에서 가져왔을때 file 띠우니 2026.05.15 80
28679 모델링 완료 sweep관련 질문입니다. 6 file 뉴발란스 2026.05.15 199
28678 라이팅 이런 Volume Light 효과는 어떻게 만드는 걸까요? 2 file 푸라면 2026.05.15 243
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 1913 Next
/ 1913
닫기

마이페이지

로그인을 해주세요