분류 전체보기
[UE] 총알 발사 구현하기
[UE] 총알 발사 구현하기
2023.03.22언리얼 엔진에서 3인칭 슈팅 게임(TPS) 총알 발사를 구현하려면 무기 만들기, 총알 생성, 총알 구성, 충돌 돌처리, 대미지 적용, 시각 효과 추가하기 등의 과정이 필요하다. 언리얼 엔진에서 TPS 총알 발사를 구현하려면 블루프린트, 애니메이션 및 물리 시뮬레이션의 조합이 필요하다. 올바른 설정을 통해 플레이어가 게임에 계속 몰입할 수 있는 현실적이고 매력적인 슈팅 경험을 만들 수 있다. 목차 총알 발사 구현하기 언리얼 엔진에서 3인칭 슈팅 게임(TPS) 총알 발사를 구현하려면 다음과 같은 여러 단계가 필요하다. 무기 만들기: 먼저 무기용 메시와 총알이 생성되는 소켓이 포함된 무기 청사진을 만들어야 한다. 청사진에 발사 애니메이션과 음향 효과도 추가해야 한다.총알 생성: 플레이어가 무기를 발사할..
[UE] Hand IK, AnimInstance, Fire
[UE] Hand IK, AnimInstance, Fire
2023.03.21Unreal Engine 4의 Hand IK(Inverse Kinematics)는 캐릭터의 가상 손이 사실적인 방식으로 환경 및 개체와 상호 작용할 수 있도록 하는 기능이다. 대상 개체의 위치와 방향을 기반으로 캐릭터 손의 위치와 방향을 계산하여 작동한다. 언리얼 엔진 4에서 Hand IK를 사용하려면 스켈레탈 메시가 있는 캐릭터와 손 애니메이션이 포함된 애니메이션 세트가 있어야 한다. Hand IK 시스템은 애니메이션 데이터를 사용하여 캐릭터 손의 위치와 방향을 실시간으로 계산한다. 목차 Weapon Unreal Engine 4의 Hand IK(Inverse Kinematics)는 캐릭터의 가상 손이 사실적인 방식으로 환경 및 개체와 상호 작용할 수 있도록 하는 기능이다. 대상 개체의 위치와 방향..
[DirectX11] 078~79 Point Lighting, HLSL [flatten] [branch]
[DirectX11] 078~79 Point Lighting, HLSL [flatten] [branch]
2023.03.21DirectX 11에서 Point Light를 사용하기 위해서는 먼저 씬에서 조명을 설정하고 빛을 발산하는 위치를 지정해야 한다. 이 위치는 3D 공간에서 벡터로 표시된다. 그 다음 셰이더 프로그램에서 Point Light를 처리할 수 있는 코드를 작성해야 한다. 일반적으로 Point Light를 처리하기 위해 사용되는 기술은 Phong Lighting 모델이다. 목차 Lighting Shader Light.fx Lighting.fx PointLighting.fx Framework Renders PerFrame .cpp Shader Lighting PointLightingDemo.h .cpp Point Light DirectX 11에서 Point Light를 사용하기 위해서는 먼저 씬에서 조명을 설정하고..
[Unreal] UProperty
[Unreal] UProperty
2023.03.20객체지향에서 설계상 용어로 멤버변수는 Property, 함수는 Method라고 부른다. 목차 Reflection Reflection이란? 언리얼엔진에서 Reflection이란 용어는 '프로그램이 실행시간에 자기 자신을 조사하는 기능'을 말한다. C++은 Reflection 기능이 없다. 언리얼엔진은 자체적으로 만든 Reflection 기능을 제공한다. 언리얼엔진의 Reflection을 활용하면 '열거형(UENUM), 구조체(USTRUCT), 클래스(UCLASS), 함수(UFUNCTION), 멤버 변수' 등을 컴파일 시 뿐만 아니라 런타임 시간에 수집된 정보에 접근할 수 있다. 이러한 Reflection 기능을 언리얼엔진은 PROPERTY라고 부른다. Reflection의 작동원리 PROPERTY Prop..
[Unreal] TSubClassOf
[Unreal] TSubClassOf
2023.03.20TSubclassOf는 언리얼엔진에서 사용되는 C++ 템플릿 클래스이다. 이 클래스는 다른 클래스를 가리키는 UClass 포인터를 저장하며, 해당 클래스의 하위 클래스만을 가리킬 수 있다. TSubclassOf는 클래스 타입을 인자로 받는 함수의 파라미터로 많이 사용된다. 목차 TSubClassOf TSubClassOf TSubclassOf는 언리얼엔진에서 사용되는 C++ 템플릿 클래스이다. 이 클래스는 다른 클래스를 가리키는 UClass 포인터를 저장하며, 해당 클래스의 하위 클래스만을 가리킬 수 있다. TSubclassOf는 클래스 타입을 인자로 받는 함수의 파라미터로 많이 사용된다. 예를 들어, AActor 클래스의 파생 클래스 중 하나를 사용하여 인스턴스화할 수 있는 SpawnActor 함수를 호..
[DirectX11] 075~77 Lighting, HLSL
[DirectX11] 075~77 Lighting, HLSL
2023.03.18DirectX 11에서 Lighting을 구현하려면, HLSL(고수준 셰이더 언어)을 사용하여 셰이더 코드를 작성해야 한다. HLSL은 Direct3D에서 셰이더 프로그래밍을 위해 사용되는 언어로, 셰이더 코드를 작성하고 컴파일하여 GPU에서 실행할 수 있는 바이너리 코드로 변환한다. 목차 Lighting Lighting을 구현하는 방법은 다양하지만, 일반적으로는 Phong 또는 Blinn-Phong Lighting 모델을 사용한다. 이 모델은 ambient, diffuse, specular lighting을 사용하여 표면의 색상을 계산한다. 각각의 조명 구성 요소는 다음과 같이 계산된다. Ambient lighting float4 ambientColor = float4(0.2, 0.2, 0.2, 1.0..
[DirectX11] 074 Instancing
[DirectX11] 074 Instancing
2023.03.18글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 Instancing Shader Render.fx Global.fx Framework Meshes MeshRender.h .cpp Model ModelAnimator.h .cpp fx Render.fx Global.fx 메쉬에 적용할 color 추가 ModelAnimator ModelAnimator.h 더보기 #pragma once class ModelAnimator { public: ModelAnimator(Shader* shade..
[UE] TPS Weapon, AnimNotify, Aim
[UE] TPS Weapon, AnimNotify, Aim
2023.03.17글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 Weapon - Equip&Unequip, Aim 구현하기 Characters CAnimInstance.h .cppCPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CWeapon.h .cppCWeapon_AR4.h .cppCWeaponComponent.h .cppCGameMode.h .cppGlobal.hCAnimNotifyState_Equip.h .cpp 생성 CWeapon CW..
[Unreal] 언리얼엔진 FORCEINLINE vs. C++ inline 함수
[Unreal] 언리얼엔진 FORCEINLINE vs. C++ inline 함수
2023.03.16FORCEINLINE을 사용하면 인라인 함수로 선언된 코드가 매번 복사되어 컴파일된다. 이것은 코드의 크기가 증가하더라도 실행 속도를 높일 수 있다는 장점이 있다. 하지만 FORCEINLINE은 코드의 크기를 더욱 증가시키므로, 잘못 사용하면 코드의 크기가 커지고, 따라서 실행 속도가 느려질 수도 있다. 따라서 FORCEINLINE을 사용할 때에는 신중하게 선택해야 한다. 목차 언리얼엔진 FORCEINLINE vs. C++ inline 함수 C++의 inline 함수 C++에서의 inline 함수는 함수 호출 대신에 함수 내용을 호출한 곳에 직접 삽입함으로써 실행 속도를 높이는 방법이다. 함수를 inline으로 선언하면 컴파일러는 함수 호출 대신 함수 내용을 호출한 곳에 삽입한다. 이렇게 하면 함수 호출..
[UE] TPS Weapon - Weapon Framework 짜기
[UE] TPS Weapon - Weapon Framework 짜기
2023.03.16목차 Weapon - Framework 짜기 Characters CAnimInstance.h .cppCPlayer.h .cppUtilities CHelpers.hCLog.h .cppWeapons CWeapon.h .cpp 생성CWeapon_AR4.h .cpp 생성CWeaponComponent.h .cpp 생성CGameMode.h .cppGlobal.h https://designerd.tistory.com/entry/Unreal-20230111-10%EA%B0%95-%EB%AC%B4%EA%B8%B0%EA%B4%80%EB%A6%AC [Unreal] (2023.01.11) 10강 - 무기관리목차 무기 관리 BP: Blueprint Class BS: Blend Space ABP: Animation B..
[DirectX11] 071~73 Get MultiBones
[DirectX11] 071~73 Get MultiBones
2023.03.15DirectX 11에서 Multibones는 스켈레탈 애니메이션을 구현하는 데 사용되는 기술이다. 스켈레탈 애니메이션은 3D 모델의 뼈대와 관련된 것으로, 모델이 움직이는 동안 뼈대가 움직이며 모델을 변형시킨다. Multibones는 여러 개의 뼈대를 사용하여 더욱 자연스러운 애니메이션을 만들어낸다. 이를 통해 모델의 각 부분에 대해 다양한 뼈대를 지정할 수 있으며, 더 복잡한 동작을 만들어낼 수 있다. 목차 Get Multibones DirectX 11에서 Multibones는 스켈레탈 애니메이션을 구현하는 데 사용되는 기술이다. 스켈레탈 애니메이션은 3D 모델의 뼈대와 관련된 것으로, 모델이 움직이는 동안 뼈대가 움직이며 모델을 변형시킨다. Multibones는 여러 개의 뼈대를 사용하여 더욱 자연스..
[UE] Line Trace, Multi Trace, TPS 기본 세팅
[UE] Line Trace, Multi Trace, TPS 기본 세팅
2023.03.15목차 Line Trace 01_Spawn C01_Properties.h .cppC02_MeshC02_Mesh_SphereC02_Mesh_ConeC03_Spawner.h .cpp02_Profiler C01_Log.h .cppC02_DrawDebug.h .cpp03_Collision C01_ActorOverlap.h .cppC02_ComponentOverlap.h .cppC03_OverlapAndHit.h .cpp C04_Trigger.h .cppC04_Light.h .cpp C05_MultiTrigger.h .cpp C05_FallingBox.h .cpp C05_SpotLight.h .cpp C06_EventTrigger.h .cpp C06_Explosion.h .cpp C07_Override.h ...