Houdini1_Starter
-
Houdini1_D-3(JOY OF VEX_Day1~10)
Houdini1에 들어가기 앞서 12월 초중순까지 공부한 JOY OF VEX를 복습겸 정리하고 들어가려고 합니다. 이전에 노트를 할 때도 헷갈리는 부분과 중요하다고 생각되는 부분을 정리해 뒀는데, 시간이 별로 없는 만큼 정리해둔 내용중에서 다시 헷갈리고 중요한 부분을 선별해서 그 위주로 정리를 할 예정입니다. 각 function을 쓸때 필요한 정보들은 최대한 정리 해보겠습니다. JOY OF VEX_Day1 float / int / vector 끼리 혼합 연산시 결과 값은 앞에 사용된 형식으로 나옴 JOY OF VEX_Day2 거리를 계산하는 function length(), distance() 식을 쓸 때 /2를 선호하는사람도 있고 *0.5를 선호하는사람이 있다. clamp와 fit 기존 값을 원하는 m..
더보기
-
Houdini_D-3(JOY OF VEX_Day11~20)
Houdini1에 들어가기 앞서 12월 초중순까지 공부한 JOY OF VEX를 복습겸 정리하고 들어가려고 합니다. 이전에 노트를 할 때도 헷갈리는 부분과 중요하다고 생각되는 부분을 정리해 뒀는데, 시간이 별로 없는 만큼 정리해둔 내용중에서 다시 헷갈리고 중요한 부분을 선별해서 그 위주로 정리를 할 예정입니다. 각 function을 쓸때 필요한 정보들은 최대한 정리 해보겠습니다. JOY OF VEX_Day11 if statements를 배운날. 2년전쯤 C언어를 배울 때 다뤄봐서 생각보다 수월했다. JOY OF VEX_Ripple day12에 들어가기 앞서 vex코드를 통해 ripple 효과를 만든날. if statements를 통해 퍼질수록 물결이 잔잔해지게 만드는 효과가 인상적이었다. JOY OF VE..
더보기
-
Houdini1_Starter_00_후디니1을 들어가기 앞서 꼭 체크할 사항들
TWA님의 Houdini1의 첫 강의, Houdini1 스터디를 시작하는 첫 날입니다. 아주 설레는 마음으로 강의를 보기 시작했고, 본격적인 강의에 들어가기 전, 입문강의부터 JOY OF VEX를 돌아볼 수 있는 강의였습니다. 강의를 끊어가며 멈춰두고 먼저 말로 설명하신부분을 만들어보고 보여주신 결과와 비교하며 진행해봤습니다. 아래는 이번 주 계획표입니다. 오늘 공부일기는 전체적으로 무엇을 다뤘는지 정리했으며, 예전에 다뤘지만 까먹은건지 처음써본건지 생소한 clean이라는 노드를 sidefx에서 manual을 보고 찾아 공부해봤습니다. Warning란에 어떤 attribute로 인한 오류인지 알려줍니다.. 생각보다 친절한 후디니. point() atw에서 point()을 계속 사용하다가 오랜만에 보는 노..
더보기
-
Houdini1_Starter_01_Group
Houdini1 두번째 날 입니다. 오늘은 Group과 관련된 노드들을 공부해봤습니다. 새로운 노드를 배운만큼 첫날보다 분량이 많아져 업로드가 늦었습니다:D Group 노드의 Base Group에 관련된 내용입니다. Group 노드의 Keep in Bounding Regions 관련된 내용입니다. Bounding Volume을 활용하기위한 isooffset노드에 관련된 간단한 내용입니다. Keep by Normals에 관련된 내용입니다. dot()을 공부하면서 각도에 관련된 개념이 잘 잡혀있어 쉽게 이해할 수 있었습니다. Include by Edges에 관련된 내용입니다. 과하게 꺾인엣지만 그룹을 지어주는데 이 부분을 베벨을 넣어주고 싶을 때 활용한다고 하셨습니다. 매우 편리하게 과한 엣지만 찾아내 베벨..
더보기
-
Houdini1_starter_02_Part1_GroupExersize
starter02는 그룹노드를 활용해 로우폴리 자동차 모델링을 정리하고 디테일을 살려 랜더링을 하는과정까지 입니다. 오늘은 어제 배웠던 Group노드들을 적극 활용하여 자동차 모델링을 정리하고 디테일을 조금 살려 봤습니다. 감사하게도 TWA님이 자동차 모델링을 제공해주셔서 자동차 파일을 file노드를 통해 import해봤습니다. TWA님의 말씀에 따르면 houdini의 축적 1은 1m라고 합니다. 현재는 폭 200m 길이 400m정도 되는 스케일로 import 된것을 확인할 수 있습니다. transform노드를 이용하여 최종원하는 스케일인 폭 2m정도 되는 스케일로 줄이지 않고 polybevel을 사용함에 있어 너무 작은 숫자를 사용하게 되기 때문에 일단 폭이 20m정도 되는 1/10스케일로 작업을 진행..
더보기
-
Houdini1_starter_02_Part2_GroupExersize
starter02는 그룹노드를 활용해 로우폴리 자동차 모델링을 정리하고 디테일을 살려 랜더링을 하는과정까지 입니다. 오늘은 어제 진행했던 midfront외에 그룹red에 속한 나머지 그룹들의 디테일을 살리고 폴리곤을 정리해봤습니다. 전체적인 흐름은 blast로 떼어낸 각 부품들을 clean노드로 필요없는 그룹을 지워주고 group노드의 Include by Edges를 활용해 각을 살리고 싶은 부분만 polybevelㅗ적용 후 subdivide해주는 식으로 진행됩니다. 위 과정을 거친 전 후 비교샷입니다. 다음으로 문쪽을 진행하는데 폴리곤형태로 인한 변수가 생겼습니다. 오늘 강의는 전체적으로 이런 변수를 해결하고 사소한부분에서 디테일을 찾아가는 내용입니다. 위의 방식과 똑같이 진행했을 때 문 손잡이 쪽에서..
더보기
-
Houdini1_starter_02_Part3_GroupExersize
starter02는 그룹노드를 활용해 로우폴리 자동차 모델링을 정리하고 디테일을 살려 랜더링을 하는과정까지 입니다. 오늘은 자동차를 랜더링하기까지의 전체적인 과정을 다뤄봤습니다. 전체적인 진행과정은 part2에서 했던과정과 동일합니다. Subdivide의 Algorithm을 통해 부품의 특성에 맞게 적용해줍니다. 만약 그룹내에 다른 느낌으로 진행해야될 때 다시 그룹으로 나눠줘 각 부품의 느낌을 살려줬습니다. 아래는 그룹A에 해당하는 부품입니다. 아래는 그룹B에 해당하는 부품입니다. 아래는 그룹Black에 해당하는 부품입니다. 해당 그룹은 위의 동그란 부분과 아래 각진 부분을 다시 각각 그룹으로 나누어 각 부품의 특징을 살려가며 진행했습니다. 아래는 그룹 Blackrubber에 해당하는 부품입니다. 부품을..
더보기
-
Houdini1_starter_03
starter_03은 mantra랜더에 관련된 내용입니다. 오늘은 간단한 랜더세팅과 재질을 적용하는 방법등을 다뤄보았습니다. 랜더링에 기본적으로 필요한것은 오브젝트, 메테리얼, 라이트, 카메라, 랜더러가 필요합니다. 일단 랜더하기 편하게 Network view를 몇개 더 생성해줍니다. object 생성을 위한 obj material생성을 위한 mat 랜더 아웃풋 설정을 위한 out 이렇게 세가지 있으면 랜더를 하는데 있어 간편합니다. TWA님은 카메라를 잡고 랜더러 설정, 라이트,메테리얼 순으로 작업을 진행하신다고 합니다. 첫번째 카메라를 생성하는 방법은 두가지가 있는데요. 1.노드를 만들어서 만들 수 있고 2. no cam.부분을 클릭하여 new camera를 만들 수 있습니다. 1번은 0,0,0위치에..
더보기
-
Houdini1_starter_04
starter_04은 mantra랜더러로 자동차를 랜더하는 내용입니다. TWA 님이 네가지 파일을 제공해주셨는데 sub앞의 숫자가 subdivide의 depth값이 각각 0부터3까지인 파일입니다. switch노드를 달아서 작업중에는 car1이나2를 최종에서는 car3을 사용할 수 있습니다. 다음으로는 Groupexpression을 통해서 group을 만들어줍니다. VEXpression란에 if()를 쓰는것처럼 사용할 수 있습니다. if는 생략되고 s@mat=='red' 이런식으로 써서 s@mat에 'red'끼리 그룹지어줄 수 있습니다. 이 때 ''가 생략되면 변수로 인지해서 오류가 나는것을 확인할 수 있습니다. 또한 @의 타입을 생략하면 인지 못합니다. 다음으로는 카메라를 잡고 network view에서..
더보기
-
Houdini1_starter_05
starter_05는 attribute에 관련된 노드들에 대한 내용입니다. attribvop과 attribvop을 제외한 다양한 노드들을 전체적으로 다뤄보았습니다. 들어가기전에 Group과 Attrib의 차이를 알아보자면 Group은 이분법처럼 이다, 아니다 둘로 나뉘고 Attrib은 어떤 결과도 나올 수 있는게 가장 큰 차이점입니다. 첫번째로 다뤄본 노드는 attribcreate 입니다. 예시로 atw에서 v@twa = {1,2,3}처럼 입력하는것과 attribcreate에서 name에 twa를, type을 vector로 지정하고 1,2,3순서로 적어 준것은 동일한 결과를 나타냅니다. value에서 빈칸에 네칸인데 x,y,z,w 순서입니다. Default는 말그대로 디폴트로 @Cd의 디폴트가 {1,1,..
더보기
-
Houdini1_starter_06
starter_06은 foreach_point에 들어가기 전에 그 과정을 foreach_point 없이 만들어보는 과정을 해보았습니다. 만들어볼 효과는 게임에서 캐릭터가 레벨업할때 나타나는 효과로 라인을따라 무언가가 랜덤하게 상승하는 효과입니다. 항상 직접 만들어보고 따라오는것을 추천하시는데 막대들을 만드는것까지는 성공했지만 atw에서 rand값을 주는 과정에서 막혀서 TWA님을 따라가 보았습니다. 처음에는 막대를 하나 만드는 과정입니다. 많이 해봤던 과정이여서 어려움 없이 할 수 있었습니다. 다만 점과 점을 이어주는 과정에서 두번째 점을 add로 만드는것이 아닌 atw으로 만드는것을 보고 조금은 감이 잡혔던거 같습니다. 그 다음으로는 시간의 흐름에 따라서 carve의 firstU와 secondU 값을 ..
더보기
-
Houdini1_starter_06_Firework_폭죽
Redshift공부를 하다가... 머리아파서 잠을 자려고 하는데 후디니 코드가 머릿속에 맴돌아서 컴퓨터를 다시 키고 joy of vex이후로 houdini1에서의 첫 삽질입니다. N방향으로 뻗어 나가면서 시간에따라 위로 상승하는 결과를 만들어보라고 하셨는데 도전해보았습니다. 일단 머리로는 normalize를 해주고 랜덤시드를 정해주면 된다는걸 알고있지만 직접 써보니 쉽지 않았습니다. 처음부터 normal에 랜덤값을 주고 증폭을 시켜주고 하려니 엉뚱한 결과가 나왔습니다. 다시 생각을 하다가 @P에서 base를 빼서 normalize시켜줬고 그 결과를 기존의 height에 곱해줬습니다. 그리고 아래의 최종 시스템에 set()이 아닌 @P에 @nor값을 더해줬습니다. 결과입니다. 다음으로는 시간의 흐름에 따라..
더보기
-
Houdini1_starter_07
starter_07은 foreach에관련된 노드에 대해 전체적으로 알아보는 날 입니다. 강의의 초반부는 같은 내용을 계속 반복하면서 foreach관련 노드들과 block_begin, block_end를 각각 비교해보면서 후디니에서 어떻게 간편한 템플릿으로 만들어줬는지 이해하는 과정을 거쳤습니다. 그 과정에서 블록들이 어떤 역할을 수행해주는지 직접 blast로 떼면서 이해하는데 더욱 도움이 됐습니다. 오늘 크게 다룬 내용은 block_begin에서의 fetch feedback / Extract piece or point block_end 에서의 by count / by piece or points feedback / merge 를 각각 비교하면 foreach관련 노드들과 비교해보고 이해하는 과정입니다. f..
더보기
-
Houdini1_starter_08
starter_08은 solver에 대해 알아봤습니다. solver는 시간에 따라 주어진 세팅에 맞게 작업을 수행해줍니다. solver노드는 atw처럼 4개의 인풋이 있으며 subnet처럼 노드 안으로 들어가야 합니다. subnet과 동일하게 output노드를 통해서 결과를 확인할 수 있습니다. 아래처럼 노드를 배치하면 0.1만큼 울려주는 세팅을 시간의 흐름에따라 반복해줘서 y축방향으로 쭉 올라가는것을 확인할 수 있습니다. Start Frame을 설정해주면 Start Frame부터 작업이 수행되며 Start Frame이전에는 solver로 인한 결과는 아무것도 나타나지 않습니다. 원본 또한 나타나지 않습니다! Cache Simulation은 임시저장, Allow Caching To Disk는 디스크에 저..
더보기
-
Houdini1_starter_08_과제
starter_08에서 redlife와 atw정리한 내용입니다. 다른 작업을 하다가 시간이 많이 늦어져서 점 세개는 충분히 시간을 못쓴거 같습니다..사진에 관한 설명도 추가하고 점 세개에 대한 부분 업데이트 하도록 하겠습니다! 오늘도 좋은 강의와 아이디어 제공해주시는 TWA에 감사드리며 내일 공부일기로 찾아 뵙겠습니다:D https://www.twahoudini.com/home-old TWA houdini TWA 후디니의 정석 홈페이지에 오신 모든 랭글러 여러분 환영합니다. www.twahoudini.com
더보기
-
Houdini1_starter_09
starter 09는 TWA님이 고난주간이라고 하십니다. 오늘 day1에서는 starter 08에서 내주셨던 과제에대한 설명과 새로운 과제에대한 예시를 보여주셨습니다. 전체적으로 오늘 작업을 진행하시는걸 보고 하나씩 천천히 추가해 나아가야하는것을 느꼈습니다. 어제는 점 하나를 작업하면서도 세개에대한 부분은 어떻게 만들지...?라는 생각 때문에 점 하나조차 오래 걸렸던듯 합니다. 시작은 점하나를 움직이는거부터 시작하셨습니다. @P = @P + {0.1,0,0}; 을 만들어서 점이 움직이는것을 확인합니다. 바로 @condition의 조건을 만들어줍니다. 다음으로는 어제 애먹었던 @redlife의 조건을 만들어줍니다. 이제 solver안에서 조건을 바꾸는것이 아닌 밖에서 바꿀 수 있도록 추가적인 ch들을 달아..
더보기
-
Houdini1_starter_09_day2
starter 09 day2입니다. 어제 과제에 대한 정답(?)을 보면서 만들긴 했지만 TWA님의 식은 정말 견고하다는 생각이 들었습니다. 오늘도 어제 과제에 대한 풀이와 오늘 과제를 정리해보도록 하겠습니다. 가장 중요한것은 정해줄 intervall과 그에 영향을 받는 방향전환의 유무 (turn/keep)입니다. intervall이 5라면 5프레임마다 방향전환을 하게됩니다. 작업의 순서는 1. 각 포인트가 서로 다른방향으로 움직이도록 만들기 2. intervall을 통제하기 3. 하나의 점에 intervall, turn, keep, 방향전환 전부 적용시켜주기 4. 여러개의 점에 랜덤하게 적용시켜주기 5. 움직임 디자인 첫번째는 각 포인트가 서로 다른방향으로 움직이도록 만드는 과정입니다. 0번 인풋에는 s..
더보기
-
Houdini1_starter_09_day3
starter 09 day2입니다. 어제 과제를 좀 더 들여다보다가 점이 마이너스 방향으로 출발하면 오류가 생기는것을 확인했습니다. 오늘도 어제 과제에 대한 풀이와 오늘 과제를 정리해보도록 하겠습니다. 처음에는 점이 이동하는것을 만들었습니다. v@vel을 만들어서 점이 벽을 만나는순간을 조건문으로 만들어 만났을 때 어떤 효과가 생길지 적어주면 됩니다. 이 때 @vel을 normalize해주고 @speed를 곱해줘서 점이 이동하는 속도를 제어할 수 있습니다. 다음은 그리드를 wireframe노드를 달아서 벽을 만들어줬습니다. 벽은 atw을 통해서 조절할 수 있도록 point()을 사용해서 연동시켜줍니다. 이제 solver안에서 atw으로 @P에 @vel값이 더해져 움직이도록 해줍니다. 각 벽에 만났을 때 ..
더보기
-
Houdini1_starter_09_day4
오늘은 설 연휴가 끝나고 starter 09 day3에 진행했던 과제의 풀이와 새로운 노드들 몇가지를 배웠습니다. 우선 solver로 작업하기전에 빨간 점들이 둥글게 움직이는 부분을 작업했습니다. 과제로 혼자 진행할때는 atw으로 한번에 돌아가는것까지 만들었는데 TWA님은 Copy to points를 활용하여 sphere에 움직임을 주셨습니다. 그 다음에 solver안에 atribtransfer을 넣어서 활용하는데, 지금까지와 다른점은 움직임은 인풋0번에 그 다음 여러 효과나 조건문을 위한사항을 인풋1을 통해 만들었는데 이번에는 가만히 있는 그리드는 인풋0번 움직임은 인풋1번을 통해서 가져왔다는 점 입니다. 그러면 1번인풋은 시간의 흐름에 따라 이동할텐데 이전 프레임에서 칠해진 빨간부분은 사라지지 않습니..
더보기
-
Houdini1_starter_09_day5
오늘도 어제 했던 과제에대한 풀이와 오늘과제로 채워보겠습니다. 오늘은 이론수업이 굉장히 많았는데, 아이패드가 없어서 손으로 정리못한게 아쉬움이 남을듯 합니다.. 지금까지 해왔던 작업은 속도만 가지고 움직임을 통제했습니다. 등속도 운동만을 표현해왔고 이제는 어떠한 힘이 더해져서 힘과 속도를 가지고 움직임을 통제할것이고 힘이 더해져 가속도 운동을 표현할 예정입니다. day3과제 solver안에서는 atw 충돌에 따른 속도변화 atw 움직임 by 속도 이렇게 두가지 attrib wrangle로 표현했다면 중력이라는 힘이 추가된다면 atw 충돌에 따른 속도변화 atw 중력데 따른 속도변화 atw 움직임 by 속도 그리고 추가적으로 y축에서 충돌시 높이변화와 튕기는 방향이 난반사되는 경우가 생긴다면 atw 충돌에..
더보기
-
Houdini1_starter_09_day6
오늘도 어제 했던 과제에대한 풀이와 오늘과제에 대해서 업로드하겠습니다. 오늘 강의를 들으면서 고난주간했던 과제중에 TWA님과 가장 유사하게 과제를 풀어내서 기분이 좋았습니다. 달랐던점이 있다면 solver 안에서 vel과 gravity의 순서가 달랐다는 점입니다. solver 안에서 vel update를 통해서 여러 효과를 gravity로 중력을 정해주고 make it move를 통해서 움직임을 표현해줍니다. 진행할 때 점의 수가 적어서 점을 늘려줄 수 있는 방법은 여러가지지만 볼륨관련 노드를 활용해서 점을 늘려줬습니다. Voxel Size를 낮출수록 해상도가 높은느낌 높아질수록 해상도가 떨어지는 느낌입니다. 그 다음 vdbvisualizetree를 통해서 point로 만들어주고 attribdelete로..
더보기
-
Houdini1_starter_10
오늘은 고난주간 마지막날입니다. 어제 과제에대한 풀이를 해보겠습니다. point를 생성하는 방법과 지우는게 참 궁금했는데 너무 속시원한 강의였습니다. 목적은 1.source만들어주고 솔버에 불러서 포인트 누적 2. 초기속도 3. one direction gravity & point Gravity 4. 포인트를 선으로 묘사 5. 포인트소멸 6.바람 7.vel update 8.소스에 흑백으로 패턴주기 9.첫 birth위치 처음에는 source를 만들기전에 box로 포인트가 누적되는것을 확인했습니다. solver의 결과는 startframe이 11로 고정이여서 solver밖에서 box가 돌고있어도 11프레임의 P위치만 사용할것입니다. 따라서 0번인풋이 아닌 계속 업데이트되는 P정보를 가져오기위해 다른인풋에서 ..
더보기
Houdini1_Volumes
-
Houdini1_Volume_01
저번주로 particle이 끝나고 이번주부터는 Volume에 대해서 배웁니다. 오늘은 Volume관련 이론수업으로 진행됐습니다. 볼륨을 두가지로 분류하면 다음과같이 결과와 정보저장으로 분류할 수 있습니다. 아래와 같은 화면을 보면 [x,y,z]기준으로 [3,3,3]으로 구성돼 있고 총 27개의 voxel을 가지고있다고 할 수 있습니다. 다음은 voxel의 밀도관련 내용입니다. 후디니에서는 밀도와 관련된 숫자를 저장할 수 있고 그 이름을 지정해줄 수 있습니다. 가장 기본적으로는 density를 사용합니다. 밀도관련 volume만 활용하는것이 아닌 density[밀도관련] vel[속도관련] temperature[온도관련] 등 다양하게 사용할 예정이라고 합니다. 다음은 volume의 info관련된 내용입니다...
더보기
-
Houdini1_Volume_02
오늘은 볼륨관련 노드를 다뤄보면서 어제 배웠던 이론부분을 직접 만들고 비교해봤습니다. 우선 볼륨이라는 정보의 컨테이너를 만들어 봤습니다. 그냥 volume노드를 사용하면 씬뷰에 아무것도 보여주지 않지만 info에는 points prim volumes가 1개씩 존재하는것을 볼 수 있습니다. 볼륨의 이름을 확인할 수 있고 min,max를 통해서 바운딩박스의 크기를 확인할 수 있습니다. Rank가 Scalar인 상태에서는 Initial Value의 첫번째, x값에만 반응을 합니다. 세가지를 다 사용하려면 Rank를 Vector로 설정해야합니다. 그리고 Initial Value의 값에따라 밀도가 차이나는것을 확인할 수 있습니다. 위는 1 아래는 0.5입니다. 다음은 Rank를 Vector로 사용해봤습니다. Po..
더보기
-
Houdini1_Volume_03_part1
오늘은 volumewrangle과 volumeVOP을 중점으로 다뤄보았습니다. 일단 오브젝트와 IsoOffset을 통해서 기본적인 세팅을 해줬습니다. 각 volume의 이름은 a, b, c, d 입니다. 먼저 VV를 달아서 IsoOffset들이 구체적으로 어떤값을 가지고있는지 확인해봤습니다. Diffuse range를 0-2로 설정해주고 각 구간을 다른색으로 표현해봤습니다. TWA님과 결과가 조금 다른데 버전의 차이인듯합니다. 남색이 딱 0.5인데 남색을 나타내느것을 보니 볼륨의 밀도가 전부 1인듯 합니다. 다음은 volume wrangle을 사용해봤습니다. volumewrangle은 너무 길어서.. 이제 VOW라고 표기하겠습니다. volume의 이름인 @a의 값을 곱하며 업데이트 해줬습니다. 0.5가 ..
더보기
-
Houdini1_Volume_03_part2
오늘은 volume관련 노드들을 다뤄보았습니다. 우선 어제의 내용을 복습할겸 오늘 이용할 볼륨들을 만들어줬습니다. rubber toy를 만들어주고 컨테이너로 레퍼런스인 rubber toy를 volumevop을 통해서 volumesample을 가져왔습니다. 가져오면서 noise를 추가해줬습니다. 그리고 rubber toy 와 isoOffset을 복사해서 그냥 fog와 sdf스타일로 두가지 볼륨을 추가로 만들어 줬습니다. 이 때 SDF스타일의 볼륨을 primitive노드를 통해서 smoke로 바꿔줬습니다. 그리고 Volume Visualization, VV를 달아서 밀도값에 따라 색이 달라지도록 정의해줬습니다. SDF스타일 볼륨은 Den Ramp와 Diffuse Ramp의 min값을 -1로 주고 표면, 0에..
더보기
-
Houdini1_Volume_04
오늘은 Vector Volume, Gradient, Curvature에대해 알아보았습니다. 강의순서는 아래와같이 진행되는데 오늘은 2번까지 다루어보았습니다. 1. Vector Volume & How to Visualize 2. Curvature & Gradient 3. Advect 4. Volume with Solver 5. Particles with vector field 일단 크기 3,3,3의 박스와 vf라는 이름을 가진 볼륨을 만들고 VolumeVOP으로 noise를 줘봤습니다. 그리고 밀도의 정보가 아닌 방향의 정보를 알기 위해서 새로운 노드인 Volume Slice와 Volume Trail 노드를 사용했습니다. Volume Trail이 중요한데 첫번째에는 point에 대한 정보가 두번째에는 분석..
더보기
-
Houdini1_Volume_05
오늘은 advect를 다뤄보았습니다. 처음은 이론수업을 해주셨습니다. advect는 이류로 확산과는 다릅니다. 아래 사진처럼 밀도값이 높아지는 방향 gradient는 파란색 화살표 확산의 방향은 반대로 분홍색 화살표처럼 나타날것입니다. 이류 = 방향 + 이동 확산 = (방향 + 이동) + 값의 평형 입니다. 아래 그림의 왼쪽은 이류 오른쪽은 확산입니다. 이류를 살펴보면 이동시키는 만큼 값이 변하지않고 이동을 하고있고 확산은 값을 평형하게 해주기 위해서 값에 변화가 생깁니다. 확산은 최종적으로 모든칸이 2를 가지면서 값의 평형을 이룰것입니다. 후디니로 넘어가서 원본 볼륨과 방향정복가 있다면 이동을 시켜주는 친구가 vdb advect입니다. 첫번째 인풋에는 원본을 두번째에는 방향정보를 넣어줄것입니다. 확산또..
더보기
-
Houdini1_Volume_06
오늘은 solver와 함께 volume을 다뤄보았습니다. Volume을 solver로 다룰때 가장 중요한것은 solver에 들어가는 volume의 형식을 통일시켜주는것입니다. fog로 들어가면 fog로, sdf로 들어가면 sdf로 끝나서 solver가 작동할 때 같은 종류의 정보를 받을 수 있게 해주는것입니다. 그래서 한 사이클을 만들 때 좀 신경써줘야 합니다. 처음 만들어본 예제는 구가 점점 커지는 예제입니다. sphere를 vdb from polygons로 sdf를 만들어주고 gradient정보를 만들어서 vdbadvect에 vf로 넣어줬습니다. 원본이 gradient의 정보에 의해 이류될것입니다. 그 정도는 Timestep에 따라서 바뀔것입니다. 만약 vdb from polygons까지 포함해서 넣..
더보기
-
Houdini1_Volume_07
오늘은 smoke solver를 다뤄보았습니다. 불이나 연기에대한 묘사에 필요한 요소가 있습니다. 1. 연기 : density 2. 속도(힘) : V or vel 3. 온도 : temperature 입니다. dopnet을 만들어서 파티클에서 꼭 필요한 popobject, popsource, popsolver를 꺼내놓고 smoke solver를 다룰 때 꼭 필요한 노드들과 비교했습니다. smoke solver를 다룰 때 필수로 필요한 노드는 smoke object = 어떤 이름,어떤 볼륨과 그 해상도, 크기를 정해주는 역할을 합니다. 그리고 눈으로 확인할 수 있도록 도와줍니다. volume source = 어떤자료를 불러서 소스로 쓰고싶은지 정하는 노드입니다. density를 쓸지, temperature를..
더보기
-
Houdini1_Volume_08
오늘도 gas관련 새로운 노드들을 예제를통해 다루어 보았습니다. 어제 강의 복습겸 간단한 세팅을 만들어보았습니다. 하나의 fog vdb를 density, temperature, vel정보를 만들었습니다. 그리고 정보를 쉽게 다루기 위해서 volumevop을 달아줬습니다. 더 쉬운방법이 있지만, 우리가 볼륨을 다루는것을 인지하기 위해서 이렇게 진행한다고 하십니다. 다른 방법은 추후 강의에서 알려주신다고 하십니다. 그 방법으로는 pyrosource를 사용하는 방법인데 아래와 같이 쓸 Attribute을 정해주면 이름이 자동으로 정해집니다. 그리고 volume raterize attributes를 달아주고 Attributes에 우리가 쓸 attrib 이름을 적어주면 됩니다. 위의 방법은 추후에 사용하기로 하고..
더보기
-
Houdini1_Volume_09
오늘은 볼륨의 충돌과 새로운 노드를 다루어보았습니다. 우선 기본적으로 세팅을 잡았습니다. density, temperature, vel정보를 만들었습니다. 그리고 vel과 temperature의 정보에 변화를 주기위한 volume VOP을 달아줬습니다. 그리고 dopnet에서도 기본적인 세팅을 해줬습니다. source에서 각 field에 source를 넣어주고 바운딩박스를 만들어주고 볼륨의 크기에 따라 유동적으로 조정되도록 했습니다. 그리고 null로 control을 만들어줬습니다. div_size와 temperature mult 값을 가져왔습니다. 그리고 temperature의 volume VOP에 noise값을 업데이트 해줬습니다. 볼륨의 상승이 빨라서 smoke solver에서 값을 조절해줬습니다...
더보기
-
Houdini1_Volume_10
오늘은 어제 했던 과제의 풀이를 진행했습니다. 작업 순서는 아래와 같습니다. 1. Character 준비 & 정리 2. Smoke Solver Setting 3. 전기효과 4. 몇가지 추가적인 particles 5. Cache 정리 이 중에서 오늘은 Smoke Solver Setting까지 진행했습니다. density를 만드는데 있어서 새로운 노드를 배우기 위해서 mixamo에서 모션이 있는 fbx파일과 T포즈를 하고있는 fbx파일 두가지를 다운로드 받았습니다. 그리고 agent노드로 T포즈와 모션이 있는 fbx두가지 모두 가져와서 unpack해주었습니다. 그리고 손목위쪽의 점을 떼어내서 sphere를 Copytopoints로 위치 시켜주었습니다. 그리고 새로운 노드인 Point Deform을 사용해봤습..
더보기
-
Houdini1_Volume_11
오늘은 전기효과를 만들어 보았습니다. 들어가기전에 전기스타일 두가지를 소개시켜 주셨습니다. 크게 두가지로 나눌 수 있는데 가지가 많은 왼쪽 스타일 표면을 타고흐르는 오른쪽스타일 이렇게 크게 두가지로 나뉩니다. 전기효과를 만들 때 중요한것은 시작점과 끝점을 잘 정해줘야 하는것 입니다. 시작점과 끝점의 개수가 바뀔 수 있지만 처음 만들때는 시작점과 끝점을 동일한 개수로 가져가면서 진행합니다. 큰 흐름을 보자면 시작과 끝점 정의해주기 noise패턴 넣어주기 디테일 살려주기 이런식으로 진행이 됩니다. 일단 간단한 세팅을 만들었습니다. 두 라인을 만들어주고 add로 선으로 연결될 때 각 ptnum끼리 붙을 수 있도록 id를 만들어주었습니다. 그리고 noise패턴을 주기 위해서 blast로 각 prim을 떼어냈습니..
더보기
-
Houdini1_Volume_11_Part2
오늘은 전기효과를 brute캐릭터에 적용해보았습니다. 처음에 진행한 전기효과는 가슴앞쪽으로 모이는 전기효과입니다. 두번째로 만들 전기효과는 지면에 반응하는 효과입니다. 굵직한 세팅은 만들어두었으니, 라인애니메이션을 위주로 만들어주면서 디테일한 값들을 바꾸면 됩니다. 가슴으로 모이는 전기에서는 움직이는 캐릭터에 라인애니메이션을 만들어주는 방법과 pointdeform을 활용한 멈춰있는곳에서 효과를 움직이는 캐릭터에 적용시키는 두가지 방법이 있을것입니다. 우선 움직이는 캐릭터에 바로 효과를 넣는방식으로 진행했습니다. dopnet으로 파티클이 생성되도록 기본세팅을 잡아주었습니다. 가슴 앞쪽에 point gravity가 있으면 될것입니다. 새로운 노드인 POP Attract를 사용했는데, Goal에 위치값을 줄수..
더보기
-
Houdini1_Volume_12
오늘은 어제만든 전기효과에 의해서 생기는 파티클을 작업해보았습니다. 마지막에 만들어둔 필요한 정보만 있는 세팅을 가지고 시작했습니다. 우리가 집중해야하는 부분은 전기의 시작점과 끝점입니다. 이 때 파티클의 방향은 각 표면의 N방향을 가지고있어야 합니다. 그리고 그 방향에 더해지는 v의힘과 약간의 random값이 있으면 될것입니다. info를보면 굉장히 많은 정보가 있는것을 확인할 수 있습니다. 필요없는 정보를 떼기위해서 clean노드를 달아주었습니다. N의 정보를 보면 크기가 1이 안되는 아주 작은값이 존재하는것을 알 수 있습니다. 작업을 진행하면서 N정보도 다시 구해줄 예정입니다. 시작과 끝점을 떼주기 위해서 blast로 떼어냈습니다. 이 때 sort로 point번호를 reverse해주면 0번점만 떼어..
더보기
-
Houdini1_Volume_13_Part1
오늘은 볼륨을 랜더해보는 날입니다. 오늘의 목표는 뷰포트에서 보는 VV의 결과와 랜더뷰로 보는 결과의 일치를 시키는것이 목표입니다. 먼저 rubber toy를 fog vdb로 만들어주었습니다. 라이트를 설치해주고 camera를 잡아줬습니다. 그리고 out/mantra에 camera, object, light를 입력해주었습니다. 해상도의 차이로 인한 변화말고는 큰 차이가 없습니다. VV를 만들어주고 Density Scale을 키워보았습니다. 이제 랜더뷰에서도 동일한 결과를 얻기 위해서 material palette에서 결과를 만들어주었습니다. 총 세가지 material을 가져와봤는데 오늘은 cloud만 사용합니다. basicsmoke로 들어가보면 안쪽이 복잡한것을 확인할 수 있습니다. 오늘 다뤄볼 clou..
더보기
-
Houdini1_Volume_13_Part2
오늘은 brute를 마무리지어 봤습니다. 먼저 어제의 내용을 복습겸 control null을 삭제해주고, VV와 각 volumevop을 연결시켜주었습니다. 기본세팅인 VV와 잘 연결된것을 볼 수 있습니다. 이제 숙제로 만들어둔 brute와 smoke, electric, spark를 가져와서 세팅을 했습니다. 그리고 electric효과를 먼저 손봤습니다. 얇은 선으로 돼 있는 전기를 면으로 바꿔줄것입니다. 필요없는 정보를 clean 노드로 지워주고, foreach노드를 활용해서 모든 라인, 전기효과에 적용시켜줄것입니다. 안에 들어갈 내용을 만들어주기 위해서 blast로 선을 하나만 떼어내고 polywire를 적용했습니다. 너무 두꺼운부분은 wire radius값을 얇게 만들어주면 되는데, 라인이 모두 동일..
더보기
-
Houdini1_Volume_14
오늘의 목표는 dopnet안에서 추가적인 field를 만들고 vel field에 적용시키고 볼륨의 큰 모양을 헤치지 않고 디테일을 올려주는것입니다. sphere로 소스를 만들고 기본적인 dopnet세팅부터 했습니다. 소스는 density, temperature, velocity 정보를 가지게 했습니다. 각정보는 volume VOP으로 컨트롤가능하도록 했습니다. 다음은 dopnet 안에서 세팅을 잡아주었습니다. 그리고 null로 control을 만들어서 voxel 과 div size를 조절할 수 있게 했습니다. vel의 volume VOP을 컨트롤 해서 0,1,0의 값을 주면 위쪽으로만 상승하게 만들 수 있습니다. 이 결과를 dopnet 밖에서 보기위해 dop import fields노드를 활용했습니다. ..
더보기
-
Houdini1_Volume_15
오늘은 폭발효과를 만들어 보았습니다. 시작은 지난시간에 배운 복습겸 세팅을 만들고 시작했습니다. 기본적으로 sphere에 vdb from polygons로 density정보를 만들어주고 이름을 바꿔서 temperature와 vel의 정보를 만들어주고 merge로 source를 만들어주었습니다. 그리고 dopnet 세팅을 잡아주었습니다. 그리고 dop import field로 밖에서도 볼 수 있게 해주었습니다. 그리고 이번에는 control을 다른방식으로 만들어 봤습니다. add 에 atw을 달아서 진행했는데 divsize를 정의해주고 point()으로 각 노드에 연결시켜줬습니다. 라이트까지 만들어주고 결과를 한번 확인했습니다. 그리고 어제만든 부분을 복습겸 tempvel작업을 해보았습니다. 이 때 각 과..
더보기
-
Houdini1_Volume_16
오늘은 TWA님이 주신자료를 가지고 랜더를 진행해봤습니다. TWA님이 정말 깔끔하게 정리해서 자료를 주셔가지고,, 정말 감동입니다. 세가지 geo세팅이 있고 라이트 두개가 있습니다. 검은색은 control과 모든 세팅이 연결돼있고 흰색 Custom은 연결돼 있지 않은 같은 세팅입니다. 들어가면 Change at here에서 파라미터값을 조절해서 수치를 변경할 수 있고, pre source위에 소스를 넣어줄 수 있습니다. 지금까지 복습을 잘 했다면 각 파라미터값이 어디에 어떻게 들어가는지 알 수 있을것입니다. 아래쪽을보면 VV가 색별로 달려있는데, 흰색은 흰연기만 존재하고 빨간색쪽으로 갈수록 빨간 emission이 추가되는 느낌입니다. 이 세팅을....보고 진짜 너무 감동...받았습니다. 다른세팅은 복습겸..
더보기
-
Houdini1_Volume_17
오늘은 볼륨의 마지막 날입니다. 볼륨 블랜드에 관해서 다루어보았습니다. Volume Source에서 Blend가 해주는 역할을 찾아봤는데 s,v,d,w는 각각 s = source v = source weight d = target field w = target weight이고 (s * v + d * w) / (v + w)라는 계산을 해준다고 합니다. 그리고 source weight값이 target weight field에 더해진다고 합니다. TWA님이 알려주신 공식대로 쓰면 ((Cd * density) + (Cd * Alpha)) / (density + Alpha) 라는 식이 나옵니다. 아래 사진을 확인해보면 weight는 Blend를 사용할 경우에만 쓰입니다. TWA님이 제공해주신 파일을 보면 우리가 ..
더보기
Houdini1_RigidBody
-
Houdini1_RigidBody_01_02
오늘은 rigidbody를 배우는 첫날입니다. 01은 pack unpack에대한 개념으로 구성돼있고 02는 pack unpack을 활용한 예제를 진행합니다. pack을 먼저 배우는 이유는 추후에 우리가 rigidbody를 공부하면서 bullet solver를 물체에 적용시키기 위해서는 pack에대해 반드시 알아야된다고 하십니다. pack을 활용한 instancing을 해준다고 하는데, 어떤 과정이고 이 부분은 강의를 들으면서 이해시켜주신다고 하십니다. 우선 pack의 기능을 살펴보면 아래사진처럼 용량에서 굉장히 큰 차이가 있습니다. 예를들면 파일을 압축하거나 클라우드 시스템을 생각하면 된다고 하십니다. 이번에도 그림을 그리면서 설명해주셨는데 TWA님이 플랫폼에 동영상을 올리면 1000명이고 10000명이..
더보기
-
Houdini1_RigidBody_03
오늘은 rigidbody관련 노드들을 다뤄보았습니다. 파티클과 스모크와 다르게 리지드바디는 소스를 넣어주지않습니다. 아래사진은 A,B,C 세개를 불러서 묶어준상황이고 아래는 null로 세개의 box를 동시에 불렀다고 가정해봤습니다. 이 때 묶은결과와 묶지 않은결과, 그리고 세팅에따라 리지드바디의 결과가 달라진다고 합니다. 이 때 물체를 부르는 object노드를 그릇이라고 생각하면 됩니다. smoke, pop object와 동일합니다. 나중에 강의에서 다른타이밍에 오브젝트가 나타나게 혹은 랜덤하게 박스가 생성되게 해주는 sopsolver라는 노드를 활용하게 된다고 합니다. 조금은 발전된 형태고 오늘은 기본적인 형태만 다루게 됩니다. 다음은 리지드바디관련 솔버들입니다. rdbsolver는 sdf정보를 바탕으..
더보기
-
Houdini1_RigidBody_04
오늘은 본격적으로 시뮬레이션을 적용해봤습니다. pack을 안한 결과 그리고 pack의 위치가 다른 두가지 상황을 만들었습니다. 그리고 dopnet에서 세팅을 잡아줬습니다. 결과를 확인해보면 pack된결과와 그냥결과는 당연히 결과가 다르고 pack노드가 달린위치가 다르니까 sim의 결과가 다르게나오는것을 확인할 수 있었습니다. 카메라는 고정시키고 43프레임을 확인한 결과입니다. 이런 다른결과가 나오는 이유는 딥하게 들어가면 너무 길어져서 추후에 설명해주신다고 합니다. joy of vex 후반부에서 quaternion과 orient를 배웠는데 vector4정보로 물체의 instancing에 도움을 준다고 합니다. 각 과정을 TWA님이 설명해주셨습니다. pack되지 않은 소스도 공정에서 pack을 해주고 un..
더보기
-
Houdini1_RigidBody_05
오늘은 어제 과제에 대한 풀이를 해보았습니다. 어제 만들어두었던 그룹만 남겨두고 새로운 세팅을 잡았습니다. circle의 점만 남겨서 배열을 바꾸고 atw으로 위치를 올려주었습니다. 그리고 dopnet에서 gravity 세팅만 잡아주고 결과를 봤는데 옆으로 살짝 굴러가는것을 볼 수 있습니다. ConvexHull을 sphere로 바꿔주면 흔들리지 않는것을 볼 수 있습니다. 다음은 물리값에 대해서 다뤄보았습니다. bounce에 random한 값을 줘서 각 sphere들이 다르게 튀어오르는것을 확인할 수 있습니다. 이 때 chramp로 0~1까지의 bounce값을 색으로 지정해주면 가벼운애들은 빨강쪽 무거운애들은 보라쪽색을 가지게 됩니다. 이번에는 공의 색이아니라 띠에만 색을 주는 작업을 해보았습니다. pac..
더보기
-
Houdini1_RigidBody_06
오늘부터 앞으로 세개의 강의는 매우 중요한것을 배운다고 합니다. 파티클이나 스모크솔버처럼 자유롭게 사용하는데 필요한 요소를 배우고, 굵직한 세가지 예제로 진행한다고 합니다. 1. Object 자료 준비(모델링) 2. Sim set-up 3. 결과 분석 & Instancing 4. 출력(render) 핵심 스킬들은 1. object merge로 시뮬레이션 결과 부르기 & Geometry Spreadsheet 이해하기 2. Sourcing in Dopnet (sop solver & sop net) 3. Transfrom Pieces 이렇게 세가지가 있습니다. 첫번째과정은 Object 자료 준비 (모델링)입니다. 지면에 떨어지는 총알을 만들것인데, 총알이 여러개 떨어지는결과가 목표입니다. 모델링에서는 왼쪽부터..
더보기
-
Houdini1_RigidBody_07
오늘은 아주 중요한 리지드바디에서 쓸 물체 sourcing하는 법을 배웠습니다. dopnet안에서 solver를 쓰게 되는데 한번 정리해보도록 하겠습니다. 우선 soucing을 배우기 전에 그냥 solver를 다루면서 고난주간의 추억을 되살려봤습니다. 박스가 원운동하면서 잔상을 남기는 효과를 만들어 보았습니다. 일단 solver를 꺼내서 startframe을 11로 설정해줬습니다. solver작동의 핵심은 이전프레임의 결과를 가지고 solver안에서 한사이클이 시작되고 이 사이클의 결과를 solver의 결과물로 쓰는것입니다. solver에서 점이 추가가 되는지 확인을 해보고, merge와 switch에 식을 써줘서 원하는 프레임에 점이 나타나도록 만들었습니다. switch에 $FF==15라고 적으면 15..
더보기
-
Houdini1_RigidBody_08
어제와 오늘은 Procedural Lego Modeling을 해보았습니다. 강의 순서는 1. 전체 제작 과정 2. 기술 확인 3. 레고 블럭이 어떤 규칙으로 생겼는지 4. re) 전체 제작 과정(1과 유사) 5. 모델링 6. Colors 순으로 진행됩니다. 핵심 내용으로는 이 포인트들을 위치시켜줄지 정해주는것입니다. 그리고 시뮬을 위한 porxy 그리고 base, bevel, subdivide된결과와 lego 텍스트가 들어간 결과까지 만들어볼것입니다. 앞부분에 불린에대한 간단한 설명과 포인트 배열순서로인한 면의 생성 과정은 했던적이 있기 때문에 건너 뛰도록 하겠습니다. 중요한 스킬중에 하나는 노드로 if조건문 구현하는 방법입니다. if(@Frame>24){ @Cd = {1,0,0}; }else{ @Cd ..
더보기
-
Houdini1_RigidBody_09
오늘은 그동안 만들었던 모델링을 소싱해서 시뮬레이션 해보았습니다. 총알, 레고, 나무 세가지를 시뮬레이션했는데 각각 소싱과 시뮬레이션하는 방법이 조금씩 다릅니다. 전에 만들었던 모델링들을 가져와서 총알부터 시뮬레이션하기위해 자료를 만들었습니다. 진행 순서는 1. 자료정리 2. Sourcing 3. Proxy Simulation 4. High Detail 대체해주기 입니다. sim_bullet을 만들어주고, obj merge로 prep_bullet을 불러와줬습니다. 여기서 사용할 proxy와 hard를 떼어내줬고 pivot을 맞춰주기 위해서 pack의 location을 centroid에서 origin으로 바꿔줬습니다. 약간의 오차가 있는걸 볼 수 있는데 이부분이 0,0,0으로 맞춰집니다. 그리고 trans..
더보기
-
Houdini1_RigidBody_11
오늘은 물체간의 관계, Constraint를 배워봤습니다. Constraint는 직역하면 제약, 제한, 통제 인데 후디니에서는 물체와 물체 사이의 관계 입니다. Relationship between A&B라고 생각하면 됩니다. Constraint에는 여러 관계가 있는데 glue hard, soft cone twist slider spring이 있습니다. 이 부분을 인간관계에 비유해서 설명해주셨는데 Constraint도 각각 특정한 관계가 있고 관계가 서로 변할 수 있는것들이 동일하다고 생각하면 됩니다. 관계가 변할 때 어떤 조건들이 필요할것이고 모든 관계가 포함하는 조건도 있을것입니다. 오늘은 여러 Constraint중에 hard만 다루어 봤습니다. hard는 아래처럼 빨간축과 주황색 라인으로 이어져 있..
더보기
-
Houdini1_RigidBody_12
오늘은 @active, @animated, @deforming을 배우고, 진자운동을 만들어봤습니다. 오늘 새로 배우는 @active를 위해서 twa님의 기본적인 세팅을 만들어봤습니다. @active는 디폴트값이 1이고 1이면 시뮬레이션의 영향을 받고, 0이면 받지 않습니다. 왼쪽은 @activate는 1이고 오른쪽은 0이여서 gravity의 영향을 받지 않는것을 볼 수 있습니다. 다음은 @animated와 @defroming을 이해하기위해서 세팅하나를 잡았습니다. box가 mountain에 의해서 일렁이면서 벽을 향해 날아가는 키를 잡아줬습니다. 두가지 상황을 만들어줬는데, pack된 후에 transform을 달아준상황과 transform후에 pack을해준 상황을 만들어줬습니다. 최종이 pack일때는 p..
더보기
-
Houdini1_RigidBody_13
오늘은 TWA님이 결과를 먼저 보여주시면 만들어보고 잘 만들었는지 확인하는식의 강의로 진행됐습니다. 첫번째 만들어본 예시는 위박스에 달려서 왔다갔다 움직이는 예시로 어제 만들었던 진자운동의 복습한다고 생각하면 만들었습니다. 아래와같이 두 포인트로 위치를 잡아주고 이름을 지정해줬습니다. aad로 움직일 친구는 active를 1 안움직일친구는 active를 0으로 설정해줬습니다. 그리고 이름을 지정해준 아래를 기준으로 constraint세팅을 잡아줬습니다. constraint_type = 'position';으로 잡아줬습니다. constraint를 연결시켜주고, sopnet을 만들어서 일정프레임에 @v가 업데이트되도록 했습니다. 결과가 잘 나온것을 볼 수 있습니다. 힘이 빠지는것을 표현하고싶다면 sopnet..
더보기
-
Houdini1_RigidBody_14_Part01,02
오늘은 의자 모델링을 다시 진행하고, constraint설정을 잡아보았습니다. seat의 원점 0,0,0을 기준으로 각각 x,y,z방향으로 cx, cy, cz를 구해주고 각각 /2를 해주어서 파라미터를 다루기 편하게 해주었습니다. 그리고, 아래처럼 우리가 구해준 포인트에서 두께를 더해주기위해서 th라는 변수를 설정했습니다. 변수를 설정해주고 box의 point배열 순서대로 point를 생성해주었습니다. 일단 왼쪽아래의 point를 구해준다면 나머지 point는 대칭으로 곱해주면서 구할 수 있을것입니다. 중요한거는 box의 point배열 순서를 맞춰주는것입니다. box가 잘 생성된것을 볼 수 있습니다. 그리고 th값을 더해주지않은 point들을 활용해서 다리와 뒤쪽 라인을 만들어줬습니다. 아래쪽 point..
더보기
-
Houdini1_RigidBody_14_Part03
오늘은 Constraint System을 만들어봤습니다. 후디니가 알아서 Constraint관계를 잡아줄 수 있는 시스템을 여러 방법을 시도해봤습니다. 지금까지는 한땀한땀 이렇게 시스템을 만들어줬는데, 이 방법은 취후의 수단으로 남겨두면 됩니다. 시작은 prep_name이 지정돼있는 부분에서부터 시작합니다. 반복이 필요하지만 다리하나와 시트만 떼어내서 작업을 시작했습니다. 가장 처음 시도한 방법은 boolean을 사용하는것입니다. boolean의 intersect를 활용해서 겹치는 부분만 남겨서 그 부분을 기점으로 bound를 만들어서 가운데 point를 만들어준다면 constraint로 활용가능할것입니다. attribcopy노드로 name정보를 가져와준다면 같은지점에 두 포인트를 가지고 prim을 만들..
더보기
-
Houdini1_RigidBody_15
오늘은 리깅 시뮬레이션을 만들어봤습니다. 여러 예제를 보여주셨는데 음 아주 멋진 예제가 많았습니다. 오늘부터 수업에서는 constraint세팅에서 필요한 노드를 미리 만들어두고 시작했습니다. constraint 세팅에서 많이사용하는 노드를 미리 만든것인데 오늘 새롭게 배우고 자주 쓸 정보인 i@condof와 v@condir을 조절해줄 수 있는 세팅도 미리 만들어놨습니다. VV를 줄인것처럼 앞으로 이 세팅묶음을 con_con으로 부르기로 했습니다. 예제 첫번째는 위에서 공이 떨어지고, 공중에 box가 고정돼있고 box가 흔들리는 예제입니다. aad세팅과 name을 지정해줬습니다. 하나는 box와 이름을 동일하게 constraint정보를 잡아주고 하나는 공중에 있을것이기때문에 이름을 따로 지정해주지 않았습니..
더보기
-
Houdini1_RigidBody_15_part02
오늘은 어제 과제로 내주신 다리를 만들어보고 다리네개짜리 로봇도 만들어봤습니다. 어제 혼자진행한것과 다른점이 있다면 constraint를위한 point를 따로 만들어주고 각 constraint마다 하나씩 세팅을 잡아줬다는 점입니다. 노드의 색을 맘에드는걸로 바꿔두니 뭔가 기분이 좋습니다.. dopnet에서의 세팅은 동일하게 진행됐습니다. 어제 진행했던 방향성과 크게 다른점이나 어려웠던점이 없어서 바로 로봇을 만드는 부분으로 넘어가 보겠습니다. 다리네개는 반복이기때문에 하나의 다리를 먼저 제작해주었습니다. 그리고 각각 이름을 지정해주기전에 각 부품마다 그룹을 지어줘서 그룹이름을 지어줬습니다. 우리가 다리를 point를 활용해서 prim을 만들고 polywire를 해주었기때문에 point를 관절로 사용하면 ..
더보기
-
Houdini1_RigidBody_15_part03
오늘은 자동차 리깅을 진행해봤습니다. twa님은 자동차 세개를가지고 진행하셨는데 저는 가지고있던 람보르기니 모델링과 머스탱을 다운받아서 진행해봤습니다. 모델링이 잘 정리돼있어서 각 바퀴와 body를 떼어내는데 너무 간편했습니다. 이 때 시스템에 넣어주기 위해서 바퀴를 떼어내는 순서가 중요합니다. 필요없는 attrib을 지워주고 normal을 다시 달아줬습니다. 그리고 시뮬레이션을 위한 proxy자료를 만들기 시작했습니다. bound두개를 만들어서 하나는 sphere로 원점위치, 하나는 box로 height와 radius를 구할 수 있도록 했습니다. tube에 정보를 불러와주고 copy to points로 넣어줬습니다. 차를 변경해주어도 잘 적용되는것을 확인할 수 있습니다. 이 부분을 복사해서 모든 바퀴에..
더보기
-
Houdini1_RigidBody_15_part04
오늘은 어제만든 자동차의 서스팬션세팅과 충돌조건을 만들어줬습니다. 자동차를 조각내서 cap으로 만들어주고 cap과 body를 연결하는 시스템을 만들예정입니다. 시작은 body를 기준으로 remeshgrid를 활용했습니다. fog볼륨을 만들어서 polygon으로 치환해주는 과정이랑 같은 역할을 해줍니다. 그리고 이 자동차면을 잘라주는데, Booleanfracture라는 노드를 사용했습니다. explodedview로 보면 자동차가 잘리는것을 볼 수 있습니다. proxy_car에 걸리지 않는선에서 만들어줬습니다. assemble해서 pack해주고 잘 굴러갈 수 있도록 파츠몇개를 지워줬습니다. 그리고 좀 더 가볍게 만들어주기위해서 convexhull을 적용시키고 polyreduce라는 노드를 사용해서 polyg..
더보기
-
Houdini1_RigidBody_16_part01_02
오늘은 constraint을 불러와보고 시간에따라 변화시켜보았습니다. 이론은 크게 세가지로 진행되는데 아래와 같습니다. 빌드업은 sopsolver방식과 비슷합니다. 박스가 쌓이형태 두가지를 가지고 진행을 했습니다. 이 때 포인트의 y축을 기준삼아서 active를 정의해주었습니다. dopnet에서 각각 다른 constraint 설정을 주고 sopsolver로 sphere를 던져보았습니다. 다른위치에서 sphere가 날아가는것을 확인할 수 있습니다. 각 Stiffness값은 5와 300입니다. 이렇게 기본적인 세팅이 완료됐고 constraint정보를 geo단계에서도 볼 수 있도록 만들어보았습니다. Geometry Spreadsheet를 살펴보면 Relationships에 아래 정보가 존재하는것을 볼 수 있습..
더보기
-
Houdini1_RigidBody_17
오늘은 캐릭터로 충돌조건을 만들어보았습니다. 먼저 파일을 불러왔습니다. 불러오는 방법에는 file과 agent 노드 두가지 방식이 있는데 file로 가져오면 애니메이션 없이 t포즈로 agent로 가져오면 애니메이션이 포함된채로 가져와집니다. 그리고 pointdeform을 사용하기위해서 캐릭터가 가장 펴져있는 33프레임을 timeshift로 고정했습니다. 그리고 충돌조건을 만들기위해서 새로운 노드 VDB to Spheres를 사용해보았습니다. 이 노드에서 중요한것은 max Spheres와 point count입니다. point count는 얼마나 고르게 뿌려줄지 분석을 하는 과정이고 max spheres는 스피어를 몇개나 뿌릴지 정해주는 역할입니다. max Spheres의 값을 50으로 낮추면 아래와같이 ..
더보기
-
Houdini1_RigidBody_18_part01
오늘은 재질표현중에서도 콘크리트 재질표현을 해보았습니다. 각각 왼쪽부터 보로노이, +치핑, +노이즈, +치핑&노이즈 된 결과입니다. 오늘은 보로노이의 기본적인 원리와 치핑하는 과정까지 진행해보았습니다. 먼저 twa님이 만드신 예시를 가지고 보로노이의 기본적인 개념을 배웠습니다. 보로노이는 point를 기준으로 면을 나눠주는데 각 point를 이어주는 라인의 수직되는 방향으로 면을 잘라줍니다. 면이 잘리는 면적은 예전에 joy of vex에서 배웠던것 처럼 어느 point에 더 가깝냐가 중요해집니다. 두 포인트를 라인으로 이어주고 그 라인을 기준으로 수직으로 잘라주는 개념입니다. 오른쪽 사진을 보면 point가 멀어져서 아주 조그맣게 잘린모습을 볼 수 있습니다. 아래와같이 point가 위치한다면 보로노이로..
더보기
-
Houdini1_RigidBody_18_part02
오늘은 조각에 치핑+노이즈를 주고 constraint세팅을 잡아보았습니다. 오늘은 새로운 con_sys를 만들건데 voronoi노드에 있는 기능을 활용해서 voronoi에만 적용되는 시스템이지만 기존보다 빠릅니다. 노드가 이만큼 쌓이는데, 전체적으로 비슷한 방법이 반복됩니다. 시작은 box를 만들어서 issoffset으로 볼륨, scatter로 점을 뿌려서 voronoifracture로 면을 짤라주었습니다. 잘라진 면 사이사이에 노이즈를 주는것은 크게 어렵지 않습니다. 전에 활용했던 개념중 restpoint를 만들어두고 노이즈를 준후에 다시 restpoint = @P로 바꿔주면 됩니다. 이 개념을 활용하면 왼쪽과같은 결과를 확인할 수 있는데 단면은 깔끔한것을 볼 수 있습니다. 단면에도 노이즈를 주기 위해..
더보기
-
Houdini1_RigidBody_18_part03
오늘은 차와 캐릭터로 뭔가를 부시기전에 출력을위해 랜더세팅과 텍스쳐링을 간단하게 해보았습니다. 시작은 랜더가 잘 되는지 확인하는 작업부터 시작했습니다. 간단하게 그리드와 박스를 두고 후디니에서 제공해주는 hdri를 넣어서 랜더가 잘 작동하는지 확인할 수 있습니다. 랜더가 잘 되는것을 확인할 수 있습니다. 이 파일을 start_base로 저장해주었습니다. 그리고 재질을 적용하는 새로운방법을 제시하셨는데 material network라는 노드입니다. 네트워크 안에서 바로 재질을 만들어줄 수 있습니다. 재질이 잘 적용되는것을 확인할 수 있습니다. 이제 자동차에 재질을 적용해보았습니다. 원래 mat에 있던 이름을 활용해서 그룹을 지어줬는데 twa님과 이름이 조금 다릅니다. 머스탱도 작업을 해봤는데 이름이 부품별..
더보기
-
Houdini1_RigidBody_18_part04
오늘은 콘크리트 세팅을 보완해보았습니다. 우리가만든 콘크리트 시스템에서 빼먹은 부분이있어서 보완했습니다. 치핑된 조각에대한 constraint세팅에서 큰 조각간에도 constraint세팅도 합류시켜주었습니다. objmerge로 가져와서 합류시켜주었습니다. 그리고 rbdinteriordetail이 control에서 빠져있었는데 이부분은 저번에 수업끝나고 추가해둬서 놓친게없나 다른부분을 다시 확인해보았습니다. 세팅에서 누락된 부분은 다 잡아주고 잘 작동하는지 확인해보았습니다. 면을 확인해보면 리메시로 인한 면과 단면의 면의 폴리곤크기가 다릅니다. 이 부분을 맞춰주기위해서 detail size / 2를 해주었습니다. 아까보다 비슷해진 느낌이 있고 치핑되는쪽에도 /2를 해주었습니다. 그리고 약간의 트윅을 해주었..
더보기
-
Houdini1_RigidBody_18_part05
오늘은 캐릭터를 가지고 기둥을 부셔보았습니다. 오늘의 핵심은 트윅의 난이도 상승입니다. 캐릭터의 fake_col의 속도, 무게와 콘크리트의 strength를 잘 맞춰줘야 합니다. 박스와 캐릭터의 위치를 잡아두고 pointdeform으로 도끼에 point를 뿌려주었습니다. 도끼가 얇기때문에 볼륨으로 만드는과정은 없어도 됩니다. 이 때 빠르게 휘두르는 구간에서 중간에 비는 시간이 생길 수 있기때문에 Integer Frames를 체크해제해줍니다. vel을 만들어주기위해서 trail을 달아주고 line으로 만들어주었습니다. 매프레임 vel값을가진 sphere를 생성해주고 지워줄것입니다. fake_col을 만들기위해서 trail로 이동경로를 만들어줄 수 있습니다. resemple로 tangent정보와 curve ..
더보기
-
Houdini1_RigidBody_18_part06
오늘은 자동차로 콘크리트를 부셔보았습니다. 파일을 새로 저장해주고 자동차로 충돌하기 위해 필요없는 파일은 삭제해주었습니다. 그리고 twa님이 친절하게 우리가 만들었던 작업을 크게크게 설명해주셨습니다. 1번은 자동차를 그룹지어주고 2번은 원본바퀴와 proxy바퀴를 분류해주었습니다. 3번은 바퀴의 constraint조건을 4번은 서스팬션세팅을 잡았습니다. 1번부터 4번까지는 1번만 바뀌면 알아서 2,3,4번이 적용되는 시스템입니다. 5번과정은 자동차 본체에대한 충돌조건 준비입니다. 5-1은 자동차를 쪼개고 5-2는 프록시를 만드는과정 마지막은 constraint세팅입니다. 여기서 만든 자료가 4번과 연결되면서 영향을 줍니다. 기존의 자료를 사용하기보다 우리가 랜더세팅에서 잡은 자동차를 가져와서 다시 잘 적용..
더보기
-
Houdini1_RigidBody_18_part07_1&2
오늘은 자동차 충돌에서 모래와 먼지를 추가적으로 만들어봤습니다. 모래와 먼지는 파티클과 볼륨을 추가한 내용입니다. 가장 중요한것은 어디서 파티클과 볼륨이 발생할지에대한 부분입니다. 추가하기에 앞서 조각들이 너무 멀리 날아가지 않도록 세팅을 잡아보았습니다. 멀리 날아가는 정도에 limit을 걸어주는것입니다. 왼쪽처럼 limit을 주지않아 멀리 날아간다면 이질감이 들것입니다. frac쪽에 sopsolver세팅을 넣어주는데 sopnet에서 아무런 변화도 주지 않았습니다. 이 때 새로운 노드인 popspeedlimit을 달아주면 제한이 생기게 됩니다. 우리가 각 조각을 pack해줬기 때문에 파티클스러운 면모를 가지고 있어서 popspeedlimit노드를 사용할 수 있습니다. max speed와 max spin을..
더보기
-
Houdini1_RigidBody_18_part08
오늘은 어제한 숙제와 자동차 충돌을 렌더해보았습니다. 어제의 과제는 도움을 주는 영상 part7_2를 보고 만들어서 어렵지 않았습니다. 그동안 만들었던 시뮬레이션을 파일로 가져와서 정리해주었습니다. 제가만든 자동차는 120프레임까지 브루트는 150프레임까지 있어서 정보가 비어버리는 부분을 처리해줄 필요가 있습니다. 스위치에 키를 잡아서 정보가 비어있을때는 null을 받아주도록 했습니다. brute 의 frac은 정보가 없을때도 기둥이 잘 서있어야하기 때문에 time shift를 활용해서 존재하는게 해줄 수 있습니다. 오늘은 크게크게 어떤걸 진행했는지 빠르게 정리하겠습니다. 내일 예비군때문에.... 일단 기존 시뮬레이션 파일에 랜더가 적용된 high퀄리티 자동차로 치환시켜주는 작업을 진행했습니다. 그룹과 ..
더보기
-
Houdini1_RigidBody_18_part09
오늘은 금속과 유리재질표현을 해보았습니다. 예비군 다녀오는동안 렌더를 돌려봤습니다. 간단하게 세팅을 해줬습니다. box를 쌓고 constraint세팅을 잡아줬습니다. 금속재질느낌을 내는 기본 개념은 세가지 constraint relationship을 준비해주고 어떤 조건이 됐을 때 a에서 b , b에서 c로 넘어가주면 됩니다. 각각 a는 부서지는 정도 b는 휘는정도(복원력) c는 -1로 단단히 고정하는 역할을 합니다. 전에 강의에서는 switch로 constraint_name을 교체시켜줬는데 next_constraint_name은 처음보는건지 기억을 못하는건지... 낯설어서 찾아봤습니다. constraint가 solver에 의해 부서지면 switch해준다고 합니다. glue constraints와 bul..
더보기
-
Houdini1_RigidBody_18_part10
오늘은 나무질감과 유리질감을 표현해봤습니다. 지난시간에 만들어뒀던 banding을 가지고 시작했습니다. 나무조각에는 여러 스타일이 있는데 오늘은 그 중 하나인 세로로 길게 결이있는 나무를 부서보았습니다. 전에 나무조각 모델링을 한적 있는데 그 과정의 간소화입니다. transform으로 voronoi전후로 짧게 만들었다가 길게만들면 됩니다. 그리고 voronoi노드 자체에 있는 constraint를 사용해봤습니다. 그리고 노드와 안에 내용들을 전부 metal에서 wood로 바꿔주었습니다. 조각별 assemble에서 이름과 voronoi에서 constraint를 만들때 이름조건을 동일하게 잘 만들어줘야 합니다. 유리조각처럼 떨어질 수 있는 조건, remove_cut를 연결시켜주면 조건에따라서 떨어지는 조각을..
더보기
Houdini1_RigidBody
-
Houdini1_RigidBody_19_part01
오늘은 자동차 충돌의 첫날입니다. 자동차를 이름을 기준으로 나누고 material 세팅을 해보았습니다. 자동차가 찌그러지고 부품이 빠져야하기때문에 자동으로 constraint세팅을 잡아주는 시스템을 사용할 수 없습니다. 순서는 1.자료확인, att, mat 정리 2. 바퀴&서스펜션 세팅 3. 닫힌면과 열린면에 대해(with Voronoi) 4. 하체 세팅 5. Main Body 6. 힌지 7. 부러질 조각과 작은 조각들 8. Render 입니다. 작업이전에 재질을 먼저 정해줘야 나중에 작업을 두번하는일 없이 진행할 수 있다고 합니다. 모델링파일은 twa님이 제공해주셨고 이 파일을 불러와서 크기조절과 필요없는 att를 지워주고 이름을 간단하게 바꿔주었습니다. name은 cosntraint세팅에서 다시 잡아..
더보기
-
Houdini1_RigidBody_19_part02
오늘은 바퀴와 서스팬션 세팅을 잡아봤습니다. 전에 만들었던 서스팬션과 다르게 jeep에 어울리게 서스팬션을 만들어볼 예정입니다. 오른쪽이 proxy고 왼쪽이 치환해준 결과로 앞뒤바퀴가 좌우기준으로 한 축에 묶여있는 서스팬션입니다. 그리고 서스팬션에 복원력이 있어서 올라오는 모습이 보여집니다. 앞으로 이름정리가 매우 중요한데 proxy는 앞에 p origin은 앞에 o 충돌로인해 휠 자료는 앞에 d를 붙이기로 했습니다. 시작은 바퀴세팅부터 시작했습니다. 다음은 proxy자료부터 만들어 줬는데 bound로 중심과 지름, 두께를 구해서 tube로 proxy자료를 만들고 subnet으로 묶어줬습니다. 그리고 origin과 proxy의 이름을 동일하게 지정해주었습니다. 그리고 null을 달아서 가져올 때 편하게 ..
더보기
-
Houdini1_RigidBody_19_part03
오늘은 크고 작은 부품과 열린 닫힌 면을 골라내고 쪼개는 세팅을 했습니다. 열린면과 닫힌면을 어떻게 골라서 voronoi를 잘 적용해줄지에대한 test를 하기위한 상황을 준비했습니다. 열린면을 그대로 voronoi로 쪼개주면 아래와같이 올바르게 조각나지 않는것을 볼 수 있습니다. voronoi는 닫힌면에게 이상적으로 작동하기 때문입니다. 방법은 간단합니다. polyextrude로 면에 두께를주면 됩니다. 열린면에 대해서만 extrude를 해주기 위해서 열린면인지 닫힌면인지 판단하는 과정을 만들어봤습니다. unshared edges를 체크해주면 엣지를 공유하지않는 열린쪽만 그룹지어주는것을 확인할 수 있습니다. 모든 오브젝트에 대해서 작업하기 위해서 foreach connected piece를 활용했습니다...
더보기
-
Houdini1_RigidBody_19_part04
오늘은 하체세팅과 서스팬션 세팅을 마무리하고, 하체의 찌그러짐을 표현했습니다. bottom에서 가장 중요한것은 바퀴와 chassis에 간섭이 없어야하는것입니다. 지금은 많이 겹쳐있기 때문에 boolean을 통해서 간섭을 없애줬습니다. 섀시를 가려주는 덮게는 떼어내서 o_chassis에 합류시켜주었습니다. 섀시 proxy를 가져와서 bound로 사이즈를 키우고 boolean을 통해서 공간을 확보했습니다. 바퀴같은 경우는 bound로 잡을 수 없기때문에 만들어둔 시스템 안쪽으로 가서 tube자체의 크기를 변경해주었습니다. 그리고 하체의 앞뒤는 찌그러지고 가운데는 단단하게 버틸 수 있게 세가지 부품으로 boolean을 통해 다시 나눠줬습니다. 이 때 이름이 겹치기 때문에 뒤에 문자열을 더해줘서 겹치지 않게 해..
더보기
-
Houdini1_RigidBody_19_part05
오늘은 자동차의 bottom위에 몸체와 트렁크를 올려보았습니다. 오늘의 작업순서는 사전작업 1. frac_sys 개선 및 보완 2. Part_Detail 별로 연결되지 않은 물체 사이에 Primitive 자동으로 만들기 메인 작업 1. Body_mid, Body_rear 달아주기 2. 문, 보닛, 사이드 미러 달아주기 입니다. 일단 우리가 만질 조각들을 확인해봤습니다. 지난시간에 bottom은 세가지 조각으로 구성돼있는걸 두조각을 chassis쪽으로 빼서 처리해줬는데 이번에는 큰조각과 작은조각이 나뉘었다는것에서 작업할 부분이 더 생깁니다. frac_sys에 따라서 작은녀석들은 쪼개지않고 나중에 달아주려고 하는데 원본과 proxy의 결과에서 차이가 나는것을 볼 수 있습니다. 이러면 point deform하..
더보기
-
Houdini1_RigidBody_19_part06
오늘은 특별한 부품 몇개를 제외하고 전부 묶어서 세팅을 잡아줬습니다. body와 trunk등 따로따로 달아줄 수 있지만 앞으로 해야될 부품이 많기때문에 찌그러지거나 부러지거나 부품이 작은것들을 기준으로 세가지로 묶어봤습니다. 시작은 찌그러지는 녀석들만 골라내서 저번에 만들었던 세팅에 연결해주었습니다. 부품이 크고작은걸 걸러주는 정도를 조절해주고 다른부품과 연결되는 추가적인 constraint와 기존 prim을 연결시켜줄 수 있습니다. 이부분은 저번시간에 진행했던것과 동일합니다. 다음은 부러지는 녀석들을 묶어줬습니다. sopsolver세팅에서 거리에따라 prim을 지워달라고 하면 일정거리이상 휘다가 부러지게 만들어줄 수 있습니다. 마지막으로 작은조각들끼리 모아서 세팅을 잡아줬는데 기존 bend와 break..
더보기
-
Houdini1_RigidBody_19_part07
오늘은 자동차세팅 마무리를 해보았습니다. 앞쪽 휀더 부분이 부서지는게 아쉬워서 구부리는 작업으로 바꿔주었습니다. break에서 bend로 옮겨주기만 하면 됩니다. 문을 달기위해서 문에 포함돼있는 경첩일부를 bend쪽으로 넘겨주었습니다. 많이 휘어도 경첩을 기준으로 크게 벗어나지 않게 해주기위해서 추가적인 constraint가 필요합니다. 이렇게 경첩을 하나만 달아도 잘 작동하겠지만 견고하지 못할것입니다. 아래와 같이 constraint를 여러개 만들어준다면 원하는 결과를 얻을 수 있을것입니다. 가까운 prim을 기준으로 constraint에 붙여줄 수 있습니다. 가장 가까운 prim의 정보를 가져와서 constraint의 위치에 위치시켜주고 그 정보, 이름을 사용해서 constraint조건을 완성시킬 수..
더보기
-
Houdini1_RigidBody_20_part01
오늘은 houdini1의 마지막강의 건물붕괴에서 건물에셋을 만들며 시작했습니다. 시작은 box로 시작했습니다. 이 box를 방 한칸이라고 생각하고 기둥과 벽 천장 바닥을 조각내기위해서 booleanfracture를 사용했습니다. bounde의 padding값을 -로 가져가서 prim노드로 prim을 키우면 아래와같이 잘라줄 수 있습니다. 우리는 조각을 바라볼때 크게 btm, mid, top으로 나눌것이고 왼쪽부터 다이얼처럼 1~9번까지 번호를 줄것입니다. btm1-9 mid1-9 top1-9의 번호가 생길것입니다. 크게 sort를 세번 사용해서 y축기준, z축기준, x축기준으로 배열해서 순서를 맞춰주고 roompart를 정해줄것입니다. 이번에는 건물을 만들어볼건데 roomcount라는 null을 만들어서..
더보기
-
Houdini1_RigidBody_20_part02
오늘은 숙제풀이와 약간의 진도를 나갔습니다. 시작은 노드의 배열을 9*9의 모양에 맞게 잘 배열해주었습니다. 전부 바이패스 시켜놓고 하나씩 차근차근 작업을 진행할 수 있습니다. 다음은 치환의 일부를 진행해보았습니다. 치환을 하나씩 해주는것이 아니라 조건에 따라서 같은 쪽 벽면을 한번에 치환해주는 방식으로 진행할것입니다. 원하는 벽면 하나를 copy to points하기전에 떼어내고 치환할 조각을 만들어줄 수 있습니다. 그리고 맨밑에서 다시 그 조각을 뜯어서 모든조각에 반복해주면 새로운 스타일의 벽으로 치환된것을 볼 수 있습니다. 보이지않는 층도 잘 치환된것을 볼 수 있습니다. 강의시간도 짧고 살짝 쉬어가는 느낌의 하루였습니다. 작은건물은 자동차와 겹치는부분이 많아서 큰 건물을 만들어서 부시는 과정이 될것..
더보기
-
Houdini1_RigidBody_20_part03
오늘은 창문을 만들어서 치환시켜주고 리지드바디를 위해 자료를 가볍게 만드는 작업을 했습니다. 시작은 우리가 필요한면을 떼어내고 라인을 만들기위해 면을 다시 떼어내서 resample로 창문이 붙을 위치를 잡아줄 수 있게 세팅했습니다. 구멍을내기위한 오른쪽 ctp와 창문을 만들기위한 ctp두가지를 사용하는데 창문은 좀 더 얇게 만들어주기위해 transform으로 조절해줄 수 있습니다. 이 때 짝수 point번호는 창문이 홀수는 프레임이 될 수 있게 만들어줄 수 있습니다. dopnet의 충돌조건에서 프레임이 커다란 box가 돼서 창문과 충돌할수 있기때문에 prim노드로 방을 쪼개듯이 늘려서 쪼개주면 적절한 충돌조건을위한 준비가 됩니다. 이렇게 쪼개주면 충돌조건에 문제가생기지 않지만 조각이 너무 많아지는 문제가..
더보기
-
Houdini1_RigidBody_20_part04
오늘은 뼈대의 무너짐을 만들어봤습니다. 기둥과 천장바닥을 연결해주는 constraint를 먼저 잡아줬는데 이 부분은 기둥의 위아래면을 떼어내서 만들어줄 수 있습니다. proxy를 만드는 부분에서 추가적으로 한번에 만들어주고 그룹으로 만들어서 아래에서 빼내줄 수 있습니다. 그리고 ray를 통해서 동일한위치에 point를 만드는데 p_floor의 정보를 Import Attrib from Hits를 체크해서 정보를 받아올 수 있습니다. 그리고 connectadjacentpieces를통해 prim을 만들어줄 수 있는데 같은 위치에 있기때문에 뭘 손대지 않아도 잘 작동합니다. 그리고 constraint세팅과 part라는 정보를 name으로 넘겨줄 수 있습니다. 다음은 천장과 바닥을 보로노이로 쪼개주는 작업입니다...
더보기
-
Houdini1_RigidBody_20_part05
오늘을 건물의 붕괴를 마무리 해보았습니다. 창문을 여러스타일로 치환을 시켜줄것인데 충돌이 생기는 부분은 조각을 많이 만들어주고 충돌이 덜한부분은 조각이 많이 나지 않도록 만들어줄것입니다. 한쪽벽면을 떼어내고 높이별로 색을 주는데 그 부분을 chramp로 조절하고 rand값을 섞어서 적절히 섞이도록 해줄 수 있습니다. len값을 구해서 @P.y를 len으로 나눠주고 @ratio에 저장을 해줄 수 있습니다. 0~1값을가진 ratio를 *5하고 floor()을통해 0~4까지의 값을가진 @style을 만들어주고 @style에 따라서 원하는 구간에 색을 부여하고 어디가 가장 많은 조각이 들어올지 어디가 적은 조각이 들어올지 정해줄 수 있습니다. 이제 치환시켜줄 창문을 조각내줄건데 총 다섯가지 스타일로 만들어줄것입..
더보기
-
Houdini1_RigidBody_20_part06
오늘은 houdini1마지막 강의로 건물붕괴에서 볼륨을 더해보겠습니다. twa님과 세팅을 맞추고 캐시를 구웠습니다. 충돌하는 구의 den값만 바뀐설정입니다. 그리고 den이 5000인 결과를가지고 볼륨 소스를 만들었습니다. prim을 날리고 필요없는정보를 날렸습니다. 소스를 만들 때 한프레임 다음의 결과와 비교해서 @v의 차이를 가지고 정보를 만들어줬습니다. 그리고 trail을 달고 결과를 확인해봤습니다. 명확한 친구들을 골라내기위해서 길이를 기준으로 짧은것들은 삭제시켜주었습니다. 그리고 polywire로 두께감을주고 vdbpolygons로 den정보를 받아서 다시 polygon으로 convert해주었습니다. 그리고 한번 더 면적에따라 우리가 확실하게 사용할 녀석들만 골라주었습니다. 다음은 볼륨과의 충돌..
더보기
-
TWA_Houdini1_스터디2기_후기
늦었지만 후디니1의 후기를 써봅니다. 어떤 말로 시작해야될지 감이 잘 오지 않지만... 우선 작년 3월 영상쪽으로 전향하게 되면서 다양한 툴을 접하고 진짜 제가 하고싶었던것이 무엇인지 고민도 많았던거 같습니다. 시간이 조금 흐르고 모아둔 레퍼런스를 한눈에 보니 대부분의 작업물이 후디니로 작업을 했다는것을 보고 주저없이 공부를 시작해야겠다 생각하고 주변에 조언을 구하고 리서치를 해보았습니다. 후디니를 공부하는 친구의 추천으로 TWA님의 최초입문강의를 접하게 되고 계획을 세워서 JOY OF VEX 18일차를 들을쯤에..! 정말 타이밍 좋게도 스터디 2기를 모집하시더라구요. 정말 간절함을 담아서 지원했고 스터디에 참여하게 됐습니다. 지원당시에 DM으로 공부계획표와 정리노트를 같이 첨부했던게 기억나네요. 스터디..
더보기