[YU-TOHARU님의 강좌] Win & 1.0 공용으로 와이드 화면에 자동으로 대응할 수있는 방법 (x 좌표)
페이지 정보
작성자 도끼신 작성일 24-02-05 22:07 조회 1,774 댓글 0본문
※ 읽기 앞서,
이 강좌글은 하츠네 미쿠/우시로미야 엔제/큐어 블랙 등의 제작자이신 YU-TOHARU님의 강좌글을 번역하였습니다 ※
(구글 번역기로 번역한 것이라, 이상하시더라도 양해부탁드립니다)
윈무겐에서는 화면 크기가 640 × 480 고정인데 반해, 무겐 1.0에서는 자유롭게 화면 크기를 변경할 수 있습니다.
그러나, 기술의 방법에 따라 1.0에서 와이드 스크린(800 × 480,1280 × 720 등)으로 변경하면게이지, 효과, 컷인 등의 표시가 어긋나 버립니다.
무겐 1.0에서 "GameWidth"또는 "GameHeight"라는 변수, "GameWidth"는 화면의 가로 크기, "GameHeight"가 화면의 세로 크기를 확인할 수 있습니다.
1.0 전용 캐릭터를 만든 후 사용하면 쉽게 화면 중앙을 지정할 수 있지만 윈무겐에서 오류가 발생하여 사용할 수 없게되어 버립니다.
하지만, 헬퍼를 사용하면 1.0 전용 스탯을 사용하지 않아도 화면 크기(x 좌표)를 확인하는 방법을 발견했기 때문에 설명합니다.
어디까지나 win과 1.0 공동으로 사용할 수 있도록하고 자신이 사용하고있는 방법이므로 다르고 더 쉬운 좋은 방법이 있을지도 모릅니다.
그래서, 하나의 방법으로서 파악해 주시면 감사하겠습니다. 먼저 -2 또는 -3 상태에 예로
[State]
type = Helper
trigger1 = numhelper (3000) = 0
helpertype = normal
name = "main helper"
ID = 3000
pos = 0,0
postype = right
stateno = 3000
supermovetime = 99999999
pausemovetime = 99999999
라고하는 헬퍼를 하나 내고 있습니다.
※ postype = right, pos = 0,0에서 출현하고있는 것이 포인트입니다.
그리고 헬퍼값
[State]
type = parentVarset
trigger1 = time = 0 && root, RoundsExisted = 0
var (42) = ceil (screenpos x / 2)
와 같이 "time = 0"varset 을 합니다.
value 값을 이렇게 하면 화면 가로 크기의 절반 값으로 설정됩니다.
요컨대 옆 화면의 정확히 반 (중간) 것이므로 화면 중앙의 수치가되는 것입니다.
자신은이 수치를 본체의 var으로 설정하기 위한 parentvarset를 사용하고 있습니다만, 헬퍼 var도 좋을지도 모릅니다.
이제 화면 중앙의 pos x 값의 세트는 완료했습니다.
이것을 이용하여 화면 중앙에 컷인을 표시하려면
[State]
type = Explod
trigger1 = time = 0
anim = 1000
postype = left
pos = var (42),0
이라는 느낌으로 pos x 값에 저장한 var를 지정하면 OK입니다.
알기 어려울지도 모릅니다만, 컷인이 화면 중앙에 표시되어 있습니다.
이제 GameWidth를 사용하지 않아도 윈무겐, 무겐 1.0에서 어떤 화면 크기도 자동으로 대응할 수 있습니다.
방향이 반대 때 컷인 등도 반대되는 때는
[State]
type = Explod
trigger1 = time = 0
anim = 1000
postype = right
pos = -var (42),0
facing = -1
으로하면 좋다고 생각합니다.
출현시킨 헬퍼값입니다만, 본체의 var에 숫자를 넣은 후 지우는 것이 좋다고 생각합니다.
상시 헬퍼를 이용하는 경우는 물론 그대로 OK 네요.
다음 특수 게이지이지만, 특수 게이지를 탑재하고있는 캐릭터로 표시가시킨 방법은 거의 여러분 explod로 표시하고 있다고 생각합니다.
이때 작성 방법에 따라 1.0에서 와이드 화면으로했을 때 2P 또는 1P 중 하나의 계기가 어긋나 표시되는 경우가 있습니다.
[State]
type = Explod
trigger1 = time = 0
anim = 1000
postype = left
pos = ifelse (teamside = 2,320,0) 0
facing = ifelse (teamside = 2, -1,1)
type = Explod
trigger1 = time = 0
anim = 1000
postype = left
pos = ifelse (teamside = 2,320,0) 0
facing = ifelse (teamside = 2, -1,1)
이런 느낌으로, left 기준 에서 ifelse 등을 사용하여 2P 측의 게이지를 표시하는 경우, 위와 같이 2P 측의 게이지가 어긋나 표시됩니다.
그래서 이것을
[State]
type = Explod
trigger1 = time = 0 && teamside = 1
anim = 1000
postype = left
pos = 0,0
facing = 1 (선택 사항)
[State]
type = Explod
trigger1 = time = 0 && teamside = 2
anim = 1000
postype = right
pos = 0,0
facing = -1
이렇게 1P와 2P를 나누어 1P는 postype를 "left", 2P 측은 "right"하면
이렇게 1P는 왼쪽, 2P는 오른쪽이 기준이되므로 특히 영향을 미친 설명을하지 않아도 쉽게 와이드 화면에 대응 할 수 있습니다.
그 대신, 기술의 양이 증가해버리기 때문에 용량이 궁금하신 분은
위의 화면 중앙값을 사용하면 하나의 스테이트 컨트롤러로도 표시 가능하다고 생각됩니다.
다만 win과 1.0 right 좌표의 기준값은? 1 도트의 차이가있는 것 같습니다.
1.0이 더 win보다 왼쪽에 1 도트 씩 다르게 표시되어 있습니다.
화면을 캡처하여 한쪽을 투명화하는 등 해놓으면 어긋나게 표시되어있는 것을 알 수 있다고 생각합니다.
left 좌표하면 딱 나타나는 것입니다 만 .... 수수께끼의 사양 변경군요.
덧붙여서 게이지 헬퍼에서 볼 때, localcode가 다른 캐릭터에 P2stateno 등으로 스탯을 빼앗길 때 상대의 localcode에 영향을받지 않게된다는? 것 같습니다.
(게이지가 어긋나거나 크기가 변하던 버그가 없어집니다)
마지막으로 죄송합니다만, 이번에 x 좌표는 중앙 지정하게 했습니다만, y 좌표 만은 어떻게 해도 중앙 지정할 수 없습니다.
그 방법도 알면 화면의 중심점을 윈무겐, 무겐 1.0 공용으로 식별 할 수 있는 것인데 ....
추천0
댓글목록 0
등록된 댓글이 없습니다.