반응형 Unreal179 Unreal C++ fatal error C1083 : Cannot open included file. [Unreal/C++] fatal error C1083 : Cannot open included file. fatal error C1083 : 포함 파일을 열 수 없습니다.KismetAnimationLibrary.h 헤더 파일 추가UKismetAnimationLibrary::CalculateDirection을 사용해 주세요. 헤더파일 추가시 파일 소스를 열 수 없습니다. 등엔진 소스를 사용하려 할 때 발생할 수 있는 에러이다. 이는 엔진 소스를 사용하기 위한 Module을 추가해주지 않았기 때문이다.쉽게 말하자면 파일 경로를 추가해 주어야 한다. 나의 경우 UAnimInstance클래스에 있는 CalculateDirection을 사용하던 중API가 이제 지원되지 않을 예정이니 UKismetAnimatio.. 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. Unreal C++ LogBlueprint: Error: AssetLog .uasset: Compiler (에셋) 타입의 "AssetsName" 필수 위젯 바인딩을 찾지 못했습니다. [Unreal/C++] LogBlueprint: Error: [AssetLog] .uasset: [Compiler] (에셋) 타입의 "AssetsName" 필수 위젯 바인딩을 찾지 못했습니다.위젯의 변수와 C++ 변수의 이름이 맞지 않아서 생기는 에러에러를 발생시켜 로그를 확인하였습니다.LogBlueprint: Error: [AssetLog] F:\Projects\MainProject\Content\Characters\TwinBlast\Widgets\WBP_HelthPointBar.uasset: [Compiler] 프로그레스 바 타입의 "PB_HPBa" 필수 위젯 바인딩을 찾지 못했습니다. Fatal error! Unhandled Exception: EXCEPTION_ACCESS_VIOLATION wr.. 2023. 11. 26. Unreal C++ CreateWidget과 AddToViewport() [Unreal/C++] CreateWidget과 AddToViewport() C++ 클래스 코드를 이용하여 화면에 Widget띄우기 1. 위젯 클래스 생성2. 위젯 클래스 기반 블루프린트 생성3. 위젯 디자인4. 코드 작성 먼저 UserWidget을 상속받는 C++ 클래스를 하나 만들어 줍니다.별다른 코드 없이 디자인 기능만 갖춘 위젯을 화면에 띄울 예정입니다. 콘텐츠 폴더에서 위젯 블루프린트를 하나 생성합니다.(클래스 우클릭 후 기반 블루프린트 만들기를 하면 디자이너 탭이 보이지 않는 문제가 있습니다.)생성한 클래스를 상속받아 위젯 블루프린트를 만듭니다.위젯 블루프린트의 접두사는 WBP로 시작합니다. 위젯 블루프린트를 디자인 합니다.똑같이 만들 필요는 없으며 캔버스 패널위에 이미지 하나만 올려두셔도 됩.. 2023. 11. 26. Unreal C++ CreateWidget시 Fatal Error! [Unreal/C++] CreateWidget시 Fatal Error! 분명 코드를 잘 작성했는데 에러가 뜬다면CreateWidget이 생성자에서 사용되고 있는지 확인해봐야한다. CreateWidget과 AddToViewport()를 진행할 때 BeginPlay에 넣어보자. 2023. 11. 26. Unreal 캐릭터 AimOffset 구현하기 [Unreal] 캐릭터 AimOffset 구현하기에임 오프셋은 캐릭터의 무기 조준시 도움이 되는 블렌딩가능 포즈 시리즈가 저장된 애셋입니다.여러가지 면에서 에임 오프셋은 BLend Space(블렌드 스페이스)와 똑같습니다. 캐릭터를 구현할 때 이동 기능과 회전 기능이 있다면 상향 가운데, 가운데, 하향 가운데 3개의 AimOffset만으로 충분합니다. 한 장소에 멈춰 있는 경우에만 9방향이나 15방향 AimOffset 기능 구현을 고려하는 것이 좋습니다. 준비1. 사용하려는 캐릭터의 스켈레탈 메시와 기본 애니메이션2. 에임 오프셋으로 만들 최소 9방향 애니메이션 본 글에서는 15방향 에임 오프셋을 제작할 예정입니다. 에임 오프셋은 애디티브 에임 타입의 메시 스페이스를 가진 애니메이션만 받습니다! 에임 오.. 2023. 11. 24. 이전 1 ··· 6 7 8 9 10 11 12 ··· 15 다음 반응형