Radial Blur를 만들어서 파라미터로 블러 값을 조절하려고했다.

 

그래서 내가 위에서 설정한 블러 값을[ ex) 0.432 ] 처음에 불러와서 블러값의 최대치로 사용하려고 Get을 찾았다.

뭐 SetScalarParameterValue함수도 있으니 당연히 바로 받는 Get도 있을거라 생각했는데 없었다.. =~=

 

 

클래스들을 찾아보니 파라미터값을 받는 함수들은 모두 MaterialParameterCollection이란거를 사용했다.

보통 머터리얼을 에디터에서 조작하기때문에 같이 쉽게 조정하려고 에디터상에서 만들어준다

 

 

그래서 이렇게 디폴트 값을 정의 해준다

 

 

MaxBlur 노드가 MaterialParameterCollection노드이다.

그래서 맥스값과 같이 0 ~ 1까지의 값을 곱하여 사용하기로 했다.

 

 

#include "Materials/MaterialParameterCollection.h" 를 include해주고

생성자에서 이런 식으로 값을 가져왔다 =~=

 

 

현재 구현하고 있는 Wall run은 Character movement mode를 Flying으로 설정하여 사용하고 있고

Wall run중에 땅에 닿으면 자동으로 해제를 하려고 했다.

 

기존에 착지 이벤트를 Landed를 override하여 사용하고 있어서

자동으로 되겠거니 했는데 안타깝게도

Flying모드에서는 Landed가 호출이 되지 않더라 =~=;;

 

Trace를 사용하여 하는 방법이 있겠지만 뭔가 따로 Trace를 쓰지 않는 섹시한 방법이 있지 않을까? 했다..

그래서 CharacterMovement를 보던 중에 뭔가 그럴듯한 함수가 있었다

 

CharacterMovement에 있는 FindFloor함수를 사용한다.

Capsule에 collision이 켜져있지 않으면 의미없다고 한다

 


ACharacter를 상속받은 클래스에서의 사용

첫번째 매개변수는 캡슐의 위치를 넣는다고 하는데 나는 캐릭터에 붙어있는 캡슐의 위치를 원하니까

GetActorLocation과 같은 위치이기 때문에 GetActorLocation를 넣어주었다.

 

두번째는 결과값이 담기는 구조체

 

세번째는 마지막 테스트 값을 사용할수있다 인데  아직은 잘 모르겠다.

 

IsNearlyZero의 0.007f는 Wall run중에 바닥에 닿으면 0.005정도 오차가 있었기에 0.007로 오차허용을 해주었다.

 


Wall run중에 깔끔하게 지면으로 내려간다 =~=

 

말그대로 사용자의 지정 축을 만들 수 있는 기능이다.

 

  • C++

FRotator UKismetMathLibrary::MakeRotationFromAxes(FVector Forward, FVector Right, FVector Up)

 

각 매개변수 Forward, Right, Up 벡터를 넣으면 하나의 축을 만들어 FRotator형으로 반환해준다.

 

  • Blueprint


나의 사용처

 

현재 벽에서 뛰어다닐 수 있는 기능을 구현중인데

WASD로 벽에서 자연스럽게 움직이려면

trace로 충돌한 벽의 hitResult에 Normal값을 Up vector (벽에 수직방향)

카메라가 바라보는 방향을 벽에 붙여 Forward vector으로 하나의 축을 만들어야했다.

 

그래서 위의 함수를 사용했다.

 

Forward와 Up은 위의 설명대로 넣었고 Right 같은경우에는 외적을 이용하면 바로 나온다.

 

더 응용하는 법은 밑 처럼 FVector UKismetMathLibrary::Get ??? Vector( FRotator) 을 이용하면 된다.

 

밑은 위의 함수로 만든 하나의 축을 arrow로 디버깅했다.

Yellow(forward ) / red(right) / up(blue)

 

이전 글과 이어진다

 

저 뾰족한 부위를 없애기 위해 필요한 과정이 이전 글,

 

위사진의 액터는[위에서 원뿔 두개 합친것] 빈 액터에 

 

컴포넌트 추가를 해서 원뿔 두개를 이용해 만들었다

 

합치고싶은 원하는 액터를 선택해준다

 

하나의 액터안에 두가지 메시 컴포넌트(원뿔)가 자동으로 선택이 되어지는듯 하다

뭐 혹은

 

이렇게 해도 되는듯 하다

 

그후 액터병합을 실행할건데 나는 단축키를 설정해서 바로 들어갔다

 

검색창에 액터 병합치면 나온다

혹은 이렇게 들어가도 된다

 

 

 

들어가면 이런 창이 나오는데 바로 액터 병합 버튼을 눌러서 저장하고 싶은 곳에 저장하자

 

 

저장이 완료 되면 저장한 파일에 우리가 만든 스태틱메시가 있을것이다

 

 

이렇게 합쳐진걸 저번글에 있었던 것처럼 스태틱 메시 에디터로 들어가서 삭제를 해주었다

 

삭제 과정

 

이제 저장하고 나가보면 완성된 스태틱 메시가 있다

 

 

만들어진 화톳불들

 

목적 달성  ~_~

 

 

언리얼의 가이드를 따라하다가

 

요 모양에서 저 뾰족한부분을 깎고 싶어서 요리조리 검색하다

 

스태틱 메시 에디터 라는걸 발견!

 

근데 가이드에 있는 

 

저 Mesh Editing이 없었다

맨날 나만 없어

 

결론은 플러그인 적용 문제였다

 

 

 

검색창에 Ploygon 검색하면 바로 하나 나온다

 

저 플러그인을 활성화 시키면 재시작하라고하는데 재시작해주자

 

재시작후 아무 스태틱 메시를 가져오고 눌러주면 이렇게 노란 테두리가 되는데

 

 

 

이 상태에서 Ctrl + E 눌러주면 스태틱 메시 에디터 창이 나오고

 

원하던 메시 편집창이 등장했다

 

 

 

편집모드를 눌러야 편집이 가능하다

 

버텍스 추가 같은건 아마 안되는듯 싶다

 

삭제를 해보았다

 

ㅋㅋㅋ아마 안에가 안보이는건 뒷면은 랜더링을 안해서 그런듯

 

 

저장하고 나오면 잘 적용되어있다

 

 

 

이 스태틱 메시 파일자체를 바꿔버린거라 이후에 가져온 모델들도 적용되어 나온다

 

 

근데 이게 지금 버전은 다른 이름으로 저장을해도 원본까지 같이 저장되어버린다

버그인가;;

 

그래서 나는 뭣모르고 저장했다가 원뿔의 원형을 다시 가져올수없게 되었다ㅋㅋㅋ

 

앞으로는 복사본을 만들어서 편집하려한다

 

방법은 스태틱 메시를 선택후 Ctrl + B 를하면 밑의 사진처럼 어떤 파일에 있는지 검색해준다

 

 

 

그 후 나온걸 누르고 ctrl+c ctrl+v 해서 복사본 만든다음 밑에처럼 바로 편집들어가면 될거같다

 

 

 

아무튼 이번 글의 주제인 편집 탭 생성 완료 ~_~

+ Recent posts