본문 바로가기

분류 전체보기

(331)          글쓰기    
문열기 BP_DOOR Arrow로 축을 만들어 준다 openState 0= idel, 1=open, -1=close로 inc로도 사용한다 BP_Open으로 트리거를 만들어준다
Fracture Mode BP_Target의 Simulate Physics 을 켠다. 레벨에서 Target을 선택하고 File밑의 Generate New를 선택한다. 적당한 폴더를 선택하고 Create한다. 타깃의 색이 변화되어 있고 갈라져 있다. 아웃라이너 위치에 Fracture Hierachy팬널이 생겼고 방금생선한 액터가 선택되었다. 왼쪽 Fracture팬널에서 아래로 스크롤해 Fractrue를 2번 눌러주면 레벨이 생긴다. Fracture모드에서 Selection모드로 돌아간다 General의 Show Bone Colors를 꺼주면 노란색이 꺼지고 모습이 나타난다. 방금만든 BP_Target_GeometryCollection를 클릭해 Collision을 변경한다. 좀더 잘 부서진다. .BP_PPROJECTILE을 열어 노..
게임모드에 변수 만들기 블루프린트 아이콘을 클릭해 현재 게임모드의 오버라이드를 만들어준다. 오버라이드된 게임모드를 레벨에 저장된다. 우클릭해서 BP라는 폴더를 만들고 이름은 GM_MainGame으로 해준다. 그래프이벤트창으로 이동해서 변수를 만들어준다. 창으로 끌어 Get으로 놓고 노드를 끌어 ++를 추가해준다. 우클릭후 CustomEvent를 추가해주고 이름을 AddScore로 바꿔주고 Print String을 추가하고 연결해준다. BP_Target 이벤트그래프로 이동해 이벤트를 호출해 점수를 올려줄 것이다. 우클릭후 game mode를 검색해 추가해준 조금전 오버라이드 게임모드인 GM_MainGame을 불러오기 위해 gm_ 를 검색해준다. adds로 검색해서 방금만든 Add Score 이벤트를 추가해준다. 기존의 Print..
타겟만들기 BP_Target을 Actor로 부모로 만든다. 컴포넌트로 StaticMesh를 넣고 EditorHelp를 선택해준다 Z 로테이션을 설정해 X 축을 바라보게 해준다 이벤트그래프에서 디테일 아래 On Component Hit + 를 클릭해주고 노드를 연결해준다. 레벨에 배치해주고 플레이해서 총을 쏴보면 잘 충돌한고 충돌체의 이름이 표시된다. 충돌체실험 이부분은 개인적인 실험으로 통과하셔도 된다. Collision Box컴포넌트를 추가해주고 Shape를 변경해준다 Components에 StaticMesh를 추가하고 Mesh를 EditorHelp를 지정해준다 머터리얼을 M_Ground_Grass로 한다. StaticMesh가 X축을 향하게 Z축을 -90도 회전시킨다. 위치를 조정해 콜리전 박스안에 넣어준다. ..
UE5 Beginner Game 유튜브에서 좋은 강의를 봐서 정리해 봤습니다. https://youtu.be/1XjgLKrb4_M FirstPerson템플릿으로 MyFirstProject를 만든다. New Level을 만들고OpenWorld을 선택한다. Contents폴더밑에 FirstLevel이라는 폴더를 만들고 지금 레벨을 LV_Target1로 저장한다. 자신의 블루프린트 설정을 확인해서 DefaultPawnClass가 BP_FirstPersonCharacter를 확인한다. 플레이시 AWSD로 움직여 보면 움직이면 되고 아웃라이너에서 BP_FirstPersonCharacter0이 확인된다. Edit>Projects세팅>맵>Default Map에 위에서 만든 레벨을 기본 레벨로 설정한다. 레벨을 새로 만들어 총을 장착할수 없으니 Fi..
애니메이션 블루프린트 1. 애니메이션 기본 제작 다양한 상황에 맞는 애니메이션을 재생할 수 있도록 애니메이션 블루프린트 기능을 활용한다. 애님 인스턴스: 애니메이션 블루프린트의 기반 스켈레탈 메시를 소유하는 폰의 정보를 받아 애님 그래프가 참조할 데이터 제공 블루프린트와 C++로 제작가능 애님 그래프: 시각적 도구를 사용해 애니메이션 시스템을 제작하도록 설계 애님 인스턴스의 변수 값에 따라 변화하는 애니메이션 시스템을 설계하는 공간 블루프린트로만 제작 가능 체계적인 애니메이션 시스템 설계를 위해 스테이트 머신 제공 새로운 C++클래스를 만든다 부모는 AnimInstance로 이름은 ABAnimInstance로 한다. CurrentPawnSpeed라는 이름의 float 변수를 만들어 이동 속도에 따라 애니메이션을 다르게 구현해..
삼인칭 컨트롤 구현(GTA방식) 3. 삼인칭 컨트롤 - GTA 언리얼에서 제공하는 흰색 마네킹과 동일한 기능을 구현할 수 있다. 흰색 마네킹 설정 캐릭터의 이동: 현재 보는 시점을 기준으로 상하, 좌우 방향으로 마네킹 이동(카메라 회전 x) 캐릭터의 회전: 캐릭터가 이동하는 방향으로 마네킹 회전 카메라 지지대 길이: 450cm 카메라 회전: 마우스 상하좌우 이동에 대응해 카메라 지지대 회전 카메라 줌: 카메라 시선과 캐릭터 사이에 장애물이 감지되면 캐릭터가 보이도록 카메라를 장애물 앞으로 줌인 ABCharacter 클래스에 SetControlMode 멤버 함수를 만들어 SpringArm 컴포넌트를 활용한 카메라 설정을 구현해보자. ABCharacter.h ... protected: void SetControlMode(int32 Cont..
[이득우언리얼] 캐릭터의 제작과 컨트롤 캐릭터 모델 Pawn 대신 Character 액터를 만들어 조작해보자. Character 액터는 Pawn 액터를 상속받는데, Pawn 과 다른 점은 CharacterMovement 컴포넌트를 사용해 움직임을 관리한다는 것이다(Actor>>Pawn>>Character). 이 컴포넌트가 FloatingMovement 에 비해 가지는 장점은 다음과 같다. 점프와 같은 중력을 반영한 움직임을 제공 다양한 움직임 설정 가능(기어가기, 날아가기, 수영하기 등등) + 현재 움직임에 좀 더 많은 정보 전달 멀티 플레이 네트워크 환경에서 캐릭터들의 움직임을 자동으로 동기화한다. 코드에서 불러올 WarrioranimBlueprint애니메이션블루프린트를 확인한다. 없다면 간단히 만들어보자 애니메이션 블루프린트 생성 애니메이..
[이득우 언리얼] 폰 제작과 조작 Actor 언리얼 엔진의 레벨(월드)에 배치할 수 있는 tranform을 가진 오브젝트 Pawn 플레이어나 AI가 제어할 수 있는 액터(액터를 상속 한다) Character 폰에서에서 좀 더 복잡한 애니메이션을 위해 파생된 클래스. 예를 들어 점프하고 수영하고, 하늘을 날아다니는 애니메이션들과 그 애니메이션들을 블렌딩하는 작업 등 복잡한 애니메이션을 처리할 수 있다. 실사용 예시 Actor Pawn Character 이동 X O O 애니메이션 X X O 플레이어, AI가 제어 X O O 예시 건물 체스 말 사람, 몬스터 출처: https://tenlie10.tistory.com/183 [게임 엔진/클라이언트 개발자:티스토리] ● 플레이어가 조종할 수 있는 특수한 액터인 폰은 움직이는 액터에 조종당하는 기..
[이득우UE프로그래밍] 게임플레이 프레임워크 - 게임모드 게임의 규칙을 관리하는 게임 모드와 플레이어가 조종하는 액터인 폰에 대해 알아보자. 프로젝트 세팅의 Selected GameMode 를 펼쳐보면, Default Pawn Class 항목에서 게임에 입장한 플레이어에게 주어질 조종할 수 있는 액터, 폰의 타입을 지정할 수 있다. 일단 실습을 위해 Save Current Level As로 step2로 저장한다 그럼 Tab이 Step2로 바뀐다. Default GameMode가 ArenaBattleGame모드로 지정되어 있다는건 이미 어딘가 만들어져 있지만 연결해서 사용하기 불편하다. 언리얼이 초기에 만든 파일들은 건드리지 말고 확장해 사용하던지 직접 만들어서 연결해주는 편이 좋다. 언리얼 에디터에서 각각 GameModeBase상속받은 ABGameMode,, ..
[이득우 언리얼 C++] 프로젝트의 재구성 언리얼에서 액터생성은 쉽게 했지만 제거는 할수 없다. 제거를 위해서는 C++개발환경의 이해가 필요하다. 프로젝트 폴더를 보면서 체크된 폴더를 지워야한다. 먼저 프로젝트를 닫기전 레벨에서 Fountain관련 객체들을 지운다. Visual Studio에서 Source폴더내 Private, Public폴더내의 Fountain.h와 Fountain.cpp를 우클릭후 프로젝트에서 제외를 선택한다. 코드는 Source폴더내 Private, Public폴더내의 Fountain.h와 Fountain.cpp를 지워야 한다. 폴더안에 모든 파일및 폴더를 지우면 안된다. 이후 프로젝트 폴더의 ArenaBattle.uproject위를 우클릭해 솔루션파일을 생성해주면 된다. Arenabattle.uproject가 다시 생기면 ..
[이득우 언리얼 C++] 움직이는 액터의 설계 이번에는 렌더링 프레임 호출되는 액터의 Tick()함수를 이용해 액터의 움직임을 구현해본다. Tick()함수는 전 렌더링프레임과의 시간차를 DeltaTime에 담아 전달해준다. 구현시 사용하는 moveSpeed와 같은 변수들은 public:으로 사용하면 문제없지만 private:일 경우 컴파일 에러가 발생한다. 이를 피하기 위해 다음과 같이 Fountain.h에 선언해야한다. private: UPROPERTY(EditAnywhere, Category = Stat, Meta = (AllowPrivateAccess = true)) float RotateSpeed; Fountain.cpp Tick()에 AddActor~를 추가해 오브젝트를 돌게 해준다. 현재 회전값에 RotateSpeed*DeltaTime만큼..