메뉴 바로가기 콘텐츠 바로가기
게임시작

인하우스 매직 포털 - 실내 이동과 트리거 에디터

2018년 10월 13일 오후 3시 4분 조회: 6218 프리스트Lv.83 비숍의하루

[이 글은 네이버 스마트에디터 3.0으로 작성된 글입니다. 2018년 10월 14일 오후 4시 임시 폰트수정 및 사진삽입 완료.]

[글을 보시는 여러분께 정돈되지 않은 글을 급하게 업로드하여 진심으로 죄송합니다.]


업로드 URL : https://blog.naver.com/hoevf123/221346998736



도움을 주신 분



아모쯔 (마리오 게임 하우징)
눙눙이 (전 눙눙놀이동산[바이킹, 롤러코스터] 운영자)

그 이외의 몇몇 분들을 임의로 이 글에 추가할 수 있음.




이 글은!


인하우스 매직 포털로 놀이기구를 만들 수 있음을 설명하기 위해 작성되었습니다.

실용적인 포털 사용법을 알고 싶어요!
: 이전 글인 [인하우스 매직 포털 - 월드 이동] 편을 보시면 좋겠습니다.

하우징 설계 방법을 알고 싶어요.
: 이전 글인 [인하우스 매직 포털 - 월드 이동] 편에서 레노이아 님의 하우징 소개를 참고해 보는 것이 좋습니다.
[미세 팁을 드리자면, 건축을 하기 전에 구획을 확실히 나누는 것이 건축하는 데 매우 도움이 됩니다]

놀이기구 정말로 만들어 봐도 되나요?
: 네. 상관 없어요. 저도 예전에 퀸즈 타운에서 본 워터슬라이드가 찔리기는 하지만, 놀이동산을 처음으로 경험하게 해준 눙눙이님도 상관 없다고 하실 겁니다.
[다만, 렉은.. 알아서 감당하세요]

이 글을 보면 회전목마 놀이기구를 만들 수 있나요?
: 네. 이 글은 회전목마에 필요한 타이머 설치 코드가 포함되어 있습니다.
(트리거 에디터로 타이머를 만들지 않고 회전목마를 만들면 집을 탈출해야 할 지도 모릅니다)

코딩 어렵지 않나요?
: "상태", "조건(~하면)","행동(~다)", "다른 상태로 변경됨" 만 인지할 줄 알면 누구나 쉽게 할 수 있어요. 하지만 코딩이 쉬운 만큼 노가다는 조금 하셔아 할 거에요.
(영어 장벽..이래봐야 메콩 하시는 분이라면 if, ON, OFF 뜻은 다들 알고 있을거라 믿어요..!) 

예전에 트리거 에디터를 이용하여 놀이기구를 만들어 본 적 있는데, 오랜만에 놀이기구가 있는 맵을 불러들였더니 놀이기구가 고장이 났어요. 왜 그런 걸까요?
: 집 도안에는 트리거 에디터에 저장된 내용이 저장되지 않아서 일어나는 현상이에요. 안타깝지만 놀이기구를 정상화시키려면 열심히 코딩하세요! (애도..)

저도 이 글 보고 놀이동산 만들어서 인기많은 집이 되고 싶어요!
: 눙눙이 님도 놀이동산을 지어서 스타 건축가가 된 적이 있었으니, 충분히 스타 건축가가 될 수 있습니다.. 만 그분은 3주 정도 뒤에 디자인 큐브와 인하우스 매직 포털에서 나오는 감당할 수 없는 렉으로 인해 결국 놀이동산 사업을 접었었다고 합니다. 

그리고.. 저도 인기 많아지고 싶어요...!






인하우스 매직 포털 - 실내 이동



기본 설명!

(일부 내용은 이전 페이지에서도 소개하였습니다만, 이야기하고 싶은 내용이 더 있습니다)


이 글을 통해 포털 놀이기구를 제작하실 분은 아래 기본 설명을 꼼꼼히 읽어 주세요!
아래 사진 내용을 전부 ** 않으면 오작동(고장) 또는 탈출이 가능하도록 설계실수가 발생될 수 있습니다.
꼭 읽어주세요!



경고!


인하우스 매직 포털의 과도한 사용은 렉을 매우 많이 유발할 수 있으니 가급적이면 인하우스 매직 포털사용을 적게 사용할 것을 권장합니다!
(
가급적이면 350개 이하로 사용할 것을 권장!)





인하우스 매직 포털 - 실내 이동 실습


1. 인하우스 매직 포털 - 액션 키 이동 실습 예제 : 엘리베이터


준비물 : 인하우스 매직 포털 2개

1. 원하는 위치에 인하우스 매직 포털을 2개 깔아줍니다.
   (여러 층인 경우, 3개 이상의 인하우스 매직 포털을 사용하셔도 됩니다)


2. 아래 그림과 같이 각 포털마다 다른 이름을 설정합니다.



3. 두 포털 모두에게 실내 이동 설정을 아래와 같이 해 줍시다.
[단, 1방향 이동만 허용하고 싶으면 붉은색 또는 노란색 부분만 해 주자!]



포털 엘리베이터 완성!

이용방법 : Space Bar를 이용하여 포털 작동!



2. 인하우스 매직 포털 - 터치 이동 실습 예제 : 미끄럼틀


글쓴이 주
- 미끄럼틀을 만들 줄 알면 회전목마와 바이킹을 제외한 왠만한 포털 놀이기구를 만들 수 있습니다.

준비물
인하우스 매직 포털 여러 개(무료니까 마음껏 쓰세요!), 계단 여러 개, 미끄럼틀을 표현할 자재들!
(아래 예제에서는 미끄럼틀 표현 자재로 개나리색 루디 큐브를 사용하였습니다)
그리고 여유 공간으로 가로 10블록(최소 7), 세로 1블록, 높이 3블록 (미끄럼틀 경사 가로길이 + 1) 필요!




1. 미끄럼틀 설치




건설 모드를 이용하여 자신이 원하는 미끄럼틀 모양을 만들어 봅니다.


2. 미끄러지는 부분에 인하우스 매직 포털 설치



위 사진처럼 미끄러진다고 가정하고 포털을 배치합니다.


3. 인하우스 매직 포털들의 이름 짓기



4. 인하우스 매직 포털들을 이동 포털 지정하기.




5. 인하우스 매직 포털들을 액션 키 이동에서 터치 이동으로 바꾸기!
[처음 포털 미끄럼틀을 설치하시는 분들이 액션 키 이동 미끄럼틀과 터치 키 이동 미끄럼틀의 차이를 느끼게 하기 위해 터치 이동 설명을 따로 분리하였습니다.]




추가 : 포털로 올바른 다시 타기 포털 만드는 법!



되돌아가는 포털에다가 설정하면 안되는 것!
- 미끄럼틀 첫 번째 포털(입장 포털) + 액션키 이동 => 미끄럼틀 수동으로만 이용해야 함!
- 미끄럼틀 첫 번째 포털(입장 포털) +  터치 키 이동 => 무한루프 + 엑셀탈것 없으면 집 나가야 함!
- 재시작 포털 추가(포털 바로 위쪽에 추가) => 첫 번째 사례처럼 고장납니다!
- 재시작 포털 추가(입장 포털에서 1칸 이상 띄워놓고 추가) + 액션키 이동 => 정상 작동!



수백개의 포털을 이용하여 포털 놀이기구를 만들 때 이름 신경 써주기!


포털 이름을 지을 때 많은 양의 인하우스 매직 포털을 순차적으로 이어야 한다면, 가급적이면 구간별로 의미를 다르게 하여 구간마다 1번~XX번을 지정하여 사용할 것을 권장합니다.

만약에, 롤러코스터를 1번~250번(예) 순서대로 인하우스 매직 포털의 이름을 지어버리면 집을 갈아엎지 않는 한, 포털 놀이기구의 진로 변경이 사실상 불가능한 상황이 오니! 절대로 통으로 순서를 매기지 말 것!

[예 : 올바르지 않은 포털 후룸라이드의 이름 짓기]



위 사례처럼 1~250번을 짓고, 중간에 롤러코스터 모양 및 코스를 변형해야 한다면,, 아쉽지만 다 박살내는 게 속편할 수 있다.

[예 : 올바른 포털 후룸라이드의 이름 짓기]



후룸라이드 예시, 위의 구간처럼 부품을 연결해서 하나의 놀이기구를 만든다고 생각해야 좋음!





인하우스 매직 포털 - 트리거 에디터 사용


실내 이동 심화 - 트리거 에디터

Q:인하우스 매직 포털을 설명하는 데 왜 트리거 에디터를 설명해야 하나요?
A:포털에 갇히는 것을 방지하거나 (포털을 꺼서) 이동 방향을 바꾸기 위해
.

트리거 에디터 사용 준비 : 컴퓨터 설치

1. 건설 아이템인 아래 3종류 중 1개 이상의 컴퓨터를 설치합니다.
(건설 모드 -> 건설 자재 -> 기타)

단, 컴퓨터는 모든 종류틀 통틀어서 최대 3대까지만 설치가 가능합니다.




2. 건설 모드를 종료하고 트리거 조작 장치 앞에 가서 Space bar 키를 눌러 트리거 에디터 창을 엽니다.



3. 코드를 짠 후 저장 버튼을 눌러 코드를 저장한 뒤 트리거 에디터를 닫습니다.




트리거 에디터 사용 준비 : 트리거 에디터 조작!


newState1 : 상태를 뜻합니다
상태추가 : 새로운 상태를 추가합니다. (하나의 컴퓨터에 상태 최대 10개까지 유지 가능)
동작 초기화 : 이 컴퓨터에 저장되어 실행되는 프로그램을 초기 상태로 다시 시작합니다.
제어할 수 있는 오브젝트 목록 : 현재 집에서 사용할 수 있는 제어 가능한 오브젝트 전체를 보여줍니다. 사용하고 싶은 제어 가능한 오브젝트를 드래그하여 오브젝트 지정 부분에 옮겨 놓을 수 있습니다.

[시작] : 이 컴퓨터에서 시작하는 가장 첫번째 상태임을 표시합니다. [시작] 표시가 없는 상태에는 [시작] 위치에 마우스를 대면 "시작 위치 변경" 버튼이 표시되며, 이 버튼을 클릭하여 시작 위치를 변경할 수 있습니다.
-OnEnter : 상태(State)에 진입하게 되면 실행되는 명령어가 있는 곳입니다.
-Condition : 조건문을 만들 수 있는 부분이며, 최대 3개의 조건을 생성할 수 있습니다. 우선순위는 맨 위부터 아래방향으로 우선으로 조건을 탐색하며, 3개의 조건이 모두 거짓이면, 현재 상태의 OnEnter 부분부터 다시 시작하게 됩니다. 조건문 영역을 마우스 왼쪽으로 드래그하면 조건문의 순서 및 위치를 바꿀 수 있습니다.
- Goto : 다른 상태로 바꿔주는 문입니다. 모든 if문에 반드시 존재합니다.

트리거 에디터 코드 설계 준비 : 상태도 기반 프로그래밍

이 곳에서는 트리거 에디터로 프로그램을 설계하는 방법을 소개하는 페이지입니다.
참고 : 상태도 기반 프로그래밍은 일반 코딩과는 조금 다르게 돌아갑니다만, 사물제어를 하는 데 많이 사용되는 프로그래밍 기법 중 하나입니다.
[P.s. 이 글을 보고 아두이노 코드 조금만 보시면 진짜 사물 제어 프로그램을 만들 수 있을지도 모릅니다]

상태도 기반 프로그래밍  (아래 설명은 뇌피셜입니다. 정식 설명은 아님)
: 상태를 바꾸는 방법으로 조작 방법을 다르게 만드는 방법을 사용한 프로그래밍 기법

상태도 기반 프로그램의 요소
- 상태 : 프로그램 덩어리입니다.
- 행동 : 상태의 행동(들)을 구성하고, 오브젝트를 조작하는 요소입니다.
- 상태 변경 : 상태를 바꾸어 줍니다. 위에서 언급한 Goto 문이 상태를 변경해 줍니다.

...이 부분은 단지 트리거 에디터를 이해시키기 위한 부분일 뿐인데다가, 글쓴이가 이 부분을 쓰기 매우 귀찮아해서 검색창에 "상태도" 를 검색하시면 보다 자세한 그림을 보실 수 있을 것입니다.
(그냥 상태도를 다른 곳에서 배워 오라는 것이잖아.. ㅠㅠㅠ 설명자료 만들기 넘나 귀찮은 것)




트리거 에디터 설계 준비 : 상태가 변경될 때 지연되는 시간을 응용하자


상태 1회 변경 시 지연되는 시간 : 0.5초
[주 : 스위치 하나를 켰다가 끄는데 걸리는 시간 : 1초]

타이머는 각 상태가 변경될 때마다 일정하게 지연되는 시간이 발생하는 것을 이용하여 일정 시간 뒤에 다른 오브젝트를 제어할 수 있도록 해 주는 장치를 말합니다.




초간단 타이머


       

 

결과물 확인

[메이플스토리2]트리거 에디터 상태변경 1틱 시간 확인용 영상

1틱 : 0.5초 [트리거 에디터로 스위치가 켜지고 꺼지는 데 1초가 걸림.] 스위치 4개 총 5세트 수행

youtu.be

https://youtu.be/7fHU8oZc4n4






오랜 시간을 끌기 위한 장치 : X비트 카운터 만들기!

카운터를 만들기 위해 필요한 알아야 되는 것 : T-플립플롭

T-FlipFlop(티-플립플롭)이란
: 신호 한 번에 상태가 들어온 신호가 반전되어 저장되는 1비트 셀 1개
(ON 신호 입력 -> OFF 상태로 저장, OFF 신호 입력 -> ON 상태로 저장) 

트리거 에디터로 구현한 T-FilpFlop



Counter(카운터, 세는 사람 또는 장치)
: 맨 끝 신호를 한 번 줄 때마다 데이터값이 1씩 증가하는 장치입니다. T-플립플롭을 여러 개 이어 붙여서 맨 끝 쪽의 T-플립플롭에만 신호를 보내어 만듭니다.

아래 예시 : 4비트 비동기 카운터
( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0 순으로 2비트 정보를 차례대로 표시하는 기능을 합니다. 단, 트리거 에디터 특성 상 1틱에 1비트만 변경이 가능하기 때문에 하나의 순서를 표시하기 위해서는 더 많은 시간이 걸릴 수 있습니다. 만약에 1틱으로 16개를 표시하고 싶으시면 GRAY CODE[하나의 숫자가 증가할 때마다 1비트만 변경되는 숫자의 4비트 표시 체계]를 알아 보시면 좋겠습니다)


참고 : 10비트 영상을 통해 알아본 비동기 카운터의 T플립플롭(타이머) 개수 별 1사이클을 돌리는 데 걸리는 시간

https://youtu.be/7OGB1takGZM

[메이플스토리2] 10비트 동기 카운터(타이머) 소요시간 측정 실험

뾱뾱 소리에 미쳐버리지 않도록 주의! 주 : 이산 관련 연구용 실험이 아닙니다! 단지, 인게임 내에서 타이머가 얼마나 소요되는지 알아보기 위해 찍은 영상일 뿐입니다. 메이플스토리2 트리거 에디터는 하나의 상태가 변경되는 데 0.5초가 소요되어, 일반적인 비동기 카운터와는 다르게, ...

youtu.be

[위 유튜브 링크 뾱뾱 고막테러 주의!]

1비트 : 1초
2비트 : 2.5초
3비트 : 6초
4비트 : 14초
5비트 : 30초
6비트 : 63초 (1분 3초)
7비트 : 127초 (2분 7초)
8비트 : 255초 (4분 15초)
9비트 : 512초 (8분 32초)
10비트 : 1026초 (17분 6초)
[한 대의 컴퓨터로는 이 이상은 상태 개수를 늘릴 수 없어서 실험 자체가 불가능합니다!]
[그리고 굳이 다른 컴퓨터를 이용해서 27비트 타이머까지 만들고 싶지는 않습니다.]





나도 만들어보자! 제어 가능한 포털 놀이기구

인하우스 매직 포털 설정 예제 : 회전 목마

글쓴이 주 : 의외로 메이플스토리2에서 회전목마를 짓고 싶어하는 유저가 생각보다 꽤 있어서 의외였습니다. 그런데, 회전목마를 제대로 지으려면 트리거 에디터를 써**다는 현실.. ㅠㅠ

재료 준비




1. 회전목마의 포털 배치 및 포털의 이름 짓기, 이동 포털 연결하기




CTRL + C 단축키를 이용하면 더 빠르고 편하게 포털 놀이기구를 완성시킬 수 있습니다.
(CTAL + C 아님!)





※주의!※
이대로 회전목마를 탑승하게 되면 절~대 회전목마 놀이기구를 멈출 수 없으니 가급적이면 회전목마 놀이기구에 탑승하지 말 것!
(불가피하게 테스트용으로 회전목마를 타야 한다면, 오른쪽 위에 있는 [집에서 나가기] 버튼을 눌러 집 밖으로 나갈 것!

2. 회전목마 제어 오브젝트 준비





3. 회전목마 트리거 에디터 - 상태(newStateX) 뼈대 준비





보조 자료 : 회전목마 제작을 위한 상태도(동작 구조)





4. 회전목마 조작 기능 구현 부분 - 상태(State) 안에 액션 뼈대 추가하기.
(포털 갯수가 적으면 바로 포털 세팅을 해도 됩니다만.. 문제는 포털 놀이동산을 지으려는 사람이면 집 안에 있는 인하우스 매직 포털의 개수는 적어도 200개가 넘으니, 현실적으로 일일이 포털을 지정하기 힘들기 때문에 코드 뼈대부터 만드는 것입니다)





5. 회전목마 조작 기능 구현 부분 - 조건문 및 액션 뼈대에 조작할 오브젝트 삽입하기.
(Empty(0) 부분을 클릭하여 오브젝트를 매핑하는 것은 매우 비효율적이므로, 트리거 에디터의 왼쪽에 있는 제어할 수 있는 오브젝트 목록에 보이는 오브젝트를 왼쪽 마우스 버튼을 클릭한 채로 드래그하여 Empty(0) 부분에 놓아 주자)

※마우스로 드래그하여 매핑하는 것이 편한 이유 : 만약에 집 안의 제어 가능한 오브젝트가 500개 이상이면?!.. 뒷 일은 유저의 상상에 맡기도록 하겠다.
(참고 : 내 집은 인하우스 매직 포털만 600여개 있다는 것은 안비밀. 오브젝트 600여개 중에서 한 개 찾기 매우 힘듭니다)







여기까지 작업을 하고, 저장을 하면 그럴싸한 놀이기구가 완성됩니다!
... 라고는 하지만 이 상태에서 혼자서 타게 되면 ★헬☆게★이☆트★ 오픈!
그래도 코드 유실을 대비하여 이 타이밍에 작업했던 작업물을 저장한 후, 회전목마가 정상적으로 작동하는지 확인해 줍시다!





6. 회전목마 타이머 부분 - 타이머 부분 뼈대 + 코드 만들기





참고 : 각 타이머X 상태는 코드 작성 패턴은 동일하며, 6개의 타이머 상태가 있어도 타이머 4에 Goto 스위치 감지 부분이 있으면 타이머 스위치 4개만 작동함.


7. 회전목마 타이머 부분 - 놀이기구가 작동되면 타이머가 실행되도록 설정.


8. 저장! 그리고 테스트
[회전목마 예제를 만들 때 누락된 코드가 하나 있는것은 기분탓입니다만.. 회전목마 자체는 잘 돌아갑니다]



위 스위치 4개가 다 켜지고 모든 스위치가 원래대로(모두 빨강) 돌아왔는데도 회전목마가 계속 작동이 된다면 트리거를 제대로 작성하지 않았거나 Goto문을 잘못 작성했을 경우가 높으니, 천천히 트리거 에디터의 문제점을 살펴보세요!






(일시정지 기능이 필요한 사람만 구현할 것!)
9. 회전목마 타이머 부분 - 일시정지 기능을 만들자!




이 코드를 추가하여 저장을 하면 회전목마 작동 도중에 회전목마를 정지 시킬 수 있습니다.



보너스 : 바이킹 설계 팁


2018년 9월, 허당 길드에서 블루수국 길드로 이사를 한 이후에 블루수국 길드원들이 내 집에 오면서 바이킹을 무려 2대나 건설을 하게 되면서 인하우스 매직 포털로 바이킹을 만들 때 필요한 포털 순서 배치 예시 사진을 올리고자 합니다.


바이킹 건설을 위한 포털 지정 방법

바이킹 건설 방법 : 포털의 이동방향은 단 한군데만 지정할 수 있고, 포털의 이동 방향을 절대 바꿀 수 없기 때문에





배 모형 - 중앙에서 출발할 때 포털 순서 지정!





배 모형 - 왼쪽 꼭대기에서 출발할 때 포털 순서 지정!





이렇게 지정하시면 눈도 삐고 자칫 잘못하면 바이킹이 아니라 천국행 점프대가 될 수 있습니다!        


인하우스 매직 포털의 이동 순서는 1->2->3... 순서이며, 노란색 루디 큐브와 하늘색 루디 큐브는 왼쪽 방향으로 이동, 보라색 루디 큐브는 오른쪽 방향으로 이동하는 것을 의미합니다.

바이킹을 트리거 에디터 없이 이용하려면, 회전목마와 비슷하게 마지막 포털만 터치 이동 - 설정되지 않음 설정을 해 주면 되며, 연속적인 바이킹을 구현하고 싶으시다면 위의 회전목마 예제와 동일하게 입장 부분이나 퇴장 부분을 ON/OFF 시키는 기능을 구현하시면 됩니다.
(위 예제는 가급적이면 입장 포털과 끝쪽 포털, 중간 포털을 ON/OFF 제어를 할 것을 권장합니다)






인하우스 매직 포털 - 실내 이동 기능을 활용해서 만들 수 있는 것.


인하우스 매직 포털 - 실내 이동 활용 (트리거 에디터 미사용)


활용 방안 1 : 엘리베이터로 이용
활용 방안 2 : 공간이 분리된 곳으로 이동




예시 : 스카이 포트리스 함선 내부/외부 이동        

활용 방안 3 : 먼 지역을 빠른 시간 내로 이동할 수 있게 포털 설정.
활용 방안 4 : 점프맵의 방해 요소나 접근 불가 요소로 사용할 수 있음.




출처 - 아모쯔 마리오 집 1.1b버전 스테이지 2단계. 낙사 판정을 연출하기 위해 인하우스 매직 포털을 사용함        


활용 방안 5 : 이동속도 부스터, 물이 흐르는 강가, 폭포, 후룸라이드, 롤러코스터, 미끄럼틀, 모노레일, 에스컬레이터, 포탄 등의 이동 연출을 사용한 포털 이동시설(놀이기구)을 제작.



예 : 후룸라이드와 롤러코스터가 건설된 놀이동산        




+ 보너스! 이런 놀이기구도 만들 수 있습니다.


[시공의 폭풍의 언덕] - 폭풍에 휘말리면 폭풍의 언덕으로 이동됩니다.
※ 아래 사진에는 링크가 전혀 걸려 있지 않습니다! 오해하지 말아 주세요! ㅠㅠ ※
[관련 글]
http://www.inven.co.kr/board/maple2/4009/683805








인하우스 매직 포털 - 실내 이동 + 트리거 에디터 활용

활용 방안 6 : 출입 제어(예 : 결투장 입장 포털)
[디자인 함정 큐브를 같이 제어하시면 더욱 보안성이 뛰어나 출입 제어 강화에 매우 좋습니다]
활용 방안 7 : 제한 시간 동안만 문이 열리게 하는 장치.
활용 방안 8 : 다회 이용 가능한 롤러코스터로 개조하기
활용 방안 9 : 일정 시간 동안 작동하는 회전 목마, 바이킹, 자이로드롭 등과 같은 다회용 놀이기구 제작