https://cerulean-cloudberry-2ab.notion.site/3a5d34f3778d80bca9b4c85b6be22e70애니메이션 클래스는 클래스 자체를 사용하기 때문에 특이하게 언리얼 명명규칙이 _C가 마지막에 붙는다. 애니메이터가 움직임을 확인하면서 작업하고 싶어서, 캐릭터가 실제로 움직이는 애니메이션이 있다. 이걸 끄고 싶다면 루트모션을 끄면 된다. 피직스 에셋. 우리가 피직스를 배운적은 없다. 스켈레탈 개념과 좀 다르다. 피격판정이라고 할 때 헤드샷이 잘 터지게 하고싶다면, 충돌체 모양을 키우면된다. 콘텐츠 드로어에 우클릭 -> 애니메이션 -> 블렌드 스페이스 (모션들을 적당히 섞어주는것) 이렇게 구성하고 ABP_Rifle에 추가해서 보자. 문제가 있다.특정시점에 발이 호..
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..
Bullet 클래스를 액터상속받아만들고 물리기능을 제공하는 UProjectileMovementComponent 컴포넌트 추가. UProjectileMovementComponent(투사체 이동 컴포넌트)는 총알, 미사일, 대포알, 마법 구체처럼 일정한 속도로 날아가며 중력이나 반사 등의 연출을 처리하는 액터용 이동 컴포넌트입니다. 주요 특징 및 핵심 기능직접 이동 코드 작성 필요 없음: Tick 함수에서 위치를 직접 $P = P + V \times dt$ 형태로 계산하지 않아도, 컴포넌트가 속도(InitialSpeed, MaxSpeed)에 따라 자동으로 위치를 업데이트합니다.유도 및 바운스 연출:bShouldBounce = true: 벽이나 장애물에 부딪혔을 때 튕겨 나가는 연출을 쉽게 설정할 수 있습니..
언리얼에서 C++ 스크립트 생성할 경우 헤더가 이런식으로 폴더가 붙는데 같은폴더일경우 Enemy.h만 언리얼 엔진의 CameraBoom(스프링 암, Spring Arm)은 캐릭터와 카메라 사이를 연결해 주는 '셀카봉' 또는 '길다란 지지대' 역할을 하는 컴포넌트입니다.이미지에서 보는 것처럼 빨간색 선으로 카메라(FollowCamera)와 캐릭터가 연결되어 있으며, 주요 기능은 다음과 같습니다.거리 및 위치 유지: 캐릭터로부터 일정 거리(Target Arm Length)를 두고 카메라가 따라다니도록 위치를 고정해 줍니다.회전 제어: 캐릭터가 회전할 때 카메라도 함께 돌지, 아니면 마우스 이동에 따라 카메라만 회전할지(Use Pawn Control Rotation) 결정합니다.충돌 감지 (Camera C..
https://cerulean-cloudberry-2ab.notion.site/C-3c8d34f3778d800d8063ea8438dbfe34 내프로젝트명의 폴더 밑에 코드를 넣어야 제대로 인식한다. 근데 .cs c#파일들 보일것이다. 이건 엔진이 제공하는 모듈들을 우리 게임에 포함시킬지 말지를 결정하는 그런용도라고 생각하면된다. 언리얼은 Visual Studio가아니라 , 언리얼 에디터자체에서 코드를 컴파일할 수 있다. 이게 라이브코딩 기능이고, 이걸 키면 Visual Studio에서 빌드는 안되지만 에디터에서 가능하다. 코드만들어보자. 이렇게 만들어진 코드를 보자[MyActor.h] 언리얼 헤더툴 시스템언리얼은 일반적인 C++처럼 동작을 하긴하는데, 자기네들이 부수적인걸 되게 많이넣어놨..
Cube우클릭 선탞된 바인더로 변환->포세시블? 그래서 시퀀스에 올려놓은 액터들이 시네머신으로 조작하게 하려면 이 설정을해줘야한다. 번개표시가 뜨는데, 그건 시네머신이 활성화될때만 조작가능하다는뜻(?) 테스트 해보려면 책에서는 자동재생을 키라고 하는데, 이러면 게임시작하자마자 이유불문 시네머신이 재생된다. 이렇게 하지말고, 잠시 블루프린트로 해보자 블루프린트는 반드시 연결을 해줘야한다. SetOverride InstanceData 노드의 경우, SetValue(10);같은 코드인데, 연결을하지않으면 Play는 굉장히 범용적으로 사용되는 노드다. 그래서 아래쪽에 있는 객체가 내가 실행하려는 Sequence가 맞는지 확인해야한다. 이부분 실수하기 쉬워서 유의하자. 헷갈린다면 노드를 찾을 때 오른쪽..
이 노드 네트워크는 "빛의 방향"과 "물체 표면의 방향"이 얼마나 같은 방향을 바라보고 있는지를 연산하여 음영(라이팅)을 계산하는 가장 기본적인 구조1) 노드에 ctrl+ alt 누르면 노드가 하는 기능설명 볼 수 있다노드에 우클릭하고 노드 프리뷰를 누르면 결과노드에 연결하지 않더라도 지금까지의 진행상황을 볼 수 있다