본문 바로가기

분류 전체보기635

유니티 마우스 위치로 총알 발사 ▣ Player 오브젝트에 Gun 오브젝트를 추가하고 Sprite Renderer와 GunManager라는 스크립트를 추가합니다.   ▣ 그리고 Gun안에 BulletPos라는 이름에 오브젝트를 상속하고 총알이 발사되는 위치로 이동합니다.   ▣ GunManager 스크립트로 가서 메인카메라, 마우스위치, 총알프리팹, 총알 나가는 위치, 총 쏘는 여부를 나타내는 변수, 시간, 총 쏘는 딜레이타임변수를 각각 선언합니다. 그리고 Start() 함수에서 mainCamera라는 대입 합니다.   ▣ 그리고 화면공간에 마우스 위치를 가져오는 코드, 방향을 구하는 코드, 수평축으로부터 한 점까지 각도를 구하는 함수를 각각 작성하고 총 회전값에 대입합니다. 딜레이 시간에 따라 총알이 복제되는 코드까지 완성합니다.  .. 2024. 7. 11.
유니티 애니메이션 스프라이트 ▣ 애니메이션 에셋을 가져오고 스프라이트를 선택한 다음 Sprite Mode와 Filter Mode를 지정하고 Sprite Editor을 선택합니다.   ▣ Silce메뉴를 선택하고 Type을 Automatic을 선택한 다음 Slice로 자르기를 진행합니다. 스프라이트 한 개를 선택하여 Pivot 중심을 변경할 수도 있고 스프라이트 자르는 부분을 직접 조절도 할 수 있습니다.   ▣ 오른쪽마우스를 클릭하여 Create에서 Animation에 Animation과 Animator Controller를 생성합니다.   ▣ Scene에 Player오브젝트를 생성하고 Animator Component를 추가한 다음 해당 애니메이션에 넣어 준 다음에 직접 프레임 별로 스프라이트를 넣어 애니메이션을 제작하고 추가할 .. 2024. 7. 10.
언리얼엔진5 AnimNotify ▣ Notify를 추가할 애니메이션에서 트랙에 New Notify를 클릭해서 추가합니다.   ▣ 애니메이션 블루프린트에서 Event Graph에서 생성한 Notify Event 이름을 검색하면 Event노드를 찾을 수 있습니다.그리고 해당 이벤트로 함수를 연결하여 Notify가 있는 애니메이션이 실행될 때 Notify를 통해서 해당 함수가 호출할 수 있습니다.   ▣ 플레이어 블루프린트에 추가한 Event를 Notify Event에서 캐스팅해서 해당 함수를 호출할 수도 있습니다. 2024. 7. 3.
언리얼엔진5 c++ Dynamic CrossHair ▣ 먼저 CrossHair Widget을 생성합니다. CrossHair에 모양은 Border로 제작하고 정렬은 가운데로 위치가 크기는 0으로 지정하고 Is Variable를 체크합니다.   ▣ 플레이어 헤더파일에서 CrossHair 퍼지게하는 값을 관리하는 변수를 선언합니다.   ▣ 캐스팅하기전에 HUD를 생성자에서 가져오는 코드를 주석처리하거나 제거합니다. 그래야 플레이어에서 캐스팅한 값을안전하게 가져올 수 있습니다.     ▣ 위젯 블루프린트로 가서 플레이어 CrossHairSpread 변수를 캐스팅하고 Get 한 다음에CrossHairSpread 크로스헤어 퍼지는 값CrossHairLength 크로스헤어 길이 CrossHairThickness 크로스헤어 두께를 관리하는 변수를 선언합니다.그리고 Cr.. 2024. 6. 26.
언리얼엔진5 c++ AnimNotifyState ▣ c++ AnimNotifyState를 생성합니다. 그리고 3개의 함수를 선언합니다.  virtual void NotifyBegin(USkeletalMeshComponent * MeshComp, UAnimSequenceBase * Animation, float TotalDuration) override; virtual void NotifyTick(USkeletalMeshComponent * MeshComp, UAnimSequenceBase * Animation, float FrameDeltaTime) override; virtual void NotifyEnd(USkeletalMeshComponent * MeshComp, UAnimSequenceBase * Animation) override; ▣ Not.. 2024. 6. 19.
언리얼엔진5 액터 병합하기 ▣ 병합할 액터를 선택한 다음에 Tools에서 Merge Actors를 클릭합니다.   ▣ 병합 방식을 선택하고 Merge Actors를 클릭합니다.  ▣ 병합 종류병합(Merge)간소화(Simplify)배치(Batch)근사계산(Approximate) https://docs.unrealengine.com/4.27/en-US/Basics/Actors/Merging/ Actor MergingAn overview of the Actor Merge tool that is used to combine multiple Static Meshes into a single mesh inside UE4.docs.unrealengine.com  ▣ 저장 후 해당 액터를 레벨에 가져오면 병합된 걸 확인할 수 있습니다. 2024. 6. 18.
언리얼엔진5 Physics Door ▣ 먼저 Actor를 생성하고 Static Mesh를 추가합니다.   ▣ 해당 Static Mesh에 들어가서 Collstion을 추가합니다.   ▣ Static Mesh에 디테일탭에서 Simulate Physics를 체크합니다.   ▣ Phsics Constraint를 추가합니다. https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Physics/Constraints/ConstraintsReference/ 피직스 컨스트레인트 레퍼런스언리얼 에디터의 피직스 컨스트레인트에서 사용할 수 있는 모든 프로퍼티에 대한 레퍼런스입니다.docs.unrealengine.com  ▣ PhsicsConstraint에 Component Name을 Static Mesh.. 2024. 6. 14.
언리얼엔진5 c++ FOnMontageEnded(Montage종료시 호출 델리게이트) ▣ Montage에 관한 헤더를 추가합니다.  ▣ 몽타주 재생 종료에 대한 델리게이트를 인스턴스 선언하고 몽타주가 끝나면 호출되는 함수를 바인딩합니다. 종료 시 호출할 함수 선언 시 (UAnimMontage* Montage, bool isEnded) 매개변수로 선언해야 합니다. 그리고 몽타주가 끝나면 델리게이트에 연동된 함수를 호출하는 코드까지 작성합니다. 그럼 몽타주 재생 후 종료 시 해당 함수를 호출합니다.   ▣ FOnMontageEnded 코드로 들어가면 이렇게 델리게이트 형식으로 선언되어 있는 걸 확인할 수 있습니다. 2024. 6. 14.
언리얼엔진5 c++ Timeline(Aim Zoom In Out) ▣ CurveFloat를 생성하고 Time 0, Value 0, Time 0.2, Value 1 각각 Time과 Value를 지정합니다.그리고 시간에 따라 Value 값이 변경되고  그 값을 조절해서 사용하게 됩니다.  ▣ 오브젝트를 애니메이팅 하는 방법을 더 잘 제어하고 싶은 경우, 커브 에디터를 사용하여 키프레임을 수정하고 미세조정할 수 있습니다. 커브 에디터의 그래프를 사용하여 새 키프레임을 생성하고, 탄젠트를 편집하고, 다양한 내장 툴을 사용하여 애니메이션 커브를 조정할 수 있습니다. 커브 에디터는 나이아가라, 커브 에셋 및 애니메이션 커브 같은 언리얼 에디터 전반의 다른 툴에서 사용됩니다. 이 가이드에서는 시퀀서 내에서 커브 에디터를 사용하는 방법에 대해 간략하게 살펴보겠지만, 여기서 설명하는 .. 2024. 6. 13.
언리얼엔진5 블루프린트 단축키 ▣ 블루프린트 블록 지정 후  C Key  : 주석 ▣ 변수 클릭 + Alt 누른 상태로 드래그 : 변수 SET노드 생성 ▣ 변수 클릭 + Ctrl 누른 상태로 드래그 : 변수 GET노드 생성 ▣ 정렬할 노드 드래그 후 Q Key : 수평정렬 ▣ 정렬할 노드 드래그 후 Shift + A , Shift+D : 수직정렬 ▣ B Key 누른 상태에서 마우스 왼쪽 클릭 : Branch노드 생성 ▣ S Key 누른 상태에서 마우스 왼쪽 클릭 : Sequence 노드 생성 ▣ F Key 누른 상태에서 마우스 왼쪽 클릭 : For Each Loop 노드 생성 ▣ N Key 누른 상태에서 마우스 왼쪽 클릭 : Do N 노드 생성 2024. 6. 12.
언리얼엔진5 c++ Interface https://dev.epicgames.com/documentation/ko-kr/unreal-engine/interfaces-in-unreal-engine?application_version=5.3 https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/GameplayArchitecture/Interfaces/ 인터페이스인터페이스 생성 및 구현 관련 레퍼런스입니다.docs.unrealengine.com     ▣ UINTERFACE 클래스는 실제 인터페이스가 아닙니다. 언리얼 엔진의 리플렉션 시스템에 대한 비저빌리티를 위해서만 존재하는 빈 클래스입니다. 다른 클래스에서 상속되는 실제 인터페이스는 클래스 이름이 동일해야 하지만 첫 'U'가 'I'로 .. 2024. 6. 11.
언리얼엔진5 ProgressBar ▣ Input Action에 Triggers에 Hold를 추가합니다. 그리고 Hold Time Threshold를 조절하여 Hold 시간을 조절합니다. Is One Shot을 체크하면 Hold 시간이 끝나면 한 번만 Shot을 합니다.   ▣ BP_Player로 가셔서 E키를 누르면 Print 하는 노드를 연결합니다. 그럼 E키를 누르고 Hold Time Threshold 타임이 지나면 Print노드가 한번 출력됩니다.    ▣ 위젯을 생성하고 Text와 ProgressBar를 추가하여 배치하고 ProgressBar에 디테일에 Percent를 바인딩합니다. 그리고 해당 코드에서 BP_Player 변수를 Return Value 하는 노드를 완성합니다.  BP_Player에서 Level 변수를 먼저 생성하고.. 2024. 6. 11.
언리얼엔진5 Delegate ▣ 델리게이트란? - 델리게이트는 함수 포인터와 비슷한 개념으로, 특정 함수에 대한 참조를 저장하고 나중에 이를 호출할 수 있는 기능을 제공합니다. - 사용: 특정 이벤트가 발생했을 때, 미리 지정된 함수나 메서드를 호출하는 데 사용됩니다. ▣ 왜 사용하는가?- 이벤트 처리: 특정 조건이 발생했을 때 여러 개의 리스너 함수가 호출되어야 할 때 유용합니다. - 콜백 메커니즘: 비동기 작업이 완료된 후 후속 작업을 수행해야 할 때 사용합니다. - 코드의 결합도 감소: 코드의 모듈성을 높이고, 서로 다른 클래스나 모듈 간의 의존성을 줄일 수 있습니다. - 유연한 설계: 런타임에 어떤 함수가 호출될지 유연하게 결정할 수 있습니다. ▣ Delegate (델리게이트)로 C++ 오브젝트 상의 멤버 함수 호출을 일반적.. 2024. 6. 9.
언리얼엔진5 Option System ▣ 먼저 옵션 위젯 블루프린트를 생성합니다.   ▣ BackgroundBlur를 추가하고 Blur Strength 값을 변경합니다.  ▣  Vertical Box안에 Horizontal Box를 정렬하고 상속하여 추가합니다.   ▣ Horizontal Box 각각에 Text, Button를 조합하여 넣어서 Option 위젯디자인을 완성하고 BackGroundImage도 추가하여 배경도 옵션에 배경도 넣습니다. 그리고 각각 화살표 버튼마다 이름을 지정하고 Is Variable을 활성화합니다.   ▣ WindowsMode Button  클릭 이벤트를 추가하고 WindowsMode라는 변수에 EWindow Mode 형식으로 지정하고 Default Value값도 Windows Fullscreen으로 변경합니다.. 2024. 6. 5.
언리얼엔진5 c++ AIController Character AnimInstance Cast ▣ Character에 대한 참조 정의를 하기 위해서는 GameFramework/Character.h 헤더를 추가합니다.   ▣ 그리고 Pawn -> Character -> Mesh -> AnimInstance를 하나하나 대입하고 캐스팅하여 가져와서 AnimInstace를 접근하여 사용가능합니다. 2024. 6. 4.
언리얼엔진5 Project Packaging ▣ 먼저 프로젝트를 패키징 하기 전에 패키징 세팅을 진행합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/project-section-of-the-unreal-engine-project-settings?application_version=5.3 언리얼 엔진 프로젝트 세팅의 프로젝트 섹션 | 언리얼 엔진 5.4 문서 | Epic Developer Community언리얼 엔진 프로젝트 세팅의 프로젝트 섹션에 대한 레퍼런스입니다.dev.epicgames.com  ▣ Packaging메뉴에서 Build Configuration을 Shipping으로 세팅합니다.  ▣ 빌드 환경설정(Build Configuration) 프로젝트가 패키징 된 빌드 환.. 2024. 5. 30.
언리얼엔진5 Launch URL ▣ cpp에서 #include "Kismet/KismetSystemLibrary.h"를 추가합니다.  ▣ 그리고 UKismetSystemLibrary::LaunchURL("https://makerejoicegames.tistory.com/"); 함수에 URL을 문자열 형식으로 매개변수에 넣고 컴파일 저장 후에 플레이를 하면 해당 함수를 호출하면 URL이 나오게 됩니다.   ▣ 블루프린트에서는 바로 Launch URL 노드를 검색하여 사용하시면 됩니다.  https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Utilities/Platform/LaunchURL/ Launch URLLaunch URLdocs.unrealengine.com 2024. 5. 30.
언리얼엔진5 Stealth Animation System ▣ 먼저 Stealth 공격, 죽음 애니메이션을 Import 합니다.   ▣ 플레이어 블루프린트에서 SkeletalMesh를 추가하고 Animation Mode를 Asset으로 지정한 다음에 기본 애니메이션으로 지정합니다.   ▣ 그리고 위치와 회전값을 변경하고 Hidden in Game을 체크하여 안 보이게 합니다.     ▣ 그리고 키를 누르면 BoxTrance를 쏘고 해당 Actor가 Zombie라면 해당 Actor를 숨기고 플레이어 애니메이션 재생하면서 SkeletalMesh를 다시 보이게 하고 애니메이션을 재생하는 노드를 완성합니다.   ▣ 그리고 해당 좀비 Actor를 배치하고  ▣ 가까이 가서 키를 누르면 애니메이션이 재생되는 걸 확인할 수 있습니다. 2024. 5. 28.
언리얼엔진5 c++ UFunction ▣ 헤더파일에서 UFUNCTION 키워드로 함수를 선언합니다.  ▣ BlueprintCallable 이 함수는 블루프린트 또는 레벨 블루프린트 그래프에서 실행할 수 있습니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/ufunctions-in-unreal-engine?application_version=5.3 언리얼 엔진의 U Functions | 언리얼 엔진 5.4 문서 | Epic Developer Community게임플레이 클래스용 함수 생성 및 구현에 대한 개요입니다.dev.epicgames.com  ▣ cpp파일에서 함수를 정의합니다.    ▣ 컴파일 후 해당 블루프린트에서 함수를 검색하면 Category에 해당 함수가 있습니다. .. 2024. 5. 28.
언리얼엔진5 c++ Aim ▣ 먼저 Rotator 값을 저장할 변수를 선언합니다.  ▣ cpp로가서 DeltaRotator함수를 사용하기 위해 헤더를 추가합니다.    ▣ 위에 블루프린트 이미지처럼 c++ cpp에서 Owner에 접근하여 Rotation()을 가져와서 DeltaRotator함수로 계산한 다음 DeltaRotator에 값을 반환하고 AimRotator에 회전값 기준에 맞게 값을 대입합니다.  ▣ 애니메이션 블루프린트에서 Transform Bone을 추가하고 Aim Rotator 연결하고 Bone과 Rotation Mode를 설정합니다.   ▣ 컴파일 저장 후 마우스 위아래를 회전하면서 확인합니다. 2024. 5. 26.
언리얼엔진5 BuzzingSound ▣ 먼저 BuzzingSound를 다운로드하여 Content에 Import 합니다.    ▣ Audio에서 Sound Attenuation을 생성하고 Falloff Distance 값을 조절합니다.  ▣ Sound Attenuation는 소리 감쇠를 조절합니다.  ▣ 이 섹션에서는 청취자가 사운드에서 멀어짐에 따라 사운드 볼륨이 어떻게 감소(감쇠)하는지 정의합니다. 사운드의 볼륨은 감쇠 모양의 내부 영역 내에서 최대가 됩니다. 청취자가 이 내부 영역에서 멀어지면 사운드 볼륨이 감소하여 외부 영역 경계에서 최소 볼륨에 도달합니다. 거리에 따른 감쇠율은 감쇠 함수에 의해 결정됩니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/sound-atte.. 2024. 5. 24.