기본 콘텐츠로 건너뛰기

250428 카메라 셰이크 위젯

카메라 셰이크(흔들기)

LegacyCameraShake를 하나 생성한다.



Oscillation Duration : CameraShake 기간

Rot Oscillation : 회전 . 회전은 끼치는 영향이 크므로 사용을 자제하자.

Loc Oscillation : 위치 변환.

Fov Oscillation : 화각

Anim Shake : 그래프를 통한 흔들기

Amplitude : 강도 (진폭)

Frequency : 속도 (주기)



카메라 셰이크는 각 스킬, 상황 등에 따라 각각 만들어서 관리하는 편이 좋다.

UMG

위젯 변경시에 RemoveFromParent등으로 인한 오류가 발생하기 쉬우므로 주의하자.


프로젝트명.Build.cs에 "UMG"를 추가해주고 주석을 풀어주거나 추가한다.

PrivateDependencyModuleNames.AddRange(new string[] {"Slate", "SlateCore"});

그리고 Generate Visual studio project files 를 통해 플러그인이 추가된다.


헤더파일에 "Blueprint/UserWidget.h"를 추가한다.


에디터 상에서 Widget Blueprint를 추가한 후, 경로를 넣어준다.

경로 끝에 _C를 주의하자.


위젯은 플레이어가 조준할때 필요하므로 이때 생성 및 AddToViewport()를 해준다.

각 무기별로 총알을 설정해주자.
이것도 리스트나 맵등으로 관리해주면 좋긴하다.

위젯에서 새로운 무기가 추가될 때 마다 변수를 설정해줘야 하기 때문에 이를 대신한 방법으로 CurrentBulletCount를 Text와 연결해서 보여준다.
따라서 CurrentBulletCount의 값이 무기에 따라 바뀌도록 해야 한다.

현재 게임은 조준 시에 값이 전환되도록 하고 있다.
경우에 따라서는 장비 아이템을 바꿈과 동시에 표기를 바꿀 수도 있다.

조준을 해제할 때는 RemoveFromViewport로 위젯을 해제한다.

발사 시에는 총알이 0개일 경우에 대한 애니메이션이나 소리등도 추가할 것을 염두해두고, 현재의 총알 갯수를 빼주고 이를 다시 대입해준다.

총알 아이템 블루 프린트를 만들어 먹으면 총알이 추가 되도록 하자.
최대 개수가 넘으면 최대 갯수가 되도록 한다.




이 블로그의 인기 게시물

250523 PCG 2

PCG Building Volume Sampler를 사용할 경우 Voxel Size를 맞추어주자. 2m길이를 Transform Points로 Offset을 이동시켜 Difference를 통해 메쉬를 생성한다. 사용시에 Pivot의 위치가 중앙이 아니면 제대로 표현되지 않을 것이다. PCG Landscape Landscape 생성후 PCG Volume 생성. Get Landscape Data - Surface Sampler 안보인다면 Generate Surface Sampler 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 포인트 규모(Point Extents) : 서피스의 기본 그리드 셀 크기를 정의합니다. 여유(Looseness) : 변형 가능한 셀 크기를 정의합니다. 실제로 셀 크기는 포인트 규모 * (1 + 여유)입니다. 제곱미터당 포인트(Points Per Square Meter) : 유지되는 셀의 비율을 계산합니다. 이 프로퍼티는 그리드가 클 때 과잉을 제한합니다. Looseness : 기본 1. 0일경우 Extent의 길이 만큼, 1일경우 2배가 됨.  Attribute Filter를 생성하고, Material에 해당하는 Layer를 찾아서 이름을 넣어준다. Type을 Float로 하고 Float Value를 설정하면, 해당 머티리얼이 색칠된 정도 0~1에서 Operator에 의해 >(초과) 0.6초과 일 경우만 생성되게 할 수 있다. 값을 1로 하고 Equal을 이용해서 1인 경우만 생성되게 하는 것도 가능하다. plugin Water body lake를 넣으면, 이또한 Spline이라는 것을 알 수 있다. 따라서 Get Spline Data-Spline Sampler를 통해 사용할 수 있다. GetActorData와 Difference를 통해서 Lake내부를 제거해주기 PCG Mesh Mesh Sampler를 쓰기위해 Get Actor Property를 이용하면, 해당 액터가 ...

250604 저장불러오기

SaveGame 블루프린트 생성 Game Instance 생성, Init 오버라이드 AC_Inventory Save Load

250522 Physics2, PCG

Radial Force Actor Force 값을 많이 주어야함. Balloon Mass값과 PhysicsThrust를 이용하거나, Set Physics Linear Velocity를 이용하여 Z축 값을 줄 수 있다. Skeletal Physics Physics Material Friction : 마찰력. 수치가 클수록. 덜 미끄러워짐 Restritution : 복원력. 탄성계수 수치가 높을 수록 bouncy Fracture voronoi : Cluster의 숫자 Show Bone Color 해제해주기 Damage Damage Threshold의 값을 수정하는 것으로 강도 조절 가능. Chaos Cache Actor에서 Chaos Cache Manager를 생성 가능. Record 기능이 존재한다. 일단 생성하면 Chaos Cache Collection을 저장하여 사용할 수 있게된다. Cachos Cache Manager를 Simulate를 누르면 저장되고, 실행을 종료하면 그동안의 변화상황이 저장된다. 저장된 Collection을 가져와서 Sequencer의 StartTime으로 가져와 재생할 수 있다. PCG plugin Spline생성후 포인트 하나 지워 줌 우클릭으로 Spline Generation Panel, Square 생성. 처음 지점 포인트 겹쳐있을 수 있으므로 찾아서 삭제해주기 Get Spline Data => Spline Sampler D키 또는 Debug에 체크를 해주고, Dimension 설정을 해준다. On Interior의 경우, Unbounded에 체크를 하면 내부에도 생기게 된다. Static Mesh Spawner Intersection : 교차점 이 부분은 tag가 Spline과 Overlap되어 닿으면 바꾸어 준다. Difference를 이용해 그외 부분은 채워 넣는다. 길 By Class로 설정해주기 On Spline - Distance Extent Radius 설정해주기 Difference를 통해 제외하기 PCG는 A...