반응형 Unreal/Manual132 Unreal Widget 정렬, 칸 맞추기 [Unreal] Widget 정렬, 칸 맞추기 언리얼 엔진에서 위젯을 설정할 때 칸이 맞지 않고 가운데 정렬 등을 하고 싶을 때 억지로 맞추는 일이 있습니다.비율에 맞게 가운데 정렬이나 종횡비를 유지하면서 위젯을 배치하고 싶은 경우 스케일 박스를 활용할 수 있습니다. 스케일 박스는 원하는 크기의 콘텐츠를 배치하고 이 박스의 할당 영역에 배치된 제한에 맞도록 스케일을 조절합니다. 배경 이미지가 일정 영역에 맞게끔 스케일 조절은 하지만 종횡비가 달라져 찌그러지지는 않도록 하거나, 특정 텍스트를 한 영역에 자동으로 맞도록 할 필요가 있는 경우에 좋습니다. 스케일 박스는 가로 박스(Horizontal Box)와 세로 박스 (Vertical Box)를 함께 사용했을 때 빛을 발합니다. 빈 공간을 채워 허전하지 않.. 2023. 12. 10. Unreal C++ BoxComponent BoxSize 변경 [Unreal/C++] BoxComponent BoxSize 변경 Unreal UBoxComponent CollisionShape BoxExtend 변경 UBoxComponentA box generally used for simple collision. Bounds are rendered as lines in the editor.docs.unrealengine.com SetBoxExtent 사용 2023. 12. 8. Unreal C++ Component BeginOverlap, EndOverlap 구현 [Unreal/C++] Component BeginOverlap, EndOverlap 구현 Component에는 OnComponentBeginOverlap과 OnComponentEndOverlap이 구현되어 있습니다.이는 UPrimitiveComponent를 상속받는 오브젝트에서 사용할 수 있으며, 구현 과정이 까다롭지 않습니다. 먼저 UPrimitiveComponent의 구현된 함수내용을 확인해보면FComponentBeginOverlapSignature OnComponentBeginOverlap;FComponentEndOverlapSignature OnComponentEndOverlap;가 구현되어 있습니다.// PrimitiveComponent.h /** * Event called when som.. 2023. 12. 2. Unreal 애니메이션 몽타주 파티클 추가 재생 [Unreal] 애니메이션 몽타주 파티클 추가 재생 Unreal Engine5 Animation Montage Anim Notify Play Particle준비1. 타겟 스켈레톤 2. 애니메이션 몽타주 3. 파티클 애니메이션 몽타주를 열고 일시정지를 눌러줍니다.이후 노티파이 트랙에 여분이 있는지 확인합니다.기본적으로 노티파이 트랙 이름은 1, 2, 3 처럼 인덱스로 생성되지만 이름을 클릭하면 이름 변경이 가능해집니다.트랙이 있을 경우 그대로 진행하고 없을 경우 트랙을 추가해 구분해줍니다.원하는 트랙에서 마우스 우클릭 ->노티파이 추가 -> 파티클 이펙트 재생을 눌러 추가해줍니다.생성된 파티클 이펙트 재생 노티파이를 클릭하여 우측 디테일 화면을 확인합니다.원하는 파티클을 지정해주고 위치를 조정해줍니다.위치.. 2023. 12. 1. Unreal C++ Mesh->SetMaterial 방법 [Unreal/C++] StaticMesh->SetMaterial 방법 먼저 SetMaterial의 방법은 어렵지 않다.디테일 창에서 Material Element를 확인하고 그 숫자에 맞는 인덱스와 함께 Material을 전달해주면된다.하지만 처음 Material을 설정하려 할 때 왜 안되지 ? 라는 생각이 먼저 들었다.생성자에서 UMaterial을 정상적으로 가져오고 StaticMesh도 있지만 SetMaterial을 진행하면 적용이 안되는 것이었다.다른 Component나 설정은 잘 먹히는데 경험해본 바로는 생성자에서 SetMaterial을 호출하면 작동하지 않는 것 이었다. 헤더 파일에 추가class UStaticMeshComponent* StaticMesh;class UMaterial* Mat.. 2023. 12. 1. Unreal C++ Animation Notification에 변수 추가하기 [Unreal/C++] Animation Notification에 변수 추가하기 Anim Notify나 Anim Notify State를 사용하다 보면 하나의 Anim Notify로 여러 애니메이션에서 사용할 수 있도록 제작하고 싶어진다.애니메이션에 따라, 노티파이에 따라 다른 값을 전달할 수 있도록 제작하는 것은 변수만 추가해주면 된다.다만 프로젝트 파일들 중 에디터 설정 값을 저장하고 있는 파일은 삭제하지 않도록 조심해야 한다. 기본적으로 나의 캐릭터는 두개의 총을 소유하고 있다.변수를 사용하지 않는다면 좌우 무기의 Muzzle 소켓을 위해 두개의 노티파이를 따로 제작해야 했을 것이다.하나의 Notify로 다른 값을 설정하고 싶다면 클래스에서 블루프린트가 사용할 수 있도록 변수를 설정해 주면 된다.#.. 2023. 12. 1. Unreal C++ Sphere Component 충돌체 추가 [Unreal/C++] Sphere Component 충돌체 추가 SphereComponent 충돌체 추가 코드// MyActor.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Bullet.generated.h"UCLASS()class MAINPROJECT_API ABullet : public AActor{ GENERATED_BODY() public: ABullet();protected: virtual void BeginPlay() override;public: virtual void Tick(float DeltaTime) override;private : class USphereComponent* Col.. 2023. 11. 30. Unreal C++ AnimNotifyState 사용 하기 [Unreal/C++] AnimNotifyState 사용 하기Anim Notify State (애님 노티파이 스테이트), 또는 Notify State (노티파이 스테이트)는 위의 표준 노티파이와 비슷합니다. 다른 점은 begin(시작), tick(틱), end(끝) 세 개의 이벤트가 있습니다. 단순히 시작해서 노티파이 시작과 끝 지점에 발동되고, 애니메이션에서 시간이 다가왔을 때 그 안의 이벤트 그래프 가 발동됩니다. 틱은 끝 이벤트에 도달할 때까지 모든 애니메이션 업데이트를 발동합니다. 보통 노티파이와 노티파이 스테이트와 큰 차이점은, 자체 독립적인 블루프린트 라는 점입니다. 애니메이션 노티파이 스테이트를 사용해 보겠습니다.AnimNotifyState를 상속받은 C++ 클래스를 생성합니다. C++ 클래.. 2023. 11. 30. Unreal C++ AnimNotify 사용 하기 [Unreal/C++] AnimNotify 사용 하기애니메이션 프로그래머는 Animation Notification (애니메이션 노티파이), 또는 AnimNotify (애님 노티파이), 줄여서 그냥 Notify (노티파이)를 통해 애니메이션 시퀀스 도중의 특정 지점에 이벤트가 발생하도록 구성할 수 있습니다. 노티파이는 걷기나 달리기 도중의 발소리같은 이펙트 추가 및 애니메이션 도중 파티클 시스템을 스폰시키는 데 주로 사용됩니다. 애니메이션 노티파이를 사용해 보겠습니다.AnimNotify를 상속받은 C++ 클래스를 생성합니다. C++ 클래스 생성시 아래와 같은 코드가 작성됩니다.애니메이션 몽타주에서 Notify를 추가하기 위해서 UAnimNotify에 정의되어 있는 함수를 오버라이드 해야합니다.#pragm.. 2023. 11. 30. Unreal Layered Blend per bone 본 별로 레이어 블렌딩 [Unreal] Layered Blend per bone 본 별로 레이어 블렌딩 본 별로 레이어 블렌딩을 할 때에는 기본 포즈와 블렌딩 포즈가 필요하다.보통 캐릭터의 움직임을 DefaultPose로 사용하고 상체 애니메이션을 UpperBody로 설정하여 허리를 기준으로 블렌딩한다. Bone 을 기준으로 블렌딩할때에는 노드를 클릭하여 설정을 조금 해줘야한다.본 별로 레이어를 블렌딩 하는 노드를 클릭하여 디테일창에서 분기 필터에 뼈 이름을 설정한다.뼈의 이름은 블렌딩 기준 뼈를 설정하며 여기서는 허리춤에 있는 spine_01로 설정한다.다른 뼈를 사용할 경우 해당 캐릭터의 Skeleton Tree에서 이름을 확인하고 그에 맞는 설정을 해주면 된다. 애니메이션의 경우 몽타주를 주로 사용하는데몽타주에서 슬롯 .. 2023. 11. 28. Unreal C++ CSV로 만든 데이터 DataTable로 가져오기 [Unreal/C++] CSV로 만든 데이터 DataTable로 가져오기 본 게시물에서는 Excel을 이용하여 애니메이션 정보를 가지고 있는 CSV 파일을 만들고 Unreal 임포트를 통해 DataTable로 변환하여 사용하며, 만들어진 DataTable을 C++ 코드로 불러오는 방법을 기술합니다. 애니메이션을 위한 CSV 파일을 준비합니다.A1 컬럼은 비워둡니다. 언리얼 엔진에서 파일을 import 할 때, 첫 번째 컬럼은 건너뛰어 버립니다.첫 번째 컬럼 값은 Row ID 를 나타내고 데이터 테이블에서 Row 를 구분하기 위해 필요합니다.Type과 Animation 등 RowName은 C++ 코드에서 struct 변수명으로 사용될 예정입니다.파일 -> 다른이름으로 저장 -> CSV (쉼표로저장) -> .. 2023. 11. 28. Unreal C++ Widget 변수 사용하기 [Unreal/C++] Widget 변수 사용하기 1. UserWidget C++ 클래스 만들기2. UserWidget C++ 클래스 기반 블루프린트 만들기3. 팔레트에서 Widget 배치하기4. 변수 인지 체크하기5. 클래스에서 위젯 이름과 똑같은 변수 만들기6. 변수 사용하기 이 글에서는 UProgressBar 위젯을 만들고 변수로 가져와 값을 변경합니다. 위젯을 위한 UserWidget C++ 클래스를 만듭니다.콘텐츠 브라우저에서 위젯 블루프린트를 만들고 부모를 만들어진 클래스로 설정합니다.부모를 지정하지 못한경우 블루프린트 부모변경을 이용할 수 있습니다.오른쪽 상단에 부모 클래스를 확인하고 디자이너탭이 보이는지 확인합니다.C++ 클래스를 우클릭해서 기반 블루프린트를 생성한 경우 디자이너 탭이 보이.. 2023. 11. 26. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음 반응형