개인 자료란 (JE)

  서버 커뮤니티

Profile castle 대표칭호 없음

castleCT 6fed4fe18f5c429a90efcf59fdde7799

Profile

질문하기 커맨드

마인크래프트 커맨드로 일정한 박자 만들기.

2020.03.30 조회 수 746 추천 수 0

리듬게임을 만들 고 있습니다. bpm에 맞게 블럭이 나와야 하는데, 마인크래프트는 

레드스톤 중계기는 60   66.666   75   85.714   100   120   150   200   300   600

커맨드는  63.157   70.588   80   92.307   109.09   133.333   171.428   240   400   1200

이렇게 bpm이 되는걸로 알고 있습니다.


(중계기 1틱 0.1초, 커맨드 1틱 0.05초로 설정한 결과입니다.)


저는 128.01bpm을 얻어야 합니다. bpm은 0.01조차도 다르면 후반에서 뒤틀리기 때문에 일정해야 됩니다.



그래서 커맨드와 중계기의 기본으로는 되지 않자, 엔티티를 이동시켜서 옆에 블럭을 설치하고 그 블럭이 설치되는 박자로 맞춰보려고 했습니다.

tp를 사용하였으며 결과는.. 후반까지도 박자가 뒤틀리지는 않았으나, tp인 만큼 위치가 고정값으로 변화하여, 하나하나의 박자가 조금씩 틀어지는 결과가 나왔습니다..

41472e8841bd907249fd9f5b5b182f40.png

블럭마다 간격이 다른게 보이시죠...


그래서 뛰엄뛰엄 이동시키지 않고, 일정한 속도로 연속적인 움직임을 줘보자! 해서, Motion으로 이동시키면 되지 않을까 했습니다. 하지만 방법을 모르겠네요..


data 값을 이용해서 일정한 속도로 모션을 주는 방법

bpm을 만드는 다른 방법


이 둘 중 하나만 찾으면됩니다.. 방법좀 알려주세요..




8개의 댓글

castle
2020.03.30

으.. 거의다 만들었는데, 노트만 찍으면 되는데.. bpm이 안될줄이야...

castle
2020.03.30

작업 종료 되었습니다!! 조금씩 효과 넣어주면 끝납니다!

윈초
2020.04.01

앗.. 좀 늦었지만 스코어보드로 하는건 어떤가요?

반복 커멘드로 하시면 1틱마다 잡을수 있답니다!

castle
2020.04.02
@윈초

의견 감사합니다!

 

하지만, 스코어보드를 사용하는 방법이 처음 시도했던 방법입니다.

 

커맨드는 1틱에 0.05초인데, 1틱을 한박으로 bpm을 재면 1200이 나옵니다.

 

19틱부터 1틱까지 차례로 bpm을 계산한게 아래와 같습니다.

 

63.157 70.588 80 92.307 109.09 133.333 171.428 240 400 1200

 

1틱에 0.05초는 고정값이라, 위의 bpm 외에는 설정할 수 없었습니다.

그렇기에, 불가능 했습니다.

윈초
2020.04.02
@castle

아 그럼 어떤 방법을 사용하셨나요?

castle
2020.04.02
@윈초

전체적으로 보면 윈트초코님이 말하신 대로 스코어를 이용했습니다.

방식이 조금 다를 뿐 입니다...

(밑에 내용 짜내려고 머리를 열심히 굴렸습니다.. 수학도 하고..후...)

 

소숫점 두자리까지 표현하기위해 계산식이 특이합니다.

300000000을 bpm*100으로 나누었습니다!

(저는 100bpm이라 300000이라는 결과입니다)

그리고 100000을 나누어서 커맨드의 틱과 같게 만들었습니다.

카운트다운 커맨드를 만들어서 증가시키고,

그 커맨드의 스코어와 계산한 스코어가 같으면, 1비트라는 값이 나오게 설정했습니다.

이것도 결국 커맨드를 이용해서... 0.05초 이하의 오차가 생깁니다.

그래도 bpm은 맞아서, 노래가 몇분이 지나도, 노래와 노트의 차이는 없게 만들었습니다!

castle
2020.04.02
@윈초

아! 맵을 전부 만들면, 공유할 예정입니다. 여러가지 bpm을 처리할 수 있게 한 이유는, 자기가 직접 노래 넣고 만들 수 있게 만들어서, 그렇습니다!

윈초
2020.04.02
@castle

아! 알겠습니다 감사해요!