블루프린트에 점차 적응이 된 것 같다. 대충 언리얼과도 친해진 것 같다. 무엇을 배웠나 1. 입사각, 반사각 이용 Lazer Reflection 구현해보기. 2. 제작한 블루프린트 클래스를 상속받아서 자식 클래스 생성 BP_Bullet 클래스를 만들고, 상속받아서 캐릭터를 쫓아가는 BP_Bullet_Follow 클래스를 제작하기. 3. 카메라 무빙 게임이 끝나면 서서히 움직이는 카메라 뷰. 4. Game UI. 현재 점수 Text, 최고 점수 Text 등을 게임 화면에 표시. UI가 나타날 때에는 마우스 커서 보이게 하기. 5. Local에 게임 데이터 저장. 최고 점수를 저장함. 배우면서 따라 만든 예제들. 총알 피하기..? 배운 것들을 이용해서 만든 작업물 1주차 때 배운 것들도 최대한 이용해보려고 ..
C++로 프로젝트를 만들기 전에 언리얼 입문용으로 블루프린트를 먼저 배웠다. 무엇을 배웠나 블루프린트 입문이지만, 언리얼도 거의 입문 상태라서 예제들을 만들어보면서 배웠다. 1. 오브젝트와의 상호작용 ex) 버튼을 누르면 연결되어있는 오브젝트에 신호를 보낸다. (문을 연결해놓으면 문이 열리고, 전등을 연결해놓으면 전등이 켜지고. 등등) 2. 타임라인 노드 ex) 문이 서서히 열리고 닫힌다. 3. Physics Handle 컴포넌트 ex) 박스 오브젝트를 그랩하기. 일주일의 마지막인 금요일에는 월화수목 동안 배웠던 것들을 적용해서 간단한 게임을 제작해보는 시간을 가진다. 배운 것들을 이용해서 만든 작업물 나는 간단한 퍼즐게임을 만들어보았다. 만들면서 포탈 게임이 생각났다. 현재는 2주차가 끝났지만, 1주차..
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. Laser Reflection을 제작해보면서 입사각, 반사각이 사용되었다. 입사각에 대한 반사각을 구해보자. 일단 첫번째 레이저를 쏴 본다. 부딪치면, 첫번째 레이저(입사각)에 대한 반사각을 구한다. 초록색은 이미 한번 충돌이 일어난 LineTrace을 뜻한다. 반사각에 해당하는 레이저가 초록색인 원인을 알아보니, 반사각의 시작지점에서 오브젝트와 충돌이 난 것이다. 1만큼 떨어지게 해서 충돌체크가 일어나지 않게 하자. (반사각의 벡터가 단위벡터라서 길이가 1이다.) 이렇게 충돌충돌하면서 레이저를 제작하면 된다. 부딪히지 않을 때까지 반사각을 계속 구하면 되니까 재귀함수를 쓰면 편하다. 재귀함수를 돌면서, 부딪힌 곳들을을 배열에 담아놓고 배..
World Position 노드 현재 픽셀의 월드 스페이스 위치를 출력하는 표현식입니다. 개념 설명은 언리얼 문서가 정확하다. https://docs.unrealengine.com/ko/RenderingAndGraphics/Materials/ExpressionReference/Coordinates/index.html Coordinates 표현식 텍스처 좌표나 텍스처 좌표를 수정 또는 그 자체로 사용할 수 있는 출력값에 어떠한 작업을 하는 표현식입니다. docs.unrealengine.com 일단 기본 노드만 연결시켜보았다. 큐브 좌표는 0,0,0 이다. 너무 밝아서 구분을 못하겠다. 베이스 컬러로 바꾸었다. 아직까지는 색을 보면 RGB값으로 보이지 않아서, 천천히 RGB값을 구해보았다. X축 방향으로는 ..
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. Physics Handle 컴포넌트 이 컴포넌트를 이용하면 오브젝트를 Grab하고 있을 수 있다. 자세한 내용은 언리얼 문서로 ㄱㄱ. https://docs.unrealengine.com/en-US/BlueprintAPI/Physics/Components/PhysicsHandle/index.html Physics Handle Physics Handle docs.unrealengine.com Physics Handle 컴포넌트 사용해보기 우선 1인칭 템플릿으로 프로젝트를 생성하고, 캐릭터 블루프린트 창을 연다. Physics Handle 컴포넌트를 추가한다. 앞의 오브젝트를 잡아야하니까 일단 앞에 존재하는 오브젝트를 얻어와야한다. 밑의 예제..
이 게시글은 움짤이 있습니다. 데이터가 많이 나갈 수도 있습니다. Screen Position 노드 현재 렌더링되고 있는 픽셀의 화면 공간 위치를 출력하는 표현식입니다. 개념 설명은 언리얼 문서가 정확하다. https://docs.unrealengine.com/ko/RenderingAndGraphics/Materials/ExpressionReference/Coordinates/index.html?utm_source=editor&utm_medium=docs&utm_campaign=rich_tooltips#screenposition Coordinates 표현식 텍스처 좌표나 텍스처 좌표를 수정 또는 그 자체로 사용할 수 있는 출력값에 어떠한 작업을 하는 표현식입니다. docs.unrealengine.com ..
TimeLine 노드 타임라인 노드는 간단한 애니메이션을 제작할 때 사용된다. (문이 스르륵 열리거나, 빛이 서서히 켜지는 등) 역시 자세한 설명은 문서를 참고하는 것이 제일 정확하다. docs.unrealengine.com/ko/ProgrammingAndScripting/Blueprints/UserGuide/Timelines/index.html 타임라인 언리얼 엔진 4 블루프린트의 타임라인에 대한 개요서입니다. docs.unrealengine.com TimeLine 노드, 트랙 생성 타임라인 노드를 추가한다. 노드를 더블클릭하면 창이 뜨는데, 트랙을 생성하자. 트랙 종류가 여러가지인데, 나는 하나의 값만을 필요로 하기 때문에 float 트랙을 생성했다. 트랙을 만들고 이름을 설정한다. 설정하게 되면, ..
머터리얼 파라미터 값을 변경하는 것은 자주 쓰이는 것 같다. 오브젝트의 색이 변하거나, 오브젝트의 투명도를 조절하거나 등등 머터리얼 값을 파라미터로 설정한다 머터리얼에 값을 사용할 때는 Constant 관련 노드, Parameter 관련 노드를 사용할 수 있다. 정해져있는 고정 값이면 Constant 노드를 사용한다. Constant 노드는 외부에서 접근해서 변경할 수 없다. 이미 만들어져있는 Constant 노드를 우클릭해서 Parameter 노드로 변환할 수 있다. 값 변화를 주고 싶다면 Parameter 노드를 사용한다. Parameter 노드는 Name을 가지고, 값을 변화할 때의 최솟값과 최댓값을 지정할 수 있다. 머터리얼 인스턴스를 생성하고, 변수에 저장 파라미터의 값을 변경할 때는 독립적이라..