본문 바로가기

반응형

Unreal Engine 5

(13)
언리얼엔진5 1-8. 로켓런처 공격 퍼지게 하기 1. sphere overlap actors를 통해 해당 sphere 안에 있는 object types를 찾아서 for each loop을 돌려 선택하게 한 다음, take damage 함수를 불러와서 데미지를 각각 입힌다. current weapon actors를 ignore해야만 무기와 부딪혀서 터지는 일이 없다.
언리얼엔진5 1-9. 무기구매팝업 무시하기 1. 무기 아무거나 골라서 무기구매 액터를 공격하게 되면 OverlapSphere에 총알이 박히는 경우가 생겼다. 2. 이걸 고쳐봤다. 근래에 면접들이랑 이력서 넣느라 시간이 조금 없었어서 오랜만에 맛보기로 다시 해봤다. 다시 이 프로젝트를 제대로 해볼거다!
언리얼엔진5 1-8. 자동소총 + 산탄총 만들기 1. AssaultRifle에서 부족했던 마우스 쭉 누르면 총알 계속 나가는거랑 반동주는거를 넣어봤다. 비슷하게 만들려고 하는 Orcs must Die! 3에서는 모든 무기에 반동이 없어서 이 부분은 괜히 했나 싶기는 하다. 2. 똑같은 걸 산탄총에도 해 봤다. 산탄총은 그 대신 한번 쏠때 BulletCount라는 int형 변수에 저장한 '8'만큼 쏘기로 했다. for loop을 돌려서 한 번 쏠때 8개의 총알이 나가도록 했는데, 이러면 총알이 순차적으로 나가면서 AI를 쐈을 때 피만 뿜어지는게 아니라 Concrete와 같은 곳에 부딪힐 때 튀는 효과가 나길래 일단은 총알을 소환하지 않는 걸로 해놨다. 또 드디어 장전 시간 맞추는 방법을 깨달았다.
언리얼엔진 5 1-7. 무기 교체 및 Impact 이제부터는 움짤로 대신 해보겠다. 1. 1번 무기인 상태에서 1번 눌러도 계속 무기를 교체하는 상황에 부딪혔다. 그래서 이 부분에 적절한 bool 을 사용해서 해결해 보았다. 2. 지금까지 Pistol에 했던 모든 것들을 AssaultRifle에 대해서도 해서 Assault Rifle인 상태에서도 총알이 나가고 각종 효과가 보이도록 만들어보았다. 3. 사람이나 AI가 총에 맞으면 피가 튀기고, 벽에 맞으면 총알이 박히게 하기 위하여 예전에 강의에서 배웠던 Impact_Flesh Particle을 가져와서 적용시켜보았다.
언리얼엔진 5 1-6. 총알 탄피 Particle랑 3인칭 조준선 이번에는 총알 탄피를 만들어보자!!! 1. Particles라는 폴더를 만들고 FX_PistolShell라는 Cascade Particle System을 만들자. 2. TypeData의 MeshData를 추가하고, ConstAcceleration이랑 Init Mesh Rotation을 추가하자. 3. Mesh Data에서는 Mesh로 PistolA_Ammo를 가져오고 Spawn에서는 Rate Constant를 0으로 바꾸고 Lifetime은 Float Constant로 바꾼 다음에 대략 1.5 정도로 한다. Initial Size도 Constant로 바꾸고 1,1,1을 주고 Velocity는 Uniform을 유지하고 대략 0~20, 10~60, 40~200 정도를 준다. ConstAcceleration은..
언리얼 엔진 5 1-5. 총알 장전 총 장전은 애니메이션이 이미 있어서 되게 쉽게 할 수 있었다. 배운 방법으로는 다른 방법들이 있지만, 1. playercharacter_AnimeBP의 animegraph에 blend poses weapontype으로 무기에 맞는 장전 을 골라주면 된다. 2. WeaponBase_Pistol 등으로 가서 무기 장전시간을 조절해준다. 분명 애니메이션 지속 시간은 1.66667이었는데 장전 시간을 0.6초로 하니깐 딱 맞는다. 예전에 배웠을 때는 프레임 때문이었던 것 같은데 좀 공부해야겠다. 3. fps를 출력해보니 60이 되는데, 애니메이션 fps는 30에 맞춰져 있다. fps도 계속 60 +- 5정도로 왔다갔다 하기 때문에 애니메이션의 지속시간이 계속 달라지는 거 같은데, 변수로 애니메이션 지속시간을 정..
언리얼 엔진 5 1-4. 총에 총알과 반동 넣기 1. 이제 BP_WeaponBase에 가서 모든 무기에 공통적으로 들어가는 총알에 대해서 자세히 다루어보자. 가장 먼저 총알에 필요한 변수들을 만들어보고 Mag = Magazine : 탄창 이제부터 아래에 만드는 함수들은 이름만 봐도 대충 이해가 갈만한 수준이기 때문에 특별히 어려운 경우가 아니라면 설명을 하지 않도록 하겠다. 2. 총을 쏘는데 필요한 WeaponFire이라는 Function을 만들어보자 3. 총을 장전하는데 필요한 WeaponReload를 만들어보자. 4. 탄창 안에 총알이 있는지 찾는 HaveAmmoInMag 함수를 만들어봤는데, output으로 boolean만 return하므로 pure function으로 만들자. (우측 Details 창에 있는 Pure를 체크하면 된다.) 5. 추..
언리얼 엔진 5 1-3. 무기 종류에 따라 캐릭터 자세 입히기 이제는 Animation Blueprint를 만들어서 무기 종류에 따라 자세를 다르게 해보도록 하자!!!! 1. Animation Blueprint를 만들어야 하는데, 1-1에서 만든 PlayerCharacter_AnimBP가 있으므로 이걸 사용하자 2. 사용자가 어떤 무기를 들었는지 알아야 하므로 현재 BP_PlayerCharacter의 Ref를 만든다. 1) Event Blueprint Initialize Animation을 cast to bp_playercharacter하고 get owning actor을 통해 현재 타겟이 된 actor를 가져온다. 2) 결과물을 promote to variable해서 이름을 Character Ref로 정정해준다. 3. BP_PlayerWeapon으로 돌아가서 Cu..

반응형