[unrealengine4] 47

2023-06-13 언리얼 (멀티 타격, Contains, Set 유형, DestoryActor(소멸))

한 번의 공격에 여러 번 충돌되는 문제 해결하기(및 멀티 타격) OverLappedActors라는 세트유형인 변수를 추가한 뒤 충돌이 일어났을 경우 충돌된 actor의 값이 세트유형인 변수에 들어있는지 Contains에서 확인을 할 것이며 담겨있지 않으면 not으로 넘어갈 것이고, 플레이어의 무기인지 아닌지 같이 and로 if에서 확인을 할 것이다. 즉 플레이어의 무기이며 세트 형식의 변수의 값이 참이 아닌 경우도 같이 포함되어야 if올 참으로 넘어갈 수 있게 하는 것이다. https://forums.unrealengine.com/t/how-to-stop-damaging-enemy-multiple-times-per-swing/33445 How to stop damaging enemy multiple ti..

[unrealengine4] 2023.06.14

2023-06-09 언리얼(충돌 판정 수정, animNotifystate)

대미지 이벤트가 들어가는 것을 확인하기 위해 캐릭터가 대미지를 주었을 경우 현제 라이프로 인해 print로 출력이 되는 기능을 구현해 본다. 이후 BP_Sword로 들어가 대미지 수치 조절 이제 캐릭터에게 최대 피통을 지정해 주자 최대 피통은 Life Max라는 함수를 추가했다. 이후 실행시키자마자 캐릭터에게 피통이 달려있도록 하기 위해 실행시키자마자 바로 적용되는 Construction Script로 들어가 현제 피통을 구현해 놓는다. 참고로 Life Max 값은 100으로 넣었다. 무기 충돌 오류 수정하기 1. 캐릭터 본인 자체에도 자신이 사용하는 무기에 대미지를 입히지 않도록 ActorEndOverLap 이벤트로 받아온 충돌체 대상과 현재 control 중인 대상이 다를 때만 Apply Damage..

[unrealengine4] 2023.06.11

2023-06-08 언리얼(Collision Enabled, Apply Damage, AnyDamage)

HIT 이벤트 사용 전 알면 좋은 것들 Player의 Capsule 컴포넌트뿐만 아니라 Mesh 컴포넌트 또한 콜리전이 있기에, 먼저 오브젝트와 충돌이 일어나는 쪽이 충돌 검사가 일어나게 된다. 만약 Root 컴포넌트가 충돌을 감지할 수 없는 컴포넌트라면, 이하의 자식 컴포넌트들도 모두 충돌 검사를 할 수 없다. Tick 이벤트는 가능하면 많이 안쓰는 것이 좋다. 여러 곳에서 쓰면 쓸수록 프레임이 도는 시간이 오래 걸리기 때문이다. - Tick Interval : Tick 이벤트의 반복 간격 - Allow Tick Before Begin Play : BeginPlay 이벤트 호출되기 이전에 Tick 이벤트 발생 여부 Collision Enabled - No Collision : 객체가 다른 객체와 상호작..

[unrealengine4] 2023.06.11

2023-06-07 언리얼(Hit 이벤트, 델타타임, Append, 피직스)

Hit 이벤트 hit 이벤트 함수를 대해서 알아보자 BP_Box의 자손 프린트 BP_Hit를 추가해, 오버라이드 함수 중에 있는 hit 이벤트 함수를 추가한다. Hit 이벤트 : 해당 엑터가 블로킹 오브젝트에 부딪히거나 부딪힌 다른 액터를 블록 할 때 이벤트를 발생시킨다. 캐릭터 무브먼트, Sweep을 켜고 Set Location을 사용할 때, physics Simulation 등으로 인해 발생한다. - my Comp : ㄴ 충돌 이벤트를 트리거한 자신의 컴포넌트에 대한 참조 값 - Other : ㄴ 충돌 이벤트의 대상이 되는 다른 액터에 대한 참조 값 - Other Comp : ㄴ 충돌 이벤트의 대상이 되는 다른 컴포넌트에 대한 참조 값 - Self Moved : ㄴ 충돌 이벤트가 스위핑(영역 검사)에..

[unrealengine4] 2023.06.11

2023-06-02 언리얼 (충돌, On Component Begin Overlap)

무기를 무장 및 비무장 상태일 때 카메라 고정 옵션 바꿔주기 비무장 상태일때 IsArmed에 들어오게 되면 Result가 False 상태로 되며 이동방향으로 회전이 되는 기능이 꺼지게 된다. 반대로 무장 상태이면 Result는 True로 바꿔지게 되면서 이동방향으로 회전되는 기능이 켜지게 된다. 그리고 실행전 둘 다 켜주도록 하자. 적 추가해보기 BP_Player의 자손 블루프린트 클래스 생성 후 이름 변경 Materials 폴더에 boy랑 ChestLogo 머터리얼을 인스턴스 생성후 인스턴스로 들어가 색을 변경 BP_Enemy로 들어가 mesh 지정 충돌에 대한 기본 지식 충돌을 만들기 전 기본적으로 알아야 하는 것들이 있다. 충돌을 배우기 위해 일단 액터인 BP_Box를 추가한다 컴포넌트에 Box추가..

[unrealengine4] 2023.06.06

2023-06-01 언리얼 (블랜드 스페이스 2D ,Calculate Direction, 캐릭터와 camera 시점 고정)

기본전투자세 변경해 보기 > 내용 정리 일단 캐릭터가 어떤 무기를 장착했냐에 따라 기전 전투자세 동작이 바꿔져야 하며 그걸 분간(열거형) 할 수 있는 무기들을 나눠줘야 한다. 무기 타입(WeaponType)을 만들기 무기 타입을 분간할 수 있게 열거형을 추가한다. 0은 none, 1은 수업으로 만들어 놓은 Sword, 2는 앞으로 본인이 만들고 싶은 무기이름을 적어준다. ABP_Character에서 변수 추가한다. 유형은 E Weapon Type이다. BP_Weapon에서 변수 추가, 유형은 E Weapon Type으로 지정한다. 블루프린트로 인터페이스 추가 후 함수를 추가한다. 추가한 함수 디테일에 입력을 추가한다. 유형은 E Weapon Type으로 지정한다. 이후 BP_Sword와 개인이 만들었던 ..

[unrealengine4] 2023.06.06

2023-05-31 언리얼 수업 내용(블루프린트 클래스)

블루프린트 클래스 블루프린트 클래스를 사용해 이전에 만든 dodge 이벤트를 정리해보자 - 블루프린트 클래스 : 블루프린트 매크로 라이브러리처럼 전역에서 사용할 수 있는 함수를 생성하는 블루프린트 자주 쓰는 함수이거나 특정 오브젝트 유형에 묶고 싶지 않을 때 사용한다. > 데이터 에셋을 추가해 클래스는 BP_MontageDataAsset으로 지정, 이름은 CharacterDodgingData으로 지정, 2개 추가해 Roll과 Backstep을 추가. > BP_Character에서 변수 MontageDataMap 추가 > 블루프린트 클래스를 추가한다. > 블루프린트로 들어가 아래처럼 추가 후 퓨어 체크해 준다. > BP_weapon의 get state montage data의 데이터 일 부르 가져와 블루프..

[unrealengine4] 2023.06.01

2023-05-30 언리얼 수업 내용(콤보공격, AnimNotifyState, Does Implement Interface)

콤보 모션 특정 키를 입력할 때마다 공격하는 모션을 콤보로 이어가는 모션으로 구현해 보자. > attack_1 ~ attack_4의 애님 몽타주를 추가한다 - 데이터 에셋을 추가해 SwordActingData으로 지은 후 4개의 배열을 추가해 attack_1 ~ attack_4를 넣어준다. PlayRate는 전부 1.25로 해준다. > attack_1~4 몽타주들 들어가 몽타주 슬롯 이름을 FullBody로 전부 지정해 준다. > BP_sword로 들어가 Default에서 데이터 에셋인 SwordActingData을 acting으로 추가해 준다 > 입력에서 마우스 우클릭, 좌클릭에 관한 액션키 2개를 추가 > 인터페이스에서 함수 4개를 추가 > BP_playerController에서 입력액션인 Actio..

[unrealengine4] 2023.05.31

2023-05-26 언리얼 엔진 수업내용(Slot, Ceched,root motion)

이동 시 자연스러운 무기 교체 애니메이션 출력해 보기 > ABP_Character(애니메이션 블루프린트)로 들어가 다음과 애니미그래프에서 다음과 같이 노드를 만들어준다. Blend Weights 0 : 블랜드의 비중(가중치)을 얼마나 줄 것이냐. 낮을수록 동작을 하다가 끊기는 상황이 생긴다. Bone Name : 기준이 될 Bone을 정해준다. Blend Depth : 해당 Bone부터의 혼합 비율(예시 : 4일 경우 아래의 bone은 1/4로 25%식 영향을 받는다. ) 애니메이션 슬롯 스테이트 머신 (Locomotion)에서는 FSM으로 상태를 구분하여 서로 다른 애니메이션을 재생한다. 하지만 우리는 동시에 FSM과는 상관없이 몽타주를 재생해야 한다. 이것은 애니메이션 슬롯 덕분에 가능하다. Loco..

[unrealengine4] 2023.05.30

2023-05-25 언리얼 수업 내용(장비교체, Select)

앞으로 여러 가지 무기를 장착 해제를 하기 위해 이벤트를 수정할 것이다. 장비 교체를 생각해 보자 1. 둘 모두 장비하지 않은 경우 : 선택 무기를 장비 2. 하나를 장비한 경우 2-1. 다른 무기를 장비할 경우 : 현재 무기를 수납, 선택 무기를 장비 2-2. 현재 무기를 수납할 경우 : 현재 무기를 수납 로직이 짜보기 전에 순서를 정리해 본다. 1) 비무장상태 ─ A든 B든 장착한다 = 장착 애니메이션 시퀀스가 재생되며 Equip Weapon함수 실행, 입력받은 Weapon값을 Weapon Now에 저장한다. 2-1) 무장상태 ─ A or B 무기 장착 상태 ─ 현재 무기를 수납하도록 명령 ─ 무기를 해제 = 해제 애니메이션 시퀀스 재생되며 Unequip Weapon함수 실행, Weapon Now값을..

[unrealengine4] 2023.05.30