Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
よくわかる音ゲーの作り方
音楽ゲームとは
曲に合わせてノーツが出てくる
叩く
踏む
押す弾く
回す
音ゲーの共通点とは?
GREAT
>> ノーツが降ってくる <<
それマジ?
ノーツ降ってこないじゃん
降ってきてはないんじゃないの
考え方を変えると、、、
ノーツが降ってくる
ある位置から
判定ラインに向かって
ノーツが飛んでいく
=
画面端から判定ラインに
画面中央から判定ラインに
これもうわかんねぇな
数秒前の判定ラインから判定ラインに
※ jubeat みたいな音ゲーでも同じ考え方ができる
ということを言いたいだけなので、哲学しなくても
いいです…
更に考え方を変えると、、、
ある位置から
判定ラインに向かって
ノーツが飛んでいく
レーンの始点から
レーンの終点に向けて
ノーツが飛んでいく
=
レーンとは…
ポップンは9個のレーンが横に並んでいる
レーンの始点(画面端)
レーンの終点(判定ライン)
ということは、他の音ゲーでもこの考え方ができる
レーン(哲学)
よくわかるレーンの使い方
0 300
こんなレーンがあるとして…
始点終点
終点
始点 の X 座標は 300
の X 座標は 0
0 300
始点終点
曲が始まってから 3秒 経ったら
判定ラインにくるノーツ
レーンのどこに表示すればいい?
0 300
始点終点
レーンのどこに表示すればいい?
終点の位置 +
終点から始点への方向 *
((判定ラインにくる時間 – 曲の再生時間) *
レーンの長さ * スピード)
0 300
始点終点
終点の位置 + 終点から始点への方向 *
((判定ラインにくる時間 – 曲の再生時間) *
レーンの長さ * スピード)
終点の位置
0 300
始点終点
0 + 終点から始点への方向 *
((判定ラインにくる時間 – 曲の再生時間) *
レーンの長さ * スピード)
終点から始点への方向
右を向いているので +1
0 300
始点終点
0 + 1 *
((判定ラインにくる時間 – 曲の再生時間) *
レーンの長さ * スピード)
判定ラインにくる時間
0 300
始点終点
0 + 1 *
((3.0 – 曲の再生時間) *
レーンの長さ * スピード)
レーンの長さ
300
0 300
始点終点
0 + 1 *
((3.0 – 曲の再生時間) *
300 * スピード)
スピード はとりあえず 1.0 にしてみる
0 300
始点終点
0 + -1 *
((3.0 – 曲の再生時間) *
300 * 1.0)
曲の再生時間を色々な値で見てみる
0 300
始点終点
0 + 1 *
((3.0 – 0.0) *
300 * 1.0)
X = 900
曲が始まってから 0.0 秒
0 300
0 + 1 *
((3.0 – 1.0) *
300 * 1.0)
X = 600
曲が始まって...
0 300
始点終点
0 + 1 *
((3.0 – 2.2) *
300 * 1.0)
X = 240
曲が始まってから 2.2 秒
0 300
0 + 1 *
((3.0 – 2.6) *
300 * 1.0)
X = 120
曲が始まって...
始点終点
0 300
0 + 1 *
((3.0 – 3.5) *
300 * 1.0)
X = -150
曲が始まってから 3.5 秒
判定をしよう!
弐寺の判定フレーム
弐寺の判定フレーム
弐寺は 60fps を前提に開発されている
ので、1 フレーム = 1 / 60 秒
(約 0.016 秒)
ピカグレ 2 フレーム 0.033 秒
グレート 9 フレーム 0.150 秒
グッド 21 フレーム 0.350...
フレーム単位と秒単位があるけど、
どっちで判定すればいいの?
どっちでもいい
(人間が気にするレベルではない)
弐寺はフレーム依存
秒単位で考えてみる
abs(判定ラインにくる時間 – 曲の再生時間)
<= 判定時間(秒) / 2
なら、判定範囲に入っている!
// ノーツが判定ラインにくる時間
float noteJudgeTime = 3.0;
// 曲の再生時間
float soundPlayTime = 2.95;
// ピカグレ判定の範囲
float perfectGreatTime = 0...
譜面の形式ってどうすればいい?
画像ファイルみたいなもの
(ただし jpg のように劣化する場合がある)
今までの話をそのまま
実装したゲームが…
ないです
Upcoming SlideShare
Loading in …5
×

よくわかる音ゲーの作り方

15,611 views

Published on

よくわかる音ゲーの作り方

Published in: Technology
  • Be the first to comment

よくわかる音ゲーの作り方

  1. 1. よくわかる音ゲーの作り方
  2. 2. 音楽ゲームとは 曲に合わせてノーツが出てくる 叩く 踏む 押す弾く 回す
  3. 3. 音ゲーの共通点とは? GREAT >> ノーツが降ってくる <<
  4. 4. それマジ?
  5. 5. ノーツ降ってこないじゃん
  6. 6. 降ってきてはないんじゃないの
  7. 7. 考え方を変えると、、、 ノーツが降ってくる ある位置から 判定ラインに向かって ノーツが飛んでいく =
  8. 8. 画面端から判定ラインに
  9. 9. 画面中央から判定ラインに
  10. 10. これもうわかんねぇな
  11. 11. 数秒前の判定ラインから判定ラインに ※ jubeat みたいな音ゲーでも同じ考え方ができる ということを言いたいだけなので、哲学しなくても いいです…
  12. 12. 更に考え方を変えると、、、 ある位置から 判定ラインに向かって ノーツが飛んでいく レーンの始点から レーンの終点に向けて ノーツが飛んでいく =
  13. 13. レーンとは…
  14. 14. ポップンは9個のレーンが横に並んでいる
  15. 15. レーンの始点(画面端) レーンの終点(判定ライン)
  16. 16. ということは、他の音ゲーでもこの考え方ができる
  17. 17. レーン(哲学)
  18. 18. よくわかるレーンの使い方
  19. 19. 0 300 こんなレーンがあるとして… 始点終点 終点 始点 の X 座標は 300 の X 座標は 0
  20. 20. 0 300 始点終点 曲が始まってから 3秒 経ったら 判定ラインにくるノーツ レーンのどこに表示すればいい?
  21. 21. 0 300 始点終点 レーンのどこに表示すればいい? 終点の位置 + 終点から始点への方向 * ((判定ラインにくる時間 – 曲の再生時間) * レーンの長さ * スピード)
  22. 22. 0 300 始点終点 終点の位置 + 終点から始点への方向 * ((判定ラインにくる時間 – 曲の再生時間) * レーンの長さ * スピード) 終点の位置
  23. 23. 0 300 始点終点 0 + 終点から始点への方向 * ((判定ラインにくる時間 – 曲の再生時間) * レーンの長さ * スピード) 終点から始点への方向 右を向いているので +1
  24. 24. 0 300 始点終点 0 + 1 * ((判定ラインにくる時間 – 曲の再生時間) * レーンの長さ * スピード) 判定ラインにくる時間
  25. 25. 0 300 始点終点 0 + 1 * ((3.0 – 曲の再生時間) * レーンの長さ * スピード) レーンの長さ 300
  26. 26. 0 300 始点終点 0 + 1 * ((3.0 – 曲の再生時間) * 300 * スピード) スピード はとりあえず 1.0 にしてみる
  27. 27. 0 300 始点終点 0 + -1 * ((3.0 – 曲の再生時間) * 300 * 1.0) 曲の再生時間を色々な値で見てみる
  28. 28. 0 300 始点終点 0 + 1 * ((3.0 – 0.0) * 300 * 1.0) X = 900 曲が始まってから 0.0 秒 0 300 0 + 1 * ((3.0 – 1.0) * 300 * 1.0) X = 600 曲が始まってから 1.0 秒 0 300 0 + 1 * ((3.0 – 2.0) * 300 * 1.0) X = 300 曲が始まってから 2.0 秒
  29. 29. 0 300 始点終点 0 + 1 * ((3.0 – 2.2) * 300 * 1.0) X = 240 曲が始まってから 2.2 秒 0 300 0 + 1 * ((3.0 – 2.6) * 300 * 1.0) X = 120 曲が始まってから 2.6 秒 0 300 0 + 1 * ((3.0 – 3.0) * 300 * 1.0) X = 0 曲が始まってから 3.0 秒
  30. 30. 始点終点 0 300 0 + 1 * ((3.0 – 3.5) * 300 * 1.0) X = -150 曲が始まってから 3.5 秒
  31. 31. 判定をしよう!
  32. 32. 弐寺の判定フレーム
  33. 33. 弐寺の判定フレーム 弐寺は 60fps を前提に開発されている ので、1 フレーム = 1 / 60 秒 (約 0.016 秒) ピカグレ 2 フレーム 0.033 秒 グレート 9 フレーム 0.150 秒 グッド 21 フレーム 0.350 秒 バッド 47 フレーム 0.783 秒
  34. 34. フレーム単位と秒単位があるけど、 どっちで判定すればいいの?
  35. 35. どっちでもいい (人間が気にするレベルではない)
  36. 36. 弐寺はフレーム依存
  37. 37. 秒単位で考えてみる
  38. 38. abs(判定ラインにくる時間 – 曲の再生時間) <= 判定時間(秒) / 2 なら、判定範囲に入っている!
  39. 39. // ノーツが判定ラインにくる時間 float noteJudgeTime = 3.0; // 曲の再生時間 float soundPlayTime = 2.95; // ピカグレ判定の範囲 float perfectGreatTime = 0.033; if (Math.abs(noteJudgeTime – soundPlayTime) <= perfectGreatTime / 2) { println(“ピカグレだよ!”); }
  40. 40. 譜面の形式ってどうすればいい?
  41. 41. 画像ファイルみたいなもの (ただし jpg のように劣化する場合がある)
  42. 42. 今までの話をそのまま 実装したゲームが…
  43. 43. ないです

×
Save this presentationTap To Close