본문 바로가기

카테고리 없음

#3. 언리얼 퀘스트창 만들기

take 1. 유저 인터페이스로 가서 위젯 블루프린트를 만들어준다.

take 1

나는 위젯의 이름을 Quest_Widget으로 만들었다.

take 2. 위젯을 꾸미는 것은 각자의 취향이지만 나의 경우는 Verical Box를 넣고 그 위로 텍스트를 배치하고

            텍스트 사이는 spacer를 사용하여 공간을 띄웠다.  

            피벗을 이용하여 꾸며도 되고 디자인은 취향에 따라.

take 2

take 3. 텍스트를 입력하는 곳을 찾아서 bind를 눌러 Creat Bingding을 한다.

            그곳에 쓴 텍스트는 어차피 없어 질거라서 아무말 대잔치라고 썼다. 입력을 안해도 된다.

take 3

take 4. 바인드로 만들어진 함수의 이름을 Quest1로 바꾸고 노드를 다음과 같이 연결.

take 4

take 5. 레벨 블루프린트를 열고 다음과 같이 연결해 준다.

            일단 먼저 키보드 L을 이용해서 입력을 받았고 FlipFlop을 이용하여 On/Off 기능을 할 수 있게 했다.

            즉, 먼저 한번 누르면 A가 실행.   한번 더 누르면 B를 실행

        5-1. 위젯 생성(create widget)을 하여 class에는 Quest_Widget을 넣어주고 Owning player에는 get player controller를

               불러와서 연결 하였다.

        5-2. Return Value에서 핀을 끌어와 변수로 승격(컨텍스트 체크를 해주어야만 나옴) 하고 add to view로 화면에 출력.

        5-3. 왼쪽 편에 만들어진 변수에서 방금 만들어진 변수를 Set으로 가져와서 다시 Get으로 가져와 연결.

        5-4. Remove from Parent로 뷰포트를 제거

take 5

 

여기까지 하면 일단 화면에 창은 출력 된다.

하지만 조건을 완수하여 창을 변화 시켜야 퀘스트 창이라고 할 수 있는 법.

기능을 조금 더 추가해 보자.

take 6. 간단한 미션 수행을 위해 (1.계단으로 이동) 블루프린트를 액터의 상속을 받아 만들고 BP_NextArea라고 했다.

            그리고 Add Component로 박스 콜리전만 덩그라니 두었다.

        6-1. 이벤트 그래프를 열고 좌측에 있는 박스 콜리전(Trigger로 이름을 변경하였다.)에 이벤트 추가로 OnComponent

               BeginOver을 만들고 actor has tag를 ohter Actor에 연결 (자신의 케릭터에 tag를 Player로 지정해줘야 한다)

               왼쪽에서 bool형 변수를 하나 만들어주고 Mission Clear 라고 해주었다.

               그리고 다음과 같이 연결.

take 6
take 6-1

나의 경우는 조금 더 기능을 추가 했다.  미션에 위젯을 추가 하고 계단이라는 글자를 띄우는 것.

이것은 퀘스트창과 관계 없기에 설명은 생략 하기로 한다.

 

take 7. 다시 Quest_Widget으로 가서 다음과 같이 바꿔준다.

           get actor of class를 만들고 Act class에 BP_NextArea를 넣는다. 

           return value에서 핀을 끌어 get Mission Clear를 불러온다음 branch에 연결.

           return node를 복사하여 텍스트를 다음과 같이 바꾼다.

take 7

take 8. 계단위 적당한 위치에 BP_NextArea를 배치.

take 8

Ending Scene. 

ending 1

 

ending 2