아래 필요하신 분들 첨부파일 받아가세요~
Houdini_basics_Ari Danesh_01_2.hipnc
대니쉬 선생님의 강의 첫 번째 시간의 Part 2 입니다!
Part 2 에선 나무 심기를 가르쳐 주셨는데요! 1보다 훨씬 양이 많으니 기대하시길~
첫 번째 사진을 보게 되시면 box 1과 grid 1이 뷰포트에 보이실 텐데요!
이 box 1을 grid 1의 포인트마다 복사하려고 한 것인지는 기정사실이고요.
완성된 노드는 이겁니다! 여기서 하나씩 노드를 하나씩 뜯어 볼 텐데요~
이해를 위해 노드를 새로 하나 만들었습니다.
copy에 첫 번째 input을 보시면 primitive to Copy라고 하는 데이건 원형 그냥 변하지 않는 대상으로 생각하시면 되고요.
두번째 input은 template to copy to라고 해서 변할 대상으로 보시면 됩니다.
copy 아이콘을 보시면 포인트(보텍스)마다 주황색 구가 생기죠?
주황색 구를 input1으로 생각해주시고 회색 cube를 input 2로 생각하시면 됩니다.
(후디닌 정말 순서가 중요해요!)
트랜스 서식 노드를 달아줍니다. form이라고 나오지만 tab 버튼에서 transform이라고 치셔야 나와요.
달아주는 이유는 상자의 크기를 조절하기 위해서입니다.
mountain을 사용하시면 grid가 아이콘처럼 지글거려집니다.
mountain에 frequency란 값이 있는데요 사전에 찾아보시면 진동수[주파수/빈도]라고 나와요 진폭을 맞춰주는 기능을 하는 거죠 덕분에 소수점까지
내려서 조정하면 부드러운 능선이 만들어집니다.
여기서! 주제가 나무 심기라고 했었죠? 그런데 심을 나무 개수를 조정할 수 없다면 상당히 비효율적이겠죠?
scatter를 심어줍시다! 스캐너의 기능은 해당 상위 노드 grid 2의 점을 뿌려주는 기능을 합니다.
죠기 위에 보이는 Force Total Count 점을 몇 개나 뿌려 줄 거냐? 난 9754를 뿌려주겠다. 이렇게 된 겁니다.
점만 있으니 심심하죠? 그리고 나무를 심으려면 필드가 필요합니다! 하지만 copy 2를 활성화해서 부시계 되면 box2 들 밖에 안 보여요 ㅠㅠ
저 처럼 초보 분들이 가장 수상하게 여기는 게 노드를 왜 여기서 갈라지게 놓는지 저건 왜 저기에 놓고, 이건 왜 저기에 놓는지가 정말 궁금하거든요!
이제 그걸 설명하겠습니다.
저번 해석(1)에서 썼었던 merge 노드가 다시 등장하였는데요! 이 노드의 기능 기억하고 계신가요?
바로 두 객체를 묶어주는 기능을 하죠 다시 말해 두 객체를 뷰포트에서 동시에 볼 수 있다는 겁니다.
여기서 의문점이 하나 생깁니다... 왜 굳이 mountain 2에서 merge로 이어주는 거죠? grid 2나 scatter 2에서 할 수 있잖아요!
일단 해보시면 알아요ㅋㅋ
grid2로 이어주시게 되면 평평한 그리드만 출력됩니다.(mountain 2의 값을 상속 못 받고 그냥 쌩 그리드니..)
scatter2로 이어주시게 되면 한 번 스캐너만 다시 활성화 시켜 보시겠어요? 그런 점만 나오죠? (box2 가운데에 점이 있는 상태로 출력되는 겁니다.)
-와이어 프레임 상태를 사용해서 확인해보세요! 거짓말 아입니다.
갑자기 노드가 복잡해진 것 같죠? 저도 당황스러웠지만 보시면 attribcreate 하나만 추가 된 겁니다.
attribcreate를 꺼내 줍니다. 이 기능은 속성을 그대로 받아서 사용할 수 있게 만든 것인데요.
무슨 뜻이냐면 grid2+mountain 2의 속성을 가진 노드가 하나 더 생겼다고 보시면 됩니다.
이것도 왜 mountain 2까지 속성을 받느냐면 scatter 2의 속성을 받아 버리면 그 말대로 scatter 점이 되어버립니다.
여기서 제일 중요한 것은 Name이에요. 이 이름이 사용될 곳이 많거든요!
여기서 scale로 이름을 지정합시다. (Point scale: grid 2의 각 포인트 값의 크기 값을 조절할 수 있습니다.)
값은 조금 내려보시면 Value라고 그 말대로 값이 있습니다. 조절하면 form 3 노드처럼 box 2의 크기를 조절할 수 있습니다.
그런데 왜 그러한 기능을 굳이 넣느냐고요? 이미 있는데? 이다음을 보시면 알게 됩니다.
두 가지 사진이 보이시죠?
저 처럼 푸른색 바탕에 빨갱이 아닌 보라색이거나 전체가 빨갱이거나 다른 색일 경우가 있습니다.
사실 그렇게 중요한 문제는 아니지만, 색이 바뀌는 차이를 보기 위해서 attrbcreate 2로 올라가서 value 값을 0.3으로 바꿔 줍시다.
너무 작다면 form 3에서 Uniform Scale을 키워 주도록 합시다.
override color가 여러분을 비활성화되고 Cd로 되어 있을 거에요.
override가 기각하다,우선 하다라는 뜻인데요. 머냐 하면 여태 받은 값들 color 값들 다 무시하고 '이 안에 있는 값 쓸 거야' 이러한 뜻이에요
(Cd는 Color Diffuse라고 해서 색의 분사량? 그냥 Cd 하면 색이라고 생각하세요!)
-출처 http://cafe.naver.com/sidefx/5873 정기영님과 이성민님께서 답변해 주신 걸 보곤 알게 됐죠 ㅎㅎ
이제 override color를 scale로 바꿔 줍시다! Merge Node의 상태를 Add, 그리고 shift를 이용해서 색을 마구 빨강으로 바꿔 줍시다.
merge2를 활성화하시고 칠하면 큐브가 빨강으로 변한 곳은 커지는 것을 볼 수 있어요.
이유가 머냐 하면 scale을 오버라이드로 무시하고 값을 가져왔죠? 아까 attribcreate 2에서 scale 값을 지정해주었죠?
value를 만졌더니 크기를 조절할 수 있었고요. max에서 풍경으로 영역 칠해서 계획 올라오게 하는 기능과 같은 거에요!
지금은 scale의 값을 상속받아서 큐브의 크기가 변하는 거죠.
Merge Node 기능은 포토샵 기능과 매우 흡사해요 add, subtract, replace, 더하기, 빼기, 대체(pscale 기본값으로 대체됩니다.)
xform 3과 box를 잠시 젖혀 주시고 system 2 노드를 copy 2에 연결해줍시다. 짠! 나무가 되었죠? 이 노드는 저도 아직 이해를 못하고
후디니스트에서 찾아보니 http://cafe.naver.com/sidefx/202 조금 더 deep 하게 파야 알 것 같습니다.
일단 나무 생성해주는 노드 정도로 생각해두시면 좋을 것 같아요.
여기서 box 2가 다시 보시고 싶으시다면 switch 노드를 사용하시면 됩니다.
xform이 위에 있고 system이 밑이죠? select input의 0dL form이고 system 1 이상 값입니다. 0.5는 안되더라고요 ㅋㅋ
3개 이어주면 2까지 다른 3개로 껐다 켰다 할 수 있어요.
다시 Copy로 가봅시다. 많은 나무가 심어졌죠? ('이 정도면 적당할 것 같은데..') 보기에 좀 심심하니 각각의 나무에 랜덤하게 회전 값을 줘봅시다.
Stamp라는 기능을 사용해볼 건데요. 일단 Stamp inputs를 검사해줍시다.(이거 체크 안 하시면 나오지 않아요!)-출처http://cafe.naver.com/sidefx/5231
Variable의 뜻을 보시면 변동이 심한, 가변적인, 변화를 줄 수 있는 이 정도의 뜻으로 나오게 되는데요!
프로그래밍 배우신분들은 변수! 라고 생각하시면 되고요. 그렇지 않으신 분들은 "value 음 음 값을 가지고 가는 하나의 방이다" 라고 생각하시면 이래도 이해가 잘 안되실 거예요..
혹시나 변수에 대해서 쉽게 설명하실 수 있는 분들께서 설명해주시면 감사드리겠습니다.
아무튼 여기에 아무 이름이나 넣어주세요! 변수는 정말 아무 이름이나 넣어도 되요~ 대니쉬 선생님께선 tree Rotation을 약자로 하셨는데 기억하기 쉬운 걸로 아무거나 하세요~
value에는 rand($ PT)*360이라고 넣어 주시면 되는데요. http://www.codecademy.com/courses/python-beginner-ko-myedy/0/2?curriculum_id=53b5e0d8fed2a81590000003#
위의 사이트는 파이 썬 기초 다지기 아주 좋은 사이트입니다. (저도 아직 다 깨진 않아서.. 하지만 처음 시작하시기엔 정말 좋은 사이트인 건 분명합니다.)
rand는 무작위 값 ($ PT) $이는 파이 썬에서 함수 선언으로 보시면 돼요.
PT는 point number입니다. 각 가의 포이트 번호 값을 말하죠! 비슷한 것으로 NPT가 있습니다.
NPT는 이 넘버 값들이 몇 개냐 있느냐 그러한 뜻인데요. http://cafe.naver.com/sidefx/6028 김호림님의 답변을 보시면 이해가 되실 겁니다.^^
*는 time이라고 기억해두세요 저번 강의에는 *이 곱하기라고 설명해 드렸는데 그것 때문에 약간 정신적 혼란(?)이 왔어요. 질문해서 수정하도록 할게요~
http://cafe.naver.com/sidefx/6386 유예찬님께서 명쾌하게 풀어 주셨네요. *은 곱하기 맞습니다.
360은 360도 회전 값입니다. 해석하면 포인트 번호마다 각각에 랜덤한 회전 값을 주겠다. 이런 뜻이에요.
*은 넣지 않으면 익스프레션이 작동하질 않습니다. 일종의 문법 같은데 이것도 질문 해보도록 하겠습니다.
위에 것만 해서는 아무것도 일어나지 않죠?
이제 마지막입니다! form 4를 만들어서 스위치 밑에 끼워 넣어주세요. rotations를 돌려보시면 큐브가 회전합니다.(그럼 여기에 익스프레션을 추가해줘야 돌아가겠죠?)
stamp("../copy2", "tarot",0)을 입력해주세요~ ""는 항상 노드나 변수 앞에는 붙여주셔야 인식을 합니다.
스템프안에 경로 copy 2의 tarot에 0은 로테이션 값인데요 사실 아무 값이나 넣어줘도 앞의 tarot의 변숫값이 0에 있는 값을 깡그리 무시하기 때문에 상관없습니다.
짠~
'Houdini > Ari Danesh(강좌해석)' 카테고리의 다른 글
Ari Danesh_01_hip_해석(3) (1) | 2015.06.28 |
---|---|
Ari Danesh_01_hip_해석(1) (0) | 2015.06.26 |