Destruction_Base fracture
2019. 5. 24. 18:29ㆍStudy/Houdini
일정 length와 angle이 되면 pin_broken 과 glue_broken soft_broken을 사용함으로써 cts가 끊어지게 만들었다.
int pointnumber = nametopoint(1, s@name);
4@transmatrix = primintrinsic(1, "packedfulltransform", pointnumber);
v@P *= 4@transmatrix;
int pt0 = primpoint(0, @primnum, 0);
int pt1 = primpoint(0, @primnum, 1);
vector position0 = point(0, "P", pt0);
vector position1 = point(0, "P", pt1);
f@length = length(position0 - position1);
if (@angle > 0.1){
vector center = (position0 + position1)/2;
setpointattrib(0, "P", pt0, center);
setpointattrib(0, "P", pt1, center);
}
length의 값을 계산해서 borkne의 사용
v@P *= invert(4@transmatrix);
matrix3 rotmatrix = (matrix3) 4@transmatrix;
@orient = quaternion(invert(rotmatrix));
if(@angle > 0.07){
s@constraint_name = "pin_broken";
}
if(f@length > 2){
s@constraint_name = "pin_broken";
}
if(@Frame>17){
if(s@constraint_name == "soft_glue"){
i@count++;
if(i@count>3){
s@constraint_name = "soft_broken";
}
}
if(@constraint_name == "glue"){
if(@impact > 25000){
s@constraint_name = "soft_glue";
i@count = 0;
}
}
}
@impact 을 이용해서 일정 @count가 @impact에 의해서 3을 초과하면 sofr_broken attrib를 생성한다.
'Study > Houdini' 카테고리의 다른 글
Portal Volume&&Lighting (0) | 2019.04.11 |
---|---|
TEXT_LURP (0) | 2019.04.03 |
Groud_Fire (0) | 2019.04.03 |
Cloud (0) | 2019.04.03 |
Explosion (0) | 2019.04.03 |