본문 바로가기

블루프린팅/2. 블루프린트 프로그래밍

(14)          글쓰기    
[2.블루프린트연습] 특정한 클래스와의 충돌만 인식하기 이전 프로젝트를 실행해보면 충돌후에도 BP_Target 클래스는 Player와도 충돌이 된다. 이번에는 Player와 충돌했을때만 블루프린트가 작동해 점프동작이 되도록 하겠다. 액터가 충돌시 Event ActorBeginOverlap 이벤트가 발생된다 그 뒤에 Cast To_ThirdPersonCharacter를 거쳐 Add Velocity Change Impuse와 연결해주면 점프 동작은 플레이어와 충돌시만 일어난다. Cast To_ThirdPersonCharacter노드의 Cast Failed는 충돌된 클래스가 ThirdPersonCharacter가 아닐 경우의 처리의 실행출력이다. 간단하지만 아주 유용한 팁이다.
[2.블루프린트연습] 캐릭터 천천히 따라다니게하기 이전과 비슷하게 BP_QMark에서 작업한다. 기존 블루프린트를 그대로 사용한다. 블루프린트 에디터를 열어 이벤트그래프를 좀 수정해야한다. 현재는 캐릭터의 위치를 그대로 BP_QMark에 카피해주었는데 BP_QMark에서 캐릭터까지의 벡터를 이용해 조금씩 더해주겠다. 그럼 천천히 따라가는 효과가 난다. 이런것을 해주는 보간함수가 있지만 여기서는 기본 기능을 이용해 노가다로 만들어 보겠다. 아는게 이것밖에 없어서 ㅎㅎ 일단 Get Actor Location과 Set Actor Location사이의 연결을 끊어낸다 ALT+클릭으로 하면된다. 왼쪽 Get Actor Location출력위를 우클릭하고 Recombine Struct Pin을 클릭해서 출력을 벡터로 되돌린다. 반대편 Set Location도 같이 ..
[2.블루프린트연습] 캐릭터 따라다니게하기 현재 우리는 삼인칭캐릭터 템플릿을 사용하고 있다. 삼인칭텔플릿은 카메라가 뒤에서 따라다니고 일인칭은 카메라가 캐릭터 눈쯤에 위치해 있다. 실제 일인칭템플릿으로 프로젝트를 만들면 몸통과 다리가 없는 캐릭터가 들어있다. 보이지 않으므로. 이러한 효과는 레벨을 찍는 카메라의 위치 설정을 캐릭터의 어떤 부분으로 할것인지에 따라 쉽게 변경이 가능하다. C를 누르면 카메라를 이동시키고 싶었는데 아직 키입력 매핑 방법을 잘 몰라 그냥 시작시 퀘스천마크가 플레이어 머리위를 따라다니는 것으로 대치하려고 한다. 우선 컨텐트드로워에서 +Add를 누르고 블루프린트클래스>Actor를 만들고 이름을 BP_QMark로 한다. 에디터가 열리면 컴포넌츠 +Add를 누르고 StaticMesh를 추가한다. 디테일에서 StaticMesh를..
[2.블루프린트연습] 액터 이동시키기 이제 BP_Cube를 움직이게 해보자. 이전 채터에서 연습했던 홀수 합구하기 노드들을 지울수도 있지만 함수를 만들어 저장해 놓겠다. MyBluePrint>Functions 옆 +를 누르고 OddSum 이라고 이름을 변경하자. 다시 이벤트 그래프로 돌아와 맨 왼쪽 Event BeginPlay만 빼고 다 선택한 다 선택후 Ctrl-X로 잘라내기 하고 OddPrint 탭을 눌러 Ctrl-V로 붙여주고 맨 왼쪽에 OddPrint 노드를 연결해준다. 이제 EventGraph로 돌아와 방금만든 함수 OddPrint를 끌어다 놓고 Event BeginPlay와 연결해주고 플레이해보면 잘된다. SaveAll해주고 연결했던 OddPrint 노드는 지워준다. 에디터 오른쪽 밑을 보면 *Unsaved를 누르면 된다. 그래프..
[2.블루프린트연습] Print "Hello" 레벨에디터의 오른쪽 Outliner에서 BP_Cube를 선택하고 오른쪽 Edit BP_Cube를 클릭해 블루프린트 에디터를 연다 블루프린트 에디터의 이벤트그래프창에 3개의 이벤트가 비활성화 되어 있다. BeginPlay : 플레이버튼을 클릭하면 발생하는 이벤트 ActorBeginOverlap : 다른 Actor와 겹치면 발생하는 이벤트 EventTick : 시계 이벤트(일정시간마다 반복적으로 발생함) 이벤트그래프 빈곳에 우클릭하면 컨텍스트메뉴창이 뜬다. 여러가지 기능을 담당하는 노드를 찾아서 추가할 수 있다. print를 입력하고 Print String를 선택한다. 그럼 Print Text노드가 삽입되고 확장화살표를 눌러 펼치후 Duration을 10초 변경후 BeginPlay의 출력핀과 연결한다. 연결..
[2.블루프린트연습] 액터 만들기, 배치 연습을 위해 기존 프로젝트에 새로운 레벨을 만들겠습니다. New Level은 Basic으로 하겠습니다. (기존 프로젝트는 삼인칭입니다.) 플레이해보면 Floor위에 아무것도 없는데 캐릭터가 나타납니다. 그냥 이대로 작업하셔도 되지만 플레이어 캐릭터를 표시해 보겠습니다. 좌측아래 ContentDrawer를 열어 ThirPerson>Blueprints폴더에서 BP_ThirdPersonCharacter를 끌어다 뷰포트에 배치합니다. 위치를 리셋하고 X위치를 -500으로 설정합니다. Detail Panel에서 Pawn 을 찾아 Auto Possess Player를 Player 0로 설정하면 앞으로 플레이시 지금의 액터가 플레이어로 시작됩니다. 좌측하단 컨텐트드로워를 열어 블루프린트 폴더를 만들고 들어갑니다. 좌..
[2.블루프린트연습] ThirdPersonCharater로 시작하기 ThirdPersonCharater로 시작하기 플레이 해보면 캐릭터가 잘 보이지만 에디터 모드에서는 보이지 않는다. 따라서 이제부터 보이게 해보겠다. 1. 컨텐트드러워의 ThirdPerson>Blueprints폴더의 BP_ThirdPersonCharacter를 끌어다 놓는다. End키를 눌러 바닥에 배치시킨다. 2. 이대로 플레이하면 컨트롤이 안되는 인형이므로 이제부터 컨트롤이 되게 해보겠다 디테일에서 Auto로 검색해서 Pawn카테고리의 Auto Possess Player를 Disble에서 Player0로 변경한다. 이제 플레이 해보면 배치된 캐릭터로 부터 시작된다. 유령처럼 나타나던 플레이어도 사라진다. 3. ALT+좌클릭후 뷰포트를 아래와 같이 회전 시키고 캐릭터 x위치를 -500으로 뒤로 배치시킨..
[2.블루프린트연습] 1 CubeGrid 생성하기 블로그를 작성하다 너무 어려워서 블루프린트 기초를 한번 정리해보려고 한다. 문제는 기초 강좌가 잘 없다 ㅠㅠ. 1. 일단 블루프린트 연습용 프로젝트를 삼인칭 템플릿으로 적당히 만들자. 2. Play해보면 안보이는 캐릭터가 갑자기 나타난다 놀라지 말자. Outliner패널에 보면 BP_ThirdPersonCharacter 블루프린트에서 만들어진 인스턴스이다. 씬뷰에 마우스를 클릭하면 WASD키로 이동할수 있고 마우스로 방향을 돌릴수 있다. 3. Block폴더 안에 Actor들을 다 지운다. 레벨의 배경을 다 지우고, PlayerStart는 남겨둔다. 4. 다음 작업을 위해 SM_SkySphere를 눈을 클릭해 눈꺼플로 만들어준다. Outliner root(ThirdPersonMap)를 클릭해 아무것도 선택..
[블루프린트] 키보드입력 다음과 같이 키보드 이벤트 F를 입력받아 출력하는 Event Graph를 만들어 실행해봐도 키보드 입력이 안되는 경우가 발생했다. 해결을 위해서는 다음과 같이 2가지 방법이 있다. 1. Level Editor>Outliner에서 입력처리를 하는 액터를 선택하고 Detail>Input에서 Auto Receive Input을 Player0를 선택해준다. 2. 이작업을 Event Graph에서 하는 방법도 있다. Event BeginPlay에서 노드를 만들고 Enable Input연결해준다. GetPlayer Controller노드를 만들어 Enable Input의 Player Controller와 연결해준다.
함수 만들기 Function (함수)는 Blueprint 내 다른 그래프에서 실행 또는 호출 가능한 특정 Blueprint 에 속하는 노드 그래프입니다. 함수에는 하나의 입력부가 있는데, 실행 출력 핀이 하나 있는 함수 이름으로 된 노드로 표시됩니다. 이 함수가 다른 그래프에서 호출되면, 그 출력 실행 핀을 활성화시켜 연결된 네트워크가 실행되도록 합니다. 버튼을 누르면 화면에 텍스트를 출력하는 함수를 만드는 법에 대한 단계별 안내입니다. 콘텐츠 브라우저 안에서 생성 버튼을 누른 다음 블루프린트 클래스 를 선택합니다. 부모 클래스 선택 창에서 액터 를 선택합니다. 블루프린트 이름을 지은 다음 더블클릭 하여 블루프린트 에디터에서 엽니다. 그래프에 우클릭 한 다음 Event Begin Play 를 검색 추가합니다.이 노드..
[블루프린트] 매크로 만들기 Macro 매크로는 본질적으로 노드들이 접힌 그래프와 같습니다. 터널 노드로 지정된 입구와 출구가 있습니다. 각 터널은 실행 또는 데이터 핀을 몇 개든 가질 수 있으며, 이는 다른 블루프린트와 그래프에서 사용되는 매크로 노드에서 확인할 수 있습니다. 매크로 만들기 이 예제에서는 플레이어가 점프하기에 충분한 에너지를 가졌는지 아닌지 검사하는 데 사용되는 매크로 를 만들어 보겠습니다. 점프하기에 충분한 에너지가 있으면, 플레이어의 에너지를 조금 감소시킨 다음 현재 값을 화면에 출력시키고 점프를 허용합니다. 에너지가 충분치 않으면 에너지가 없다고 화면에 출력한 다음, 점프를 허용하지 않습니다. 이 예제에서는 시작용 콘텐츠 포함 된 블루프린트 삼인칭 프로젝트 를 사용합니다. Content/ThirdPersonB..
액터 레퍼런스 Set / Get 액터로의 레퍼런스를 Get / Set 하는 예제는 아래 단계를 참고하세요. 이 예제에서는 시작용 콘텐츠가 포함 된 블루프린트 삼인칭 템플릿 을 사용하고 있습니다._ 기본 탭 아래 액터 배치(Place Actors) 에서 박스 트리거 를 끌어 레벨에 놓습니다.이 트리거를 건드리면 레벨에 있는 다른 액터가 이동되도록 하겠습니다. Place Actors를 못찾아 툴바의 + Quick add the project 단추를 눌러 삽입했다 박스 트리거 의 디테일 패널에서 Convert to Class Blueprint (클래스 블루프린트로 변환)을 선택합니다.이 액터에서 블루프린트 를 만들어 그 안에 액터 레퍼런스를 저장할 변수를 할당해 주도록 하겠습니다. 블루프린트 이름을 지은 다 블루프린트 생성 을 선택합니다. ..