PDA

View Full Version : 커스텀 폰 충돌에 문제가 있는데 어느부분이 잘못되서 해당 문제가 발생하&



sonicl
05-23-2012, 06:03 AM
http://a2.sphotos.ak.fbcdn.net/hphotos-ak-ash4/s320x320/484205_303648759719565_100002233293650_692333_3895 84529_n.jpg

http://a1.sphotos.ak.fbcdn.net/hphotos-ak-ash3/s320x320/581304_303649343052840_100002233293650_692337_1723 958486_n.jpg


-----소스------

class PR_Dog extends Pawn;


defaultproperties
{
//////////////////////////////
//스테이터스
WalkingPct=+0.4

BaseEyeHeight=10.0
EyeHeight=10.0
GroundSpeed=3000.0
AirSpeed=440.0
WaterSpeed=0.0
AccelRate=300.0
JumpZ=322.0
UnderWaterTime = 999999.0;
WalkableFloorZ=0.78





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

// Create a skeletal mesh component for the pawn
Begin Object Class=SkeletalMeshComponent Name=CollideMesh


///////메시 목록////////
//스컬 메시
SkeletalMesh=SkeletalMesh'dirt_t_dirt.dog_r'
//에님 트리
AnimTreeTemplate=AnimTree'dirt_t_dirt.dog_animtree '
//피직스 셋
PhysicsAsset=PhysicsAsset'dirt_t_dirt.dog_r_Physic s'
//에님셋
AnimSets(0)=AnimSet'dirt_t_dirt.Run'

Scale=1f //크기

bHasPhysicsAssetInstance=true
BlockNonZeroExtent=true
BlockZeroExtent=true
BlockActors=true
CollideActors=true
BlockRigidBody=true



End Object

Components.Remove(CollisionCylinder)
CollisionComponent=CollideMesh
Mesh=CollideMesh
Components.Add(CollideMesh)
//Physics=PHYS_RigidBody


}


----------------------------

show collision으로 콜리전 범위를 확인할때 분명 피직스에셋으로 만든 충돌박스가 표시되는데 맵에 설치된 메시에 케릭터의 일부분이 파묻힙니다.(뚫고 가지는 않습니다. 허리부분에 매우 작게 충돌이 되는지 저 사진 이상 파고들진 않습니다)바운드 체크를 하면 좌우 공간이 너무 심하게 비어서 적당하지 않아 사용할수 없고...역시 실린더컴포넌트로 충돌값 지정할려고 해도 위의 케릭처럼 앞뒤로 길쭉한 케릭터는 좌우공간이 비기 때문에 적절하지 않습니다. 그래서 피직스 에셋으로 사각 박스하나로 대체후 아래소스대로 실린더 컴포넌트 삭제, 스컬매시 오브젝트를 콜리전 컴포넌트에 대입했습니다.
UDK내의 문서론 제가 못 찾은건지 근 한달을 구글검색을 포함해서 찾아봤는데 뭔가 도움이 될만한게 없었습니다. 구글검색에 UDN문서를 제외한 다른것에도 이것 이상의 힌트는 얻을수 없었습니다.

혹시나 싶어서 피직스에셋을 등록하는 스크립트 부분을 주석 처리하니 show collision으로 충돌값 표시했을때 박스표시가 안되긴 하지만 충돌 범위는 똑같았습니다. 제생각엔 콜리젼컴포넌트에 재대로 대입이 되지 않는것 같은데 어느부분이 잘못되거나 결여됬는지 모르겠습니다.

혹은 실린더 컴포넌트가 아닌 다른 모양으로 충돌 컴포넌트를 만는 방법이 궁금합니다.

donggas90
06-18-2012, 04:21 AM
시도해 보지는 않았지만

스태틱 매시 컴포넌트를 하나 넣고

박스 형태 메시를 등록해 줍니다.

콜리전을 해당 컴포넌트로 하고

박스 메시의 메터리얼 오퍼시티를 0으로 줍니다.

그러면 충돌태스트는 하겠지만 보이지는 않을 것입니다.


* 실제로 태스트 해보지는 않았습니다.