목록언리얼 (116)
초보 코린이의 성장 일지
1. 만들어 놓은 백팩을 소켓에 장착시켜 줄 것이다. 2. spine_02에 소켓 생성을 해준다. 3. 프리뷰 애셋을 적용한 상태. 수치들은 자연스럽게 보이도록 설정해준다. 1. 컴포넌트 생성해주면서, Mesh에 붙여준다. 2. 혹시 모를 백팩과 총에 충돌때문에 Collision을 꺼준다. 3. 이제 장착이 완료된다. 1. 다음 무기인 AK47을 만들기 위해 파생 클래스를 생성해준다. 2. AK47은 만들었던 AR4와 다른점이 모양과 색상밖에 없다. 그래서 복사를 몇가지만 수정 후 해서 그대로 사용하게 될 것이다. 1. 조절해준건 위치값과 쏘는 속도 2. 몽타주와 AK47 무기의 레퍼런스 주소 제외하고는 동일하다. 3. Begin_Equip와 End_Equip는 나중에 다루게 될 것이다. 이유는 AK는 ..
장전 몽타주는 넣어줬기 때문에 잘 나오고 있지만, 장전시 탄창이 갈아지진 않는다. 탄창도 갈게되고, 자연스러운 동작이 나오도록 구현해 볼 것이다. 1. 사용할 장전 노티파이를 생성해준다. 1. 각 Enum대한 동작을 위한 함수 생성, 부모인 Weapon에서 선언 후 컴포넌트에서도 생성. 2. WeaponComponent에서 체크 후 함수 실행. 1. Enum에 각 상황에 대한 행동을 실행 시킨다. 1. 4가지 동작에 대한 Enum 노티파이를 4개 추가해준다. 2. 순서대로, 탄창을 잡고 빼는 동작 (Eject) -> 뒤로 손이가서 탄창을 쥐는 동작 (Spawn) -> 탄창을 끼워 넣는 동작 (Load) -> 장착이 끝나고 다시 총을 잡는 자세 (End)가 된다. 3. 그럼 이제 장전이 끝이나고 재장전시 ..
에임에 기본값에서 쏠때 벌어지는각을 최대값으로 생각하고 천천히 비율을 구해서 벌어지게끔 만들어 볼 것이다. 1. 에임을 만들때 상하좌우 4개를 따로 만들어서 에임처럼 만들었다. 2. 4방향을 동일하게 for문을 돌려주기 위해 enum으로 만들어준다. 3. 현재값, 최대값을 Lerp로 돌려서 비율로 천천히 에임이 벌어지도록 코드 작성. 1. 부모인 Weapon에서 선언해준다. 2. Weapon에서 기본인 초기상태를 세팅해준다. 3. 벌어지는 각을 중첩시켜서 값을 넣어준다. 4. 계속 쏘는 상태에 값 변동은 Tick에서 진행. 5. 사용할 곳 AR4로 가서 값을 설정해준다. 1. 쏘는 만큼 점차 에임이 벌어지는걸 확인 할 수 있다. 1. 총알을 만들어 줄 것이다. 2. 모양을 잡아주고, 머터리얼을 생성해 추..
1. 연사를 하게 만들어 주기 위해 부모인 Weapon에 함수를 정의해준다. 2. UI에 on, off를 확인하기 위해서는 속해있는 컴포넌트에서 진행해야한다. 3. 컴포넌트를 통해서 명령을 내려줄 것이므로, 조건 체크를 해준다. 1. Weapon에 선언했던 ToggleAutoFire를 컴포넌트에서 연결해준다. 1. 플레이어로 가서 키 연결해주기. 1. 키를 눌러서 AutoFire 켜주면 연사로 발사가 가능하고, 끄면 단발로 발사되는걸 볼 수 있다. 1. 반복해서 나가는 시간을 설정해주기 위해 TimerManager를 사용 2. 간격을 설정해준다. 3. Begin, End에서 조건 판단 후 실행 해제 반복 4. 이제 연사를 하다가 키를 눌러 연사모드를 해제해도 계속 나가는 버그가 해결된다. 1. 1인칭에서..
1. 탄착군을 보여줄때 원으로 나타내게 된다. 2. 그걸 눈으로 확인해보기 위해 쏘는 방향으로 각을 볼 수 있게된다. 1. 이제 Decal과 Sound를 사용해볼 것이다. 2. Decal은 원래있던 머터리얼에 겹처져서 보이는 것이다. 3. Decal을 사용하는 방식은 Spawn 방법과 DecalComponent 방법이있다. 컴포넌트를 사용하면, 계속 생성되는걸 관리해줘야 하므로, Spawn방법으로 사용해 보겠다. 1. 데칼과 파티클 및 사운드 레퍼런스 주소 복사로 받아준다. 1. 데칼을 나오게 해주고, hit된 지점으로부터 파티클이 나오게 만들어준다. 2. 위와 같이 보이게된다. 1. 총구에 화염이 발사되는 효과를 주기위해 소켓을 생성해 그 위치에 효과를 넣어줘야한다. 1. 소켓에 알맞은 값을 넣어준다...
1. 한번에 여러가지 동작을 동일하게 수정하거나 할때 사용하는 방법이다. Local Space = 수정 불가 Mesh Space = 언리얼 엔진에 연산에 의해서 Skeleton Reference Pose = 처음에 나온 포즈에서 섞을것인지. Selected animation scaled = 커졌다, 작아졌다 하는 효과줄때 Selected animation frame = 매 프레임마다 섞을 것인지. 1. 에임 오프셋 생성해준다. 1. 에임은 90도로만 사용, 애니메이션도 센터, 위, 아래 3동작을 사용할 것이므로, 2칸으로 나눈다. 2. 중앙은 Center 나머지는 알맞게 Up, Down 애니메이션을 넣어준다. 1. 보간에 필요한 Pitch, Direction 변수 생성 2. 회전과 Pitch, Direc..
우선 무기를 들고 해제하는 동작부터 진행을 할 것이다. 1. 부모 Weapon에서 몽타주, 소켓 정의 2. 실행할 무기로가서 값과 애니메이션 동작 넣어준다. 1. 위에 정의해준 몽타주와 Rate를 넣어주고, 조건 체크를 해준다. 2. if로 조건을 계속 줄줄이 쓰는 방법보다 효율 적으로 사용할 수 있는 방법이 위에 있다. 3. 실행을 해보면 총을 뽑는 몽타주가 실행될 것이다. 1. 이제 수행을 조건을 위한 노티파이를 생성해 준다. 1. 컴포넌트에 장착, 해제를 동작 전달을 위해 만들어준다. 1. CAnimNotifyState_Equip이 UAnimNotifyState를 받고 있으므로, 안에 있는 정의를 사용해야 하므로, 재정의해서 사용하기 위해 가져와서 재정의해준다. 2. 노티파이에서 Begin, End..
1. 새 C++ 클래스 생성으로 CWeapon을 만들어준다. 2. CWeapon 파생 C++인 CWeapon_AR4를 생성 3. Actor Component를 선택하여 CWeaponComponent를 생성해준다. 1. 컴포넌트 구조로 새로운 타입과 착용중인 타입을 교체 가능하도록 구조를 만든 과정이다. 1. CHelpers에 있는 템플릿에 ActorComponent를 위한 코드를 추가해준다. 1. 이제 사용할 Player로 가서 알맞게 받아준다. 2. 모드 전환과 연결시켜준다. 1. 사용할 템플릿 2개를 더 추가로 작성해준다. 1. 동작이 들어가면 애니메이션에 행동을 취할수 있도록 세팅 1. Weapon에 타입 변경을 true로 설정해 놨기 때문에 애니메이션을 연결해주면, 알맞은 행동이 나오게된다. 1...
1. 기둥 2개 사이에 Line를 그린 상태. 2. Line에 충돌을 한다면, Z축으로 Launch가 진행된다. 1. 이벤트 바인딩을 할때 BlueprintAssignable로 선언을 해준다면, BP에 동일한 바인딩 처리로 들어와서 사용을 할 수 있게된다. 2. Dynamic Delegate는 C++, BP 양쪽다 다룰 수 있다. 1. 충돌시 Launch 되면서 색이 변경되는걸 확인 할 수 있다. 1. LineTrace가 어디까지 판단 할 수 있는지 확인해 보기 위해 생성을 해준다. 1. Start, End 지정해놓고 Line를 쏘기 위한 세팅. 1. 확인을 위해 첫번째 벽만 Overlap로 설정. 2. 2번째 벽부터 Collision Enabled로 설정 후 관통 확인 1. 블루프린트 클래스 생성 후 ..
계속 이벤트에 대해 연습을 해볼 것이다. 기본적인 생성 틀은 거의 동일하다. 1. BlueprintCallable는 블루프린트 내에서 접근이 가능한 함수로 만들어진다. 2. 캐릭터 Mesh 색변경을 위해 작성. 3. 먼저 부모 BeginPlay를 호출하게되면, 블루프린트 BeginPlay를 콜하고, 블루프린트에는 없는 내용이기 때문에, 세팅 값이 안들어간다. 그래서 세팅후에 부모 Begin을 호출해야 색이 변경됨을 알 수 있다. 1. 플레이어 Mesh에 색을 변경하기 위해 재정의하여 색을 입혀준다. 1. 블루프린트 클래스로 생성해준다. 2. BP_CPlayer로 가서 검은색으로 설정해준다. 3. 들어가면 검은색으로 변하고, 나오면 다시 하얀색으로 변하게된다. 4. 우리는 빨간색, 하얀색을 콜했지만 검은색..