전체 글 (842) 썸네일형 리스트형 Unreal Engine 4 C++ The Ultimate Shooter Course Section 6-1 Camera Interp Location지금은 무기를 교체할 때 무기가 바로 스왑된다.무기를 바꾸기 전에 교체될 무기가 잠시 위쪽에 표시됐다가 이후에 바뀌도록 수정해보자.해당 과정은 보간을 통해 조절될 것이다. 먼저저 표시될 위치가 필요하다.목표 작업은 다음과 같다. 우선 위치를 얻기 위한 함수를 작성해주자.해당 함수는 다른 곳에서 사용되는 함수이기에 ShooterCharacter 클래스에서 public 섹션에 작성해주어야 한다. 앞에 대한 거리와, 위에 대한 거리 변수를 선언해주자. 이어서 생성자에서 초기화 해주자. 기존 FollowCamera를 통해 카메라 위치를 얻고, GetFowardVector를 통해 해당 카메라의 전방 벡터를 얻어주자.전방 벡터에 앞에 대한 거리 값을 곱해 실제 거리를 얻고,이.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-21 Swap Weapon이제 무기를 바꿔보자.이를 위해 트레이스한 아이템에 대해서 알아야 한다.이에 대한 변수를 선언해주자. 함수 또한 생성해주자.인풋 매개 변수는 Awepon* 타입이다. 무기를 바꾸기 위해서는 기존 무기를 떨어뜨려야한다.따라서 DropWeapon() 함수를 호출하고, 이어서 EquipWeapon() 함수를 호출하여 새로운 무기를 장착하자.그러면서 TraceHitItme과 TraceHiItemLastFrame 값을 nullptr로 바꿔주자.기존에 추적하던 무기를 이제 장착한 상태이기에 다시 새로운 무기를 장착하기 위해 초기화해주는 것이 좋다. 그리고 SelectButtonReleased 함수를 이용하여 SwapWeapon() 함수를 호출해주자.E를 누르면서 무기를 버리고, 트레이스 한 아이.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-20 Throw Weapon지금은 E키를 누르면 무기가 그대로 떨어지지만, 좀 더 날아가서 떨어지도록 바꿔보자.Weapon 클래스에서 해당 기능을 구현할 것이기에 헤더에서 생성자랑 관련 함수, 변수들도 선언해주자. 생성자에서 변수들을 초기화해주고, Tick을 활성화하는 문구도 적어주었다. 다음으로 무기가 멀리 나가는 함수를 작성해주자.현재 회전 값을 얻고, 이를 토대로 WorldRotation을 세팅해준다.이떄 ETeleportType::TeleportPhysics 값을 사용하여 물리적 시뮬레이트를 즉시 업데이트하여 순식간에 이동하도록 해준다. 이후 전방 벡터와 right 벡터를 얻고 이를 토대로 충격 방향을 설정한다.그리고 Z축으로 30도의 충돌값을 추가로 설정하고, 충돌 방향에 크기를 곱해준다.이를 토대로.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-19 Item Falling State이제 떨어지는 상태에 대해서 구현해주자.우선 기존 Belica_guns를 토대로 물리적 에셋을 만들어줄 것이다. Primitive Type은 Box를 선택해주자. 이제 해당 파일을 열어보면 다음과 같은 화면을 볼 수 있다.여기서 우리는 총기를 제외한 나머지 부분을 전부 삭제시켜줄 것이다. 아래 부분들을 모두 삭제해주자. 이제 물리적 몸체를 뜻하는 사각형 박스를 총기에 맞춰서 조절해주자. 이렇게 만든 것을 기존 Belica_Guns의 Physics와 Lighing 에셋에 할당해주자. 이제 ETS_Falling에 대해 값을 설정해주자.캐릭터에서 떨어졌으므로 다시 Physics를 활성화해주고, 콜리즌을 켜주자.또한 Gravity 값도 활성화 해주었다. (기존 코드 다른 stat.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-18 Detach Weapon무기를 장비하기 위해서는 현재 착용하고 있는 무기를 캐릭터에서 분리시켜야 한다.이를 위한 함수를 구현해주자. 무기를 분리하기 위해선 ItemMesh에 대해서 접근해야한다.ShooterCharacter 클래스에서 분리에 대한 작업을 하게 되므로, Item 클래스에서 getter 함수를 만들어주자. 그리고 이에 관한 액션 매핑도 지금 만들어주었다.E키를 누르면 현재 장착하고 있는 무기가 캐릭터에서 분리될 것이다. 분리를 위해서는 관련된 규칙에 대해아아야 한다.우리가 사용할 것은 KeepWorld로, 분리시 해당 위치에 그대로 유지시키도록 해주는 것이다.또한 회전 상태도 유지하기 위해 값을 true로 넘겨줄 것이다. 그리고 액션 매핑에 대해 바인딩할 함수를 작성해주자. 이제 버튼을 눌렀.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-17 Set Item Properties이제 Switch 문을 통해 상태에 대해 상세한 내용을 구현해주자.우선 이를 위한 함수를 선언해주자. 그리고 Switch 문을 통해 지금 다룰 수 있는 상태인 Pickup과 Equipped에 대해 작성해주자.Pickup의 경우 다음과 같은 내용이 필요하다.물리 시뮬레이션 비활성화 Visibility 활성화충돌 채널 반응 무시충돌 비활성화AreaSphere에 대해 오버랩 이벤트 감지AreaSphere에 대해 오버랩 이벤트 활성화CollsionBox에 대해 충돌 이벤트 무시 CollisionBox에 대해 시각적 충돌 활성화CollisionBox에 대해 오버랩 이벤트 충돌 검사 및 물리적 충돌 활성화 Equipped의 경우 CollsionBox에 대한 충돌 이벤트와 AreS.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-16 Item State이번에는 전에 EItemRarity를 통해 레어도를 설정했던 것과 유사하게,EItemState를 활용하여 무기의 상태에 대해 다루게 된다.무기의 상태는 아래와 같이 5가지가 존재한다.EIS_Pickup : 무기가 집힐 수 있는 상태EIS_EquipInterping : 무기가 집히면서 보간되는 중인 상태EIS_Pickedup : 무기가 집어진 상태EIS_Equipped : 무기가 장착된 상태EIS_Falling : 무기가 떨어지고 있는 상태 이를 토대로 레어도를 선언했을 때와 같이 enum class를 생성해주자. 이제 이에 대한 변수도 선언해주자. 초기화로 기본값은 Pickup 상태로 해주었다. 다음으로 ItemState 얻기 및 세팅을 위한 getter 함수를 생성해주었다. 세팅을 통.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-15 Equip Function이제 총기를 장비하기 위한 기능을 구현해보자.이에 대한 함수를 구현해줄 것이며, 인풋으로 Aweapon* 타입 변수를 받게 된다. 그리고 총기를 얻었을 때 해당 총기는 구체와 콜리즌 박스에 대해 충돌 설정이 없어야 한다.만약 충돌 설정이 존재하면 박스와 총구에서 나오는 총알이 부딪혀서 총알이 나가지 않는 현상이 발생한다.따라서 이를 위해 getter 함수를 생성하여 접근이 가능하도록 해주자. 이제 함수 구현이다.기존의 기본 무기 생성 함수 부분에서 많은 내용을 그대로 사용한다.충돌 설정을 해제하는 2가지 부분만 추가하게 된다. 이에 따라 기존 SpawnDefaultWeapon 함수를 고칠 것이다.우선 함수 타입을 Aweapon* return 하도록 바꿔주자.기본 무기를 retu.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 106 다음