전체 글

카테고리 없음

언리얼 멀티

동기화 모든 데이터 다 주고받아야할까? 그럴필욘 없다. 싱크를 맞춰야하는걸 다 주고받으면 너무많다. 즉, 중요한 데이터는 동기화를 해주고 중요하지 않은 데이터는 굳이 동기화가 필요가 없다. 주로 연출관련된 것들은 동기화가 필요없다. -> 카메라, 애니메이션 우리 게임에서는 무기가 떨어져있는것, 플레이어 위치나 들고 있는 총, 쏘고있는지, 탄환 P2P (옛날방식)중간 서버 없이 플레이어끼리 직접 연결되어 정보를 주고받는 방식. 유저끼리 직접 연결. p2p는 가장 간단하게 구현가능하지만, 단점이 있다. 유저가 늘어날수록 각 유저가 나머지의 모든 유저에게 동기화를 전달해야한다. 그렇기 때문에 동기화부담이 빠르게 커진다. 또 다른 치명적인 문제가 있는데, 모든 플레이어가 치팅이 가능하다. 유저1이 유저2..

카테고리 없음

언리얼 13

SpawnActor 와 SpawnActorDeferredQ3. SpawnActor 함수와 관련된 내용으로 옳지 않은 것은?항상 결과가 성공해서 유효한 메모리 값을 반환해준다.'스폰 콜리전 처리 메소드'(Collision Handling Override) 값에 따라 성공하여 유효한 메모리를 반환할 수도, nullptr일 수도 있다.함수가 반환되는 시점에는 스폰 성공 여부가 이미 결정되어 있으므로, 반환값이 nullptr인지 그 자리에서 바로 확인할 수 있다.실시간 런타임에 스폰하는 경우, BeginPlay() 함수가 호출 완료된 후에 유효한 메모리를 반환한다.Q4. 액터의 “스폰 콜리전 처리 메서드”를 Try To Adjust Location, Don't Spawn If Still Colliding 으로 ..

카테고리 없음

언리얼12

애니메이션 -> 에임 오프셋 생성 AO_Rifle로 이름 지정. 블렌드스페이스와 창의 거의 똑같다. 그리드 설정하고 애니메이션을 넣어보면, 일단 안들어가는 애니메이션들이 좀 있을거다. Addictive를 넣는게 기본인데(?) Addictive애니메이션이 아니기 때문이다. 아래는 공식문서를 참고해서 Addictive 메시 스페이스 애니메이션으로 변환하는 방법이다. 애디티브 세팅 -> 메시 스페이스 베이스 포즈 타입 _> Seleted animation frame레퍼런스 프레임 인덱스 -> 0 이렇게 메시스페이스로 하면 상체의움직임에 본체가 과하게 꺾이는것을 막아준다(?) 공식문서 참고 그렇게 공식문서대로 설정하면, 해당 애니메이션이 매시 스페이스 Addictive가 되는것이다. 똑같은 속..

카테고리 없음

언리얼11 - UI

UMG & Widget Reflector💡UMG는 화면에 그려지는 UI를 만드는 시스템입니다. 위젯 블루프린트를 만들면 디자이너 탭에서 텍스트·이미지·버튼·프로그레스 바 같은 부품을 배치하고, 그래프 탭에서 로직을 붙입니다.배치한 부품 중 그래프에서 이름으로 접근하고 싶은 것은 따로 “변수 여부” 표시를 해줘야 목록에 나타납니다.UMG 기본 이벤트 개념 [ 이 부분은 교수님이 노션에 올려줄거임. 피격이벤트시 콜라이더생성 후 캐릭터가 콜라이더에 맞을 경우에만 피격으로 변경] Recieve Notify 노드 ->Mesh comp에 우클릭해서 핀 분할을 누르면 더 많은 옵션을 볼 수 있다. -> 해당 타이밍에 딱 한번만 충돌체크하게 하려고 지금은 Start 와 End를 같은시간으로 두고, Radiu..

카테고리 없음

언리얼 10 - 델리게이트

델리게이트 (p.410)함수 포인터 활용. 코드의 유연성 & 종속성을 제거하는데 유용.3종류의 델리게이트DECLARE_DELEGATE하나의 함수만 등록p.416 함수포인터 연결하는 방식DECLARE_MULTICAST_DELEGATE한개가 아니라 여러개의 함수를 등록 DECLARE_DYNAMIC_DELEGATEDECLARE_DYNAMIC_MULTICAST_DELEGATE블루프린트 호환용 함수 포인터한개 or 여러개 등록바인딩 연결할 함수는 무조건 UFUNCTION() 필요사용하는 부분이 TwoParam인데 매개변수에 들어가는건 4개라 헷갈리는데, 이건 블루프린트를 생각하면 쉽다.타입과, 지정해줄(노드에서 핀 된) 값 각각 하나씩 넣어주면 된다=> Dynamic인 경우에는 매개변수의 변수 이름까지도 지정해 ..

카테고리 없음

언리얼 9

주의 사항p. 289. 애니메이션 블루프린트를 C++에서 할당할 때, 경로 복사 (Ctrl + Shift + C) 하고 붙여넣는다./Game/MyGame/Blueprints/Enemy/ABP_Enemy.**ABP_Enemy_C**이때, 제일 마지막에 _C 를 반드시 붙여야한다. 언리얼 규칙이다.p. 307. AttackEnd 노티파이를 애니메이션 완전 끝 쪽에 배치하지 말고, 약간 앞쪽에 배치하자.너무 끝에 배치하면, 호출이 안될 수도 있다. 적 애니메이션 공격과 공격 대기는 확확바뀌는상태이다. 끊긴것처럼. 오른쪽 블렌드세팅에서 경과시간을 조절하면된다. 기본은0.2s로 되어있는데 이 뜻은 0,2초동안 Attack과 AttackDelay의 모션이 섞인애니메이션을 재생한다는것이다. 현재 이런 현상이 있는..

카테고리 없음

언리얼 8 - 애니메이션

https://cerulean-cloudberry-2ab.notion.site/3a5d34f3778d80bca9b4c85b6be22e70애니메이션 클래스는 클래스 자체를 사용하기 때문에 특이하게 언리얼 명명규칙이 _C가 마지막에 붙는다. 애니메이터가 움직임을 확인하면서 작업하고 싶어서, 캐릭터가 실제로 움직이는 애니메이션이 있다. 이걸 끄고 싶다면 루트모션을 끄면 된다. 피직스 에셋. 우리가 피직스를 배운적은 없다. 스켈레탈 개념과 좀 다르다. 피격판정이라고 할 때 헤드샷이 잘 터지게 하고싶다면, 충돌체 모양을 키우면된다. 콘텐츠 드로어에 우클릭 -> 애니메이션 -> 블렌드 스페이스 (모션들을 적당히 섞어주는것) 이렇게 구성하고 ABP_Rifle에 추가해서 보자. 문제가 있다.특정시점에 발이 호..

카테고리 없음

언리얼 7 - 적

UENUM(BlueprintType)enum class EEnemyState : uint8{ Idle, Move, Attack, Damage, Die}; UEnum 매크로 이용하여언리얼엔진에서 EEnemyState 라는 새로운 열거형 타입이 만들어진 것을 알려주고, BluePrint인자를 할당하여 블루프린트에서도 사용할 수 있도록한다. 상태는5개이기에 uint8. 열거형은 접두어 E를 붙여주어야한다. #include "EnemyFSM.h"#include "../Player/TPSPlayer.h"#include 맵에 존재하는 특정 타입의 클래스 찾는법? => GetActorofClass() UGameplayStatics의 유틸리티 클래스의 GetActorofClas..

파워지훈
공보다작은골대