분류 전체보기 (64) 썸네일형 리스트형 UE5 - Navigation Invoker 언리얼에서 AI캐릭터는 Navigation Mesh로 감지된 영역으로만 다닐 수 있다.Navigation Mesh는 본인의 영역안의 지형을 파악해서 AI가 다닐수있는 영역을 연산해서 전달한다.만약 지형이 변하지 않는다면 스태틱으로 사전에 영역 정보를 저장해서 AI에게 팜플릿 주듯 제공하면 되겠지만,지형이 변할 가능성이 있다면, Navigation Mesh는 실시간으로 계속 맵 정보를 연산해서 전달해줘야한다.맵이 좁다면야 그정도는 상관없겠지만, 맵이 넓거나 오픈월드라면 시스템에게도 꽤나 고된 작업일 수 있다.그럴 때 쓸 수 있는 게 Navigation Invoker다. Navigation Invoker란 AI캐릭터의 주변 일정 영역 안에서만 Navigation Mesh 계산을 하도록해서 부하를 줄여줄 수 .. UE5 - 나이아가라 불꽃놀이 정교한 CG보다 실제로 터트리는게 더 싸다는 불꽃놀이.나이아가라로 가능하다. 1. Fountain분수 파티클을 우선 생성한 뒤, 불꽃놀이의 핵심 폭죽을 만들어준다.파티클 업데이트 파트에 추가해준다.벨로시티에 정렬해준다. 2. Lopcation Base Ribbon폭죽을 따라가는 잔상을 만들어준다. 3.Directional Burst터지는 폭죽을 만들어준다.색을 영역 랜덤으로 해서 다양한 컬러가 표현되도록 했다.가벼워보이도록 중력을 낮춰준다. 4. Fountain불꽃에서 발생하는 연기를 만들어준다.왼쪽은 상승 연기(1번), 오른쪽은 폭발 연기(2번) 완성이다.실제 불꽃놀이보다 비싸다는 정교한 CG수준은 아니지만,기초적인 불꽃놀이는 표현된것같다. UE5 | C++ - 랜덤 스폰 : 지형 메시 사용과 가장자리 제외 아이템을 랜덤스폰할 때, 단순히 콜리전의 영역을 이용해 랜덤 로케이션을 지정할수도 있지만, 지형의 형태에 따라 콜리전만 사용하기엔 애매한 경우가 발생할 수 있다. 그럴 땐 지형에 맞게 스폰해주는 방법을 따로 사용해야한다. 그 방법에는 여러 방법이 있겠지만, 이번엔 라인트레이스를 이용했다. 라인트레이스란시작위치와 끝 위치를 지정해준 뒤 그 사이에 액터가 존재하는지 검색하는 기능이다.총기, AI, 탐지 등 다양한 방법으로 응용이 가능하다. 코드 흐름1. 랜덤위치 지정2. 아래로 라인트레이스 진행3. 해당하는 태그를 가진 메시 존재 확인4. 스폰 허가 코드FTransform ADFItemSpawner::SetSpawnTransform(){ FVector BoxExtent = SpawnArea->GetS.. UE5 - 데이터 애셋 데이터 애셋이란 데이터를 구조화하고 관리하기 위해 사용되는 특수한 애셋타입이다. 주로 아이템, 스킬, 스탯, 설정값 등 게임 내에서 반복적으로 사용되는 데이터를 코드로 하드코딩하지 않고, 에디터에서 쉽게 편집하고 관리할 수 있도록 설계된 도구이다.데이터 입력이 간편해 프로그래머와 디자이너간의 협업을 원할하게 할 수 있다. 주요 특징구조화된 데이터 저장: 데이터 애셋은 UDataAsset 클래스를 기반으로 하며, 사용자가 정의한 데이터 구조(예: 구조체 또는 클래스의 속성)를 저장에디터에서 편집 가능: 언리얼 에디터의 콘텐츠 브라우저에서 데이터 애셋을 생성하고, 속성을 직관적으로 수정가능재사용성: 한 번 정의된 데이터 애셋은 여러 오브젝트나 시스템에서 참조될 수 있어 중복 작업 감소블루프린트와 통합: 데이.. UE5 - 비헤이비어트리 기본 용어 1. 비헤이비어트리비헤이비어트리는 언리얼엔진5의 AI 생성용 자료구조 애셋이다. 블루프린트와 유사하지만 AI컨트롤러에 부착되어 컨트롤러를 통한 행동 명령을 로직에 따라 내릴 수 있다. -생성 - 화면 2. 기본 요소들 - 태스크기능을 수행하는 노드 - 데코레이터컴포짓 노드에 붙어서 조건을 감시하여 분기를 생성하는 노드 -컴포짓노드 실행 방식을 결정해주는 노드 - 서비스값을 실시간으로 감시해주는 노드 - 블랙보드변수들을 저장해주는 애셋. 비헤이비어트리에 연결해서 사용. UE5 - GameInstanceSubsystem 게임 중엔 다양한 정보들이 누적된다. 잠깐만 필요한 정보들도 있겠지만,(미니게임에서 사용된 정보라던지..) 게임이 종료될 때까지 유지되어야하는 정보들(점수, 레벨, 기록 등)도 있다. 게임모드나 스테이트같은 경우는 레벨(월드)이 바뀌면 초기화되기때문에 이런 정보들은 다른 곳에 저장해주어야한다. 그 곳이 GameInstance다. GameInstance는 게임이 종료될 때까지 정보를 유지한다. 게임의 전반적인 흐름을 관리하기 위해서다.(시작->메뉴->게임->결과->종료) 그래서 유지해야하는 정보를 저장하기에도 적절하다. 물론 너무 복잡하거나 잦은 갱신정보 등은 구조상 적절하지 않지만, 로그인 정보나 옵션, 상태나 세션정보 등은 인스턴스에서 관리하기 적합하다. 그러나 아무리 그렇더라도 너무 많은 종류의 정보.. UE5 | C++ 기초 - 블루프린트와 c++의 차이 메타인지의 오류라는 말이 있다. 어려운 말 같지만, 쉽게말하면 그냥 '알고있다는 착각'정도일 것 같다.어떤 물음표가 대두됐을 때, '아 나 그거 알아'하고 자신있게 말하고 나중에 보니 내가 알고있는건 완전 엉터리 사실이었던 적이 몇번 있었다. 너무나 익숙한 대상이어서 잘 알고있다고 생각했는데, 알고보니 아니었던 적. 오늘도 그랬다. 오늘 블루프린트와 C++의 차이에 대한 질문을 받았다. 아니, 정확히는 저번주에 받았다. 답변을 하는 날이 오늘이었을 뿐이다.그리고 자신있게(그러나 긴장감에 더듬거리며) 답변했다. 엉터리 사실을. 조금 창피했지만 다행이다 싶었다. 정말 중요한 상황에서 이런 답변을 했다면 그게 더 큰일이었을 것이다. 오늘을 뉘우치고자 다시한번 차이를 짚고 넘어가기로 했다.1. 블루프린트- 장점.. UE5 - 사운드 재생 게임의 사운드는 게임을 더욱 실감나게하고 생동감있게 해준다.영화에서도 굳이 후시녹음과 효과음을 추가해주는 것도 같은 이유일 것이다.간단한 텍스쳐 기반 게임에서도 사운드를 추가해주는 것만으로도 상황이 머릿속에 그려져서 훨씬 몰입감이 올라간다. 언리얼에서 게임에 사운드를 넣어주는 방법은 간단하다.그러나 몇가지 방법이 존재함에 따라 원하는 방식으로 삽입하려면 다소 헤맬수도 있다.오늘은 여러 방법 중 원하는 타이밍에 원하는 사운드를 재생하고, 정지하는 방법 중 하나를 이야기해보고자 한다. 1. 사운드 애셋언리얼에선 몇가지 오디오확장자를 지원하지만, wav파일에 가장 최적화되어있다. 사용하고싶은 wav파일을 임포트하면 자동으로 애셋으로 등록된다. 2. 사운드큐사운드큐는 언리얼 내에서 여러 사운드를 다양하게 조합.. 이전 1 2 3 4 ··· 8 다음