본문 바로가기

반응형

Unreal Engine 5

(16)
언리얼 엔진 RPC(2) - OnRep 이제 OnRep이 뭔지 알아봅시다. UPROPERTY(ReplicatedUsing = OnRep_Health) float Health;protected: UFUNCTION() void OnRep_Health();void AMyCharacter::OnRep_Health(){ UE_LOG(LogTemp, Log, TEXT("체력 변화 발생! 새로운 값: %f"), Health); UpdateHealthUI();} 위와 같이 UPROPERTY에서 OnRep_Health라고 함수랑 매칭해주면 된다. 그러면 나중에 Server측에서 Health의 값을 변경해주면 모든 Client에 있는 Health의 값도 변하면서 OnRep_Health() 함수가 불려져서 UpdateHealthUI()..
언리얼 엔진 RPC(1) - 기본 이해 일단 누가 언리얼 엔진의 Replicated나 RPC를 사용한다고 하면 저는 단호하게 Dedicated 서버로 가거나 그냥 싱글플레이를 만들라고 추천할 것입니다.싱글 플레이 -> 멀티 플레이의 공수가 단순히 2배가 되는게 아니라 체감상 한 5 ~ 6배는 됩니다. RPC는 크게 Server, Client, NetMulticast로 나뉩니다. Server는 말 그대로 주 서버를 담당하는 친구 (주로 호스트)Client는 서버가 아닌 플레이어들 (주로 일반 클라이언트)NetMulitcast는 서버 + 일반 플레이어라고 생각하면 됩니다. 사용법 예를 들면 PlayerWidget에서 Button을 눌러 PlayerCharacter->SetPlayerColorToRed()이라는 함수를 실행하는게 일반 싱글..
언리얼 엔진 개발자의 Chat GPT 사용법(1) 저는 주로 PlaySoundAtLocation 이런것처럼, 존재유무는 파악하고 있는 함수들이 어떤 클래스에 있는지 모를때 자주 씁니다. 이렇게 UGameplayStatics를 물론 Rider 같은걸로 shift + shift해서 찾거나 ctrl + shift + f로 찾아도 되는데, soundplayAtlocation 이런식으로 조금 틀리게 작성하면 찾기가 힘들어져서 가끔씩 찾는 함수는 chatgpt를 자주 애용합니다. 물론 자주 사용하다보면 외워져서 사용할 필요가 없지만, 언제나 오랜만에 사용하는 함수는 있는 법!
언리얼엔진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은..

반응형