회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


[펌] 금붕어 헤어와 소프트바디 시스템을 이용한 지느러미 움직임 구현.

artsOne | 2008.02.03 03:24 | 조회 1617

[R&D] 금붕어 헤어와 소프트바디 시스템을 이용한 지느러미 움직임 구현.


작성이 : 김성록 / 작성날자 : 2006년 겨울? / 용도 : 메가패스 CF 에 들어갈 금붕어 애니를 위해. 지느러미의 흐느적거림을 위해.


금붕어 셋업

nj0101.jpg

아가미쪽에 루트조인트를 두고 머리쪽뼈와 등뼈, 지느러미(dorsal fin/pectoral fin/pelvic fin)뼈들로 해서 전체 뼈대를 구성함. 등뼈는 FK로 해서 키애니메이션을 위해 컨트롤을 달아 회전할 수 있게끔 했고, 지느러미뼈는 마야의 헤어 시스템과 IK Spline 핸들을 사용해 물고기 몸 전체의 움직임 혹은 지느러미 뿌리부분의 움직임에 따라 자연스레 흔들리도록 시뮬레이션화 함. 날개쪽 지느러미(pectoral fin/pelvic fin)는 자연스런 시뮬레이션효과 외에 의지가 담긴 움직임을 줄 수 있게 시뮬레이션이 적용된 뼈대 바로 위해 조인트가 하나 생성해줬다.

전체 뼈 구조와 등뼈
nj0102.jpg

헤어 시스템을 설치한 지느러미뼈들
nj0103.jpg

바로 위에 하나 더 추가한 조인트
nj0104.jpg

금붕어 꼬리는 모델링된 꼬리 오브젝트에 마야의 소프트바디와 스프링 시스템을 달아 몸전체나 꼬리뼈의 움직임에 따라 흐물거리도록 시뮬레이션화 함.

nj0105.jpg

////////////

지느러미뼈에 헤어시스템(헤어가 달려있는 부착점의 움직임에 따라 실제 한 가닥의 머리카락처럼 자동으로 움직이는 개념) 달기 =지느러미를 자동으로 흔들리게 하기.

1.시뮬레이션 주고 싶은 지느러미 뼈길이에 맞춰 스냅기능으로 넙스 커브를 그린다.

2.그린 커브를 선택하고 dynamic -> hair -> animation->hair->make selected curves dynamic를 누른다. 그러면 선택된 커브가 원본커브가 되고 복사본커브가 하나 더 생긴다. 그 복사본 커브를 가지고 ik 스플라인 핸들을 만든다.

3.animate -> skeleton -> ik spline handle tool 옵션를 누른다. auto create curve가 체크되지 않은 상태인가 확인하고 apply한다. 뷰에서는 원본커브와 복사본커브가 겹쳐져 있기에 하나만 선택하기 힘들다. 아웃라이너에서 복사본 커브를 찾아낸다. 먼저 지느러미뼈중 시물레이션을 줄 뼈대의 시작조인트와 마지막조인트, 그리고 복사본커브를 순서대로 선택한다. 그러면 IK spline 핸들이 만들어진다.

4. 헤어시스템의 follicle 의 속성창 혹은 채널박스에서 point lock 옵션을 Base로 놓아 헤어의 한 끝을 풀어버린다. 그래야 한쪽은 고정된채 다른 한쪽이 흔들린다.

5. 고정되는 헤어의 한쪽끝이 부착된 조인트의 임의의 상위노드에 움직이는 키를 줘 테스트를 해보면 헤어 시스템 시물레이션이 작동이 되는듯 보인다. 하지만 원본커브는 그 자리에 있기에 움직이지 않고 그 자리에 있기에 제대로 시뮬레이션이 적용된 게 아니다. 원본커브를 조인트 움직임에 따라가도록 만들자.

6. 복사본 커브가 조인트 체계로 들어가져 있는 걸 확인할 수 있다. 원본커브는 조인트 체계가 아닌 헤어시스템 노드 하위에 있다. 근데 복사본 커브의 이동은 어차피 원본커브를 따르기에 복사본 커브를 조인트체계에서 빼내어 헤어시스템의 아웃풋커브그룹노드 밑에 놓고 헤어시스템 follicle 노드아래에 있는 원본커브는 복사본 커브가 있었던 조인트 체계에 위치시킨다. 다시 play 해보면 잘 작동된다.

nj0106.jpg

nj0107.jpg

즉 위 과정은 지느러미뼈를 움직이는 ik 스플라인 핸들이 기반 커브를 바탕으로 만들어진다는 점에 착안해 먼저 헤어 커브를 기반 커브로 만들고 ik 스플라인 핸들을 설치함.

7. 헤어 시스템의 노드의 옵션들을 통해 헤어 움직임을 세밀히 조절할 수 있다.

8. 뼈에 지느러미를 바인딩 시키고 웨이트를 잡는다.

*등 지느러미뼈는 세 줄기인데 앞 한 줄기만 헤어를 달고 나머지 두 줄기는 각각 앞줄기의 움직임을 따르도록 익스프레션을 써 움직이게 끔 했음.

이런 식으로..
backBB.rotateX=(backAB.rotateX)*0.8;
backBB.rotateY=(backAB.rotateY)*0.8;
backBB.rotateZ=(backAB.rotateZ)*0.8;

///////////////

꼬리 오브젝트에 파티클 시스템 달기 = 꼬리 지느러미를 흐물거리게 흔들리게 하기.

1. 꼬리뼈에 꼬리 오브젝트를 바인딩시킨다. 스킨 웨이트는 조절할 필요없다. 어차피 뼈대의 움직임이 아닌 오브젝트의 버텍스에 부착된 파티클들의 움직임으로 꼬리의 흐물거림을 나타날테니..

2. 꼬리 오브제를 선택하고 소프트바디를 적용시킨다. (dynamic->soft/rigid bodies->create soft body. create soft body 을 쓸때 옵션 중 creation option를 Duplicate, make copy soft로 놓는다) 그러면 선택된 원본 꼬리 오브제는 숨겨지고 복사본 꼬리 오브제가 생성되어 보여진다. 복사본 꼬리 오브제의 모든 버텍스에 파티클들이 달려지게 된다.

3. 콤포넌트 모드에서 파티클을 개별적으로 선택해 콤포넌트 에디터에서 goalPP을 조절하거나 소프트바디 페인트 브러쉬로 goalPP의 수치를 조절한다. goalPP가 1에 가까울수록 파티클들은 원본 꼬리 오브젝의 버텍스 위치에 위치에 안 벗어나려고 할 것이고 0에 가까울 수록 점들에게서 멀어질 것이다. 스킨의 웨이트값 조절과 비슷한 개념이다.뼈가 스킨을 영향을 주듯이 원본 꼬리가 파티클에게 영향을 준다. 파티클의 goal에 대한 개념을 알 필요가 있음. 붕어 꼬리의 흐물거림이 나올 수 있도록 잘~ 칠해준다.

4. 단지 소프트바디만 적용하면 퍼져나가는 파티클을 막지 못한다. 그래서 스프링을 준다..(dynamic->soft/rigid bodies->create spring. 옵션을 creation method-wireframe / stiffness-200 / damping-2 으로 둔다.) 그러면 파티클이 퍼져나가지 않고 꼬리의 형태를 유지하면 시뮬레이션(다이내믹 효과)이 된다.

5. 파티클과 스프링 속성을 조절해 더 자연스레 조절해준다.

**파티클이나 헤어 시스템이 적용된 걸 보기 위해서는 설정의 playback 속도를 every time로 보는게 좋다. 그리고 적용된게 깨져보일땐 dynamics->solvers->edit oversampling or cashe setting에서 over samples 수치를 높여본다. 캐쉬를 사용하는 방법도 좋다.


출처> 옛 동료

466개(1/24페이지)
마야
번호 제목 글쓴이 조회 날짜
공지 마야 뷰포트 네비게이션 팁 푸딩뱃살 43779 2020.04.06 17:22
공지 Maya 버전 별 Python 버전 푸딩뱃살 64964 2014.01.08 17:59
464 [Dev] Autodesk Maya Devkit 다운로드 첨부파일 푸딩뱃살 704 2023.01.28 14:28
463 [Base] (해결 중) modules 환경설정 중 푸딩뱃살 652 2022.11.09 11:47
462 [Script] pymel 딕셔너리형 사용 시 KeyError 푸딩뱃살 864 2022.11.07 12:08
461 [오류] Building Numpy for Maya Python 2.7.x 푸딩뱃살 598 2022.10.23 14:38
460 [Base] 뷰포트에서 조절자가 안 보일때 첨부파일 푸딩뱃살 786 2022.10.13 15:47
459 [Rigging] mirror joints 사용 시 유의 사항 푸딩뱃살 801 2022.10.04 10:46
458 [Script] 2022에서 enum34 모듈 설치 금지 첨부파일 푸딩뱃살 609 2022.08.17 18:08
457 [Script] pymel 예제 푸딩뱃살 624 2022.07.05 19:20
456 [Script] 인코드 / 디코드 - 2.7 한글 사용 푸딩뱃살 900 2022.03.08 17:52
455 [Dev] ui 없이 mayapy로 자동화 첨부파일 푸딩뱃살 704 2022.02.17 13:56
454 [Dev] mayapy로 ui파일 py로 푸딩뱃살 529 2022.02.15 18:20
453 [오류] Error : MayaBonusTools 푸딩뱃살 920 2022.01.21 17:52
452 [오류] Error: ModuleNotFoundError 푸딩뱃살 775 2022.01.21 16:24
451 [Dev] mayapy 첨부파일 푸딩뱃살 653 2022.01.19 20:08
450 [Base] function selCom at 0x7f29c5c04aa0 첨부파일 푸딩뱃살 617 2022.01.19 17:24
449 [Base] wireframe on shaded 단축키 만들기 첨부파일 푸딩뱃살 915 2022.01.04 10:55
448 [오류] OpenCL Error 푸딩뱃살 526 2021.12.28 01:40
447 [Script] Easily Translate MEL Commands to Python 첨부파일 푸딩뱃살 832 2021.12.02 11:22
446 [Base] output window 띄우지 않기 첨부파일 푸딩뱃살 824 2021.11.24 21:44
445 [Rigging] shapeEditorManager 삭제 안됨 푸딩뱃살 896 2021.11.12 23:30