본문 바로가기

전체 글612

24.03.25 플레이리스트작업 보호되어 있는 글 입니다. 2024. 3. 25.
[언리얼5] 범위공격2(feat. 샷건) 이전 단발 형식, 원형범위, 투사체 를 통하여 범위공격을 하였던 로켓런처와 다른 방식의 범위공격을 정리. 샷건처럼 한번의 발사로 다수의 투사체가 필요한 경우 플레이어가 많아지고 해당 무기를 사용한 공격이 증가할수록 런타임중 투사체를 생성해야하는 경우의 수가 급격하게 늘어나므로 기존의 범위 공격 방식이 적절하지 않음. 때문에 라인트레이스를 사용한 히트스캔 무기를 별도로 만들고 해당 로직을 구현. 우선 플레이어가 샷건을 장착하고 발사를 실행하였을 경우 샷건의 탄퍼짐의 경우의 수만큼 반복하여 일정범위내에서 랜덤한 벡터방향으로 트레이스 해야한다. 일정 거리지점에 원형(범위)을 지정하고 해당 원형 내부에서 랜덤한 지점을 선택하여 산탄의 피격 위치로 설정한다. 랜덤한 값을 사용하기 때문에 규칙적이지 않은 탄퍼짐을 .. 2024. 3. 24.
24.03.24 플레이리스트작업 보호되어 있는 글 입니다. 2024. 3. 24.
24.03.23 플레이리스트작업 보호되어 있는 글 입니다. 2024. 3. 23.
[언리얼5] 범위공격(feat. 로켓런처) 멀티플레이 슈팅 게임 프로젝트를 만들며 단순한 사격뿐만아닌 수류탄, 로켓런처등 넓은 범위를 공격하기위한 무기를 만들며 방사선상 공격에 대하여 정리. 일반적인 공격에 대해서는 OnTakeAnyDamage 에 피격시 이벤트를 바인딩하여 사용. 이때 데미지를 주는 액터에서 충돌시 원형범위(Radial)에 있는 다른 액터들에게 범위에따라 다른 데미지를 전달할 수 있는 함수를 사용 할 수 있다. UGameplayStatics::ApplyRadialDamageWithFalloff 를 사용. 이때 매개변수는 적당히 설정 해주는데 만일 범위공격이 특정 액터에게 피해를 주지 않는다면 TArray() 매개변수를 해당 액터 클래스로 지정해 주도록 한다. 비어있는 배열을 넣을 경우 공격한 본인도 데미지를 입을 수 있다. 2024. 3. 20.
24.03.20 플레이리스트작업 보호되어 있는 글 입니다. 2024. 3. 20.