Giter VIP home page Giter VIP logo

danoniplus's People

Contributors

cwtickle avatar gitter-badger avatar goe0 avatar kuroclef avatar mfv2 avatar satsukizzz avatar superkuppabros avatar suzme avatar tickle77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

danoniplus's Issues

[仕様] フリーズアローの色変化用矢印番号の差異について

背景・事象

色変化用矢印番号がFlash版と異なる場合がある

発生バージョン

ver 0.46.0

理由と背景

Flash版では、矢印とフリーズアローのグループごとの要素の順番が異なります。

【Flash版】

  • 矢印:     矢印1, 斜め, 矢印2, 矢印3
  • フリーズアロー:矢印1, 斜め, 矢印2, おにぎり(AA), 矢印3

この順番の場合、フリーズアローで対処するときに
グループごとの順番を入れ替えなければならず、フレーム毎処理で余計な処理が増えます。
これを回避するため、HTML5版では以下のように
譜面ヘッダーのsetColorの順番に揃えました。

【HTML5版】

  • 矢印:     矢印1, 斜め, おにぎり(AA), 矢印2, 矢印3
  • フリーズアロー:矢印1, 斜め, おにぎり(AA), 矢印2, 矢印3

影響

色変化で使用している矢印番号の一部が変わります。

■矢印

対象グループ Flash版 HTML5版
AA - 22
通常2 / 矢印 22 23
通常3 / 矢印 23 24

■フリーズアロー

対象グループ Flash版 HTML5版
通常時 :通常2 / 矢印 34 36
通常時 :通常2 / 帯 35 37
通常時 :AA / 矢印 36 34
通常時 :AA / 帯 37 35
ヒット時:通常2 / 矢印 44 46
ヒット時:通常2 / 帯 45 47
ヒット時:AA / 矢印 46 44
ヒット時:AA / 帯 47 45
通常時 :通常2 / 矢印&帯 52 53
通常時 :AA / 矢印&帯 53 52
ヒット時:通常2 / 矢印&帯 57 58
ヒット時:AA / 矢印&帯 58 57

[要望] 楽曲のフェードアウト長の変更

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 現状は、楽曲のフェードアウト間隔は7秒(=420フレーム)固定だが、
    これを譜面ヘッダーを使って可変にできるようにしたい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • あまり譜面ヘッダーを増やすのもよろしくないので、既存の譜面ヘッダーを活用する。
    下記のように、fadeFrameについてフェードアウト開始フレームとフェードアウト長を組み合わせて1セットとすることで、フェードアウト終了フレームについても目で見てわかるようにしたい。
    省略した場合は420フレームが適用されるように(互換性保持の観点)。
|fadeFrame=9000,400$9000,300|

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 別ヘッダーとして定義する。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] スコア保存機能(FlashのSharedObject相当)の実装

Is your feature request related to a problem? Please describe.
ハイスコア機能の実装、及び周辺機能の実装

Describe the solution you'd like
LocalStorageもしくはIndexedDBによる実装を予定。
基本Key-Valueベースのため、被らない・煩雑にならない工夫が必要。
Keyが長くなりがちのため、長さとして問題ないかの検証も必要。

  • Keyの決め方(案)
    1. Dan★Oni(CW)として1つ共通のDBとする(LocalStorageでも使用可能か)。
      [保存するデータの種類]-[キー数]-[譜面名]-[URL] を結合したものをKeyとして扱う。

    2. Common, サイト別にそれぞれDBを持たせる。
      また、データの種類ごとにテーブルを分ける。
      [キー数]-[譜面名]-[URL] を結合したものをKeyとして扱う。

    3. Common, サイト別にそれぞれDBを持たせる。
      また、データの種類・URLごとにテーブルを分ける。
      [キー数]-[譜面名] を結合したものをKeyとして扱う。

Additional context
単にハイスコアを保存するだけでなく、
イベント毎の総プレイ数・総スコアを抽出できるなど、
データからイベントを作れるような、いろいろな使い方ができる設計にしたい。

[要望] 譜面名の文字サイズ調整

Is your feature request related to a problem? Please describe.
合作(持ち寄り等)で譜面名が長くなる場合があり、
譜面名の長さによりサイズを小さくできるようにしたいです。

Describe the solution you'd like
取り急ぎは下記で可能です。(今はdanoni_custom.js側で制御しています)
getLen関数は下記サイトを参考にしました。
https://javascript.programmer-reference.com/javascript-han1zen2/

function customOptionInit() {
	// 背景設定など省略

	const l_lnkDifficulty = document.getElementById("lnkDifficulty");
	if (getLen(l_lnkDifficulty.innerHTML) > 25) {
		l_lnkDifficulty.style.fontSize = "14px";
	} else if (getLen(l_lnkDifficulty.innerHTML) > 18) {
		l_lnkDifficulty.style.fontSize = "16px";
	}
}
function getLen(str) {
	var result = 0;
	for (var i = 0; i < str.length; i++) {
		var chr = str.charCodeAt(i);
		if ((chr >= 0x00 && chr < 0x81) ||
			(chr === 0xf8f0) ||
			(chr >= 0xff61 && chr < 0xffa0) ||
			(chr >= 0xf8f1 && chr < 0xf8f4)) {
			//半角文字の場合は1を加算
			result += 1;
		} else {
			//それ以外の文字の場合は2を加算
			result += 2;
		}
	}
	//結果を返す
	return result;
}

Describe alternatives you've considered
Marqueeを使うこともできますが、
個人的には見づらいので適宜フォント縮小する案が良いと思います。

Additional context

矢印色をプレイヤーが変更できるようにしたい

Is your feature request related to a problem? Please describe.
12keyや横一列17keyなどでは色の重要性が高く、慣れていない配色パターンだとプレイが難しい。
変更可能にして少しでもとっつきやすくしたいです。

Describe the solution you'd like
オプションで矢印グループごとに色をいくつかの選択肢から選べるようにする。

Describe alternatives you've considered
オプションで配色をいくつかのパターンから選択できるようにする。

Additional context
氷矢色を矢印色に合わせるオプション(MFV2さんソースのFreezeColor)も欲しいです。
オプション画面のスペースは限られているので、置く場所は問題だと思います。

[要望] 効果音の追加

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • Settings画面で設定を変えるときの効果音が欲しい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • [sound]フォルダを切って、その中に効果音ファイルを入れる。

  • 効果音の設定は danoni_setting.js で行うこととし、グループに分けて効果音の設定が行えるようにする。デフォルトは効果音無しとする。

  • 下記は一例。これに沿って、createButton関数を直す必要がある。

   g_presetSoundObj = {
      settings: ``,  // 設定切替ボタン
      execute: ``,  // Click Here, Playボタン
      cancel: ``,    // Backボタン
   };

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 現状のFlash版でも設定切替ボタンのみ効果音があるため、それのみ効果音を適用できるようにする。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] ライフゲージ増減グラフの描画

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 結果画面にライフゲージ増減グラフを描画したい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • ライフゲージ増減毎に配列に格納していき、それをグラフで描画する。
  • 長すぎる作品の場合はサンプリングするなどの工夫が必要。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 今のところなし。
  • なお、フェードイン時はデータ自体の収集をしない。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • 演出等により不要なケースもあるため、ON/OFFできるように考慮する。

[要望] 選曲画面の実装

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

現在のソースでは、選曲に完全対応していないが、工夫することで可能と考える。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

選曲モードを作成する。
このモードでは、設定画面上、同じmusicNoを持つ譜面のみ譜面選択できる。
また、タイトルから選曲画面へ移動できるようにする。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

派生曲を同一曲にしたい場合は、別途考慮が必要かもしれない。

フリーズアロー失敗判定で多重判定される

背景・事象

フリーズアロー失敗判定で多重判定され、
結果画面のフリーズアロー数と、本来のフリーズアロー数が合わないことがある

発生バージョン

ver 0.34.0

原因・状況

次回更新時に解消予定です。
今回の理由としては、始点矢印時に判定を次に回すためのフラグが立っていないためと思われます。

3134行目付近、function judgeArrow(_j) 内

if(difCnt <= g_judgObj.frzJ[C_JDG_SFSF]){
					
}else{
    g_resultObj.iknai++;
    document.getElementById("lblIknai").innerHTML = g_resultObj.iknai;
    g_resultObj.fCombo = 0;
    judgFrz.setAttribute("judgEndFlg","true");  // この部分が入っていなかった
}

補足

各矢印オブジェクトで定義される「judgEndFlg」は、
対象矢印・フリーズアローの判定が終わったかどうかを判断します。
false : 未判定、true: 実施済

[要望] フリーズアローのヒット時のデフォルト色変更

Is your feature request related to a problem? Please describe.
フリーズアローのヒット時のデフォルト色は「薄黄」(#ffff66)ですが、
矢印のヒット数カウンタと同じ色のため、被って見えないです。

これまで、ParaFla!ソースではフリーズアローの帯に対してアルファが掛かっており
背景の黒と重なって濃いめの黄色に見えていましたが、
今回のソースでは帯にアルファが掛かっていないため、見えなくなっていると思われます。

Describe the solution you'd like
デフォルト色を以下のように変更した方が良いと思います。

  • フリーズアローのヒット時/矢印色:#cccc33
  • フリーズアローのヒット時/帯:#999933

Describe alternatives you've considered

Additional context

[要望] 11keyと11Lkeyの切り替え機能

Is your feature request related to a problem? Please describe.
11keyの譜面を11Lkeyの譜面として(その逆も含む)遊びたい場合があり、keyを切り替える機能が欲しい。

Describe the solution you'd like

  • 基本的には、キーコンフィグに付属しているキーコンパターンの機能を利用する。
  • ただし、11keyを11Lkeyとして遊ぶ場合、本来の譜面と難易度が変わる可能性が高いため、ハイスコアの保存対象とはしない。キーコンフィグの保存対象からも外す。
    (ローカルストレージの保存対象外)
  • また、キーを変更することを想定していない作品に対応するため、作品毎にキー変更を許容するかどうかのフラグを譜面ヘッダーに持たせる方向で検討する。

Describe alternatives you've considered

Additional context

  • 11keyと11Lkeyの切り替えに特化した機能を作るのではなく、他のキーの切り替えもできるような機能を実装する。9A/9Bの切り替えも同様。

[要望] 矢印・氷矢印の配色拡張・タイトル背景矢印色の拡張

ショウタさんからの個別要望の代理起案です。
解決策についてはティックルが加筆しました。

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  1. 矢印のデフォルト配色(setColor, frzColor)を譜面毎に設定したい
  2. タイトル画面の背景矢印を表示する時の「色」と「透明度」をヘッダで指定したい

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  1. 譜面別に設定できるよう、setColor, frzColorに対してsetColor2, setColor3, ...のように
    譜面番号に応じたヘッダを作成する。frzColorも同様。
    指定が無い場合は、setColor、frzColorで設定されているものを採用する。
  2. 上述の通り、譜面ヘッダーを追加する。
    欲を言えば、グラデーションが掛けられるならそのような実装にも対応したいところ。
    (仕様としてはtitlegrdに近い)

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  1. 特になし。
  2. 一旦、単色の変更に対応する。
    グラデーション案は、そもそもオブジェクト作成関数から書き換えが必要なため、
    この関数の在り方から考える必要がある。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] オプション項目の非推奨/非表示対応

Is your feature request related to a problem? Please describe.
設定画面の項目で、作品特性上推奨されないオプションがある場合、
製作者側(譜面または全体設定により)でオプションの利用可否・非推奨を
制御できるようにしたいです。

Describe the solution you'd like
制御は以下の3種類とします。

  • Enabled (制御なし) (既定)
    • 対象オプションが制限なく使用できる。
  • Deprecated (非推奨)
    • 対象オプションは使用可だが、製作者側からは推奨しないオプションであることを明示。
      例えば、対象オプションの名前の横に被せて「Deprecated」の表示を掲載し、
      変更した場合には「Play」ボタンを押した後、警告アラートを表示して続行の可否を確認する。
  • Disabled (使用禁止)
    • 対象オプションが使用できない。
      使用すると動作に不具合が生じるケースなど。

対象とするオプションは、(予定分を含め)次の通りです。
Gaugeオプションは回復量やダメージ量を制御できるので、対象としません。

  • Motion
    • 矢印の動きを演出するような作品の場合。
  • Reverse
    • 演出上どうしてもReverseにできない場合(譜面配置で文字を表現するなど)。
  • (ver2.9.2時点未実装) Random、S-Random
    • 演出作品など
  • AutoPlay
    • 力のあるプレイヤーに辿り着いて欲しい譜面など

Describe alternatives you've considered

Additional context
「Disabled」を指定したオプションには、強制的に設定する初期値が必要です。
今後実装される可能性のある issue #205 で、
保存されたデータが優先されないよう設定を考慮する必要がありそうです。

[要望] 判定処理のカスタム処理分離

Is your feature request related to a problem? Please describe.
判定後処理は現状カスタム処理の指定が無く、
判定後に何かさせたい場合にはdanoni_main.jsの直接変更がほぼ必須となっている。

Describe the solution you'd like
以下の関数に対して、カスタム処理を指定する。

judgeIi();
judgeShakin();
judgeMatari();
judgeShobon();
judgeUwan();
judgeKita();
judgeIknai();

Describe alternatives you've considered
特になし

Additional context

ステップゾーン反応時の挙動(仕様)を変えたい

背景・事象

現状、ステップゾーン反応時の挙動は

  • 対応キーのkeyDown時:色を水色(#66ffff)に変える &ヒット用画像表示
  • 対応キーのkeyUp時:色を元に戻す(#cccccc) & ヒット用画像非表示
    としており、キーを押したかどうかで反応する仕様になっている。

しかしこの仕様ではキーを押す必要があり、AutoPlay時には対応できない。
できればこの部分をアニメーション化したい。

発生バージョン

ver 0.34.0
サンプル

状況

未着手(記述時点)

[不具合] Firefox 65:矢印などのマスク系画像が表示されない

Describe the bug
Firefox 65で、矢印などのマスク系画像が表示されない

To Reproduce
初期表示で、mask-imageを指定した画像フィルタが適用されず、表示されない。
※ローカル環境(オフライン)のみで発生します。

Desktop (please complete the following information):

  • OS: Windows 10 x64 (1809)
  • Browser [e.g. chrome, safari] :Firefox
  • Version [e.g. 22] :65

Additional context

[要望] 矢印・フリーズアローのCSSモーション対応

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 矢印・フリーズアローにCSSモーションを付加できるようにする。
    矢印本体を使用した演出への利用を目的に。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • color_dataと同じような仕様でCSSモーション制御ができるようにする。
|motion_data=
300,20,motioncss
400,21,motioncss
|
  • 仕組みとしては、makeArrowmakeFrzArrow関数起動時(矢印生成時)に対して
    以下のスタイルを適用することで実現する。
    animation-duration属性にステップゾーン到達フレーム数を適用することで、
    速度が変化してもモーションが完了するようにする。
    ※この方法でモーションが適用できることは確認済み。
	stepRoot.classList.add(`toRight`);
	stepRoot.style.animationDuration = `${g_workObj.arrivalFrame[g_scoreObj.frameNum] / 60}s`;
.toRight {
	animation-name: leftToRight;
}

@keyframes leftToRight {
	0% {
		opacity: 0;/* 透明 */
		transform: translateX(-50px);
	}
	100% {
		opacity: 1;/* 不透明 */
		transform: translateX(0);
	}
}

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 上記方法の場合、速度が上がるたびにモーション時間が短縮されるため、
    到達フレーム数に合わせ、モーションの途中から再生する方法が考えられる。
    (その代わり、この方法の場合はモーション表示対象が少なくなる懸念がある)

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] ライフ設定の見直し・汎用化 (from: izkdic)

(このissueはizkdicさんの指摘内容を一部加筆修正したものです)

Is your feature request related to a problem? Please describe.
ゲージ設定は終盤に実装したこともあり、細かい設定に対応していない。

  1. ライフの設定で、上限が1000を前提としたものが残っている。
  2. ライフゲージに現在のライフが表示されるが、この値は実際のライフの小数点以下を四捨五入(round)された値が表示される
    そのため、ノルマが750で実ライフが749.75だった場合、
    表記は750でノルマクリアしているように見えるのに実際はFailedという現象が発生する
  3. ボーダーラインのフォントサイズがおかしい(あいすさんのDisco 80'sで発生している)
    想定されたフォントサイズより大きいため、枠をはみ出している

Describe the solution you'd like

  1. ライフ上限が定数として定義されているのにその定数を使わず、
    特定数値を前提としている箇所の見直し
    • ランク計算時の最大スコア=1000000
    • 譜面ヘッダで空欄だったときに適用される各種プロパティ
  2. 表示するライフは実際のライフの小数点以下を切り捨て(floor)したものがよいと思われる。
// Before
document.getElementById("lblLife").innerHTML = Math.round(g_workObj.lifeVal);
// After
document.getElementById("lblLife").innerHTML = Math.floor(g_workObj.lifeVal);
  1. それぞれのサイトのcss設定を継承してしまうことが問題のため、
    danoni_main.css もしくは danoni_main.js 側で文字色、文字サイズを再指定するなどの対応を行う。

Describe alternatives you've considered
特になし

Additional context
ライフの現在値を小数点以下2桁まで厳密に表示したい場合

  • lifeRecovery関数 及び lifeDamage関数内を以下に変更する。(toFixed(2)を追加)
// After
document.getElementById("lblLife").innerHTML = g_workObj.lifeVal.toFixed(2);
  • 初期ライフ値を描画している部分:MainInit内の//ライフ(数字)と書かれた部分にある記述を、
    以下のように変更する(フォントサイズは15推奨)。
// Before
const lblLife = createDivLabel("lblLife", 0, 30, 70, 20, 16, C_CLR_TITLE, g_workObj.lifeVal);
// After
const lblLife = createDivLabel("lblLife", 0, 30, 70, 20, 15, C_CLR_TITLE, g_workObj.lifeVal.toFixed(2));

[要望] フォントを全体的に変更したい

Is your feature request related to a problem? Please describe.
現在は「Meiryo UI」「sans-serif」が指定されていますが、
これらを上書きして別のフォントを設定したいときがあります。

Describe the solution you'd like
Webフォントではない場合、意図しない表示がありえるので、
現状の「Meiryo UI」「sans-serif」はそのままとし、その前に優先フォントを指定できるようにします。

Describe alternatives you've considered
定数 C_LBL_BASICFONT 自体は変更せず、カスタム用にグローバル変数を用意します。
CSSに移動することもできますが、 関数でフォントを指定している箇所があるため、
一旦は現状拡張が良いと思います。

Additional context

[要望] 個別色変化(フリーズアローヒット時)のタイミング変更

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 現状、個別色変化は矢印・フリーズアローの出現時に合わせて自動調整されている。
    しかし、フリーズアローヒット時はステップゾーン到達後しか発生し得ないため、このパターンのみ、逆算をしないようにしたい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • フリーズアローヒット時の矢印番号のみ、逆算しないように変更する。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • 個別色変化を使っていて、フリーズアローヒット時の色を指定している作品では、逆算を考慮して位置調整している可能性があるため、互換性に留意する。

[要望] ヘルプ、チュートリアルの実装

Is your feature request related to a problem? Please describe.
Dan★Oni作品上に、ヘルプ・チュートリアルを実装する。

Describe the solution you'd like
danoni_main.jsとは別に、ヘルプ・チュートリアル用のjsファイル(もしくはhtmlファイル)を作成。

Describe alternatives you've considered

Additional context

[バグ] ver5.0.0: ゲージ設定の詳細表示のズレ

Describe the bug

  • 設定画面のゲージ設定において、カーソルを動かすと詳細表示が1つずつずれる。

To Reproduce
Steps to reproduce the behavior:

  1. 設定画面へ移動する。
  2. ゲージ設定(Gauge)の右カーソルをクリックする。
  3. デフォルトがOriginal開始の場合、LightのときにOriginal、No RecoveryのときにLightのゲージ詳細が表示される。

Expected behavior

  • ゲージ設定の変更に伴って、ゲージ詳細も変更される。

Screenshots

Desktop (please complete the following information):

  • OS: Windows 10 x64
  • Browser :chrome
  • Version :5.0.0

Additional context

[要望]曲データのbase64埋め込み

背景
html版ダンオニについて現状mp3を直接読み込んでいますが、
その関係上mp3ファイルを直接ファイルサーバーにアップロードする必要があります。
作曲者の規約によってはmp3を直接ファイルサーバーへアップロードすることがNGと示されていることがあり、可能であればmp3ファイルを直接配置しない方法があるとうれしいです。

解決方法
現状audioファイルをmp3ファイルのファイルパスとして埋め込んでいますが、代わりにテキストとして、jsあるいはhtmlに埋め込むdatauriによる指定方法があります

https://developer.mozilla.org/ja/docs/data_URIs

以上の方法で以下のようなuri(datauriによりエンコードされた文字列)

data:audio/mp3;base64,base64符号化されたmp3データ

g_audio.src= "data:audio/mp3;base64,base64符号化されたmp3データ"

のように渡せるように出来るようにしたうえでdatauriのデータをhtml/js/外部テキストのいずれかとして渡せるように出来れば音楽ファイルのサイズは増加しますが、作曲者の規約の問題を回避できると思います。

[要望] 判定キャラクタの位置変更、Displayオプションの初期ON/OFF設定

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 判定キャラクタの位置によっては、演出の妨げになる場合がある。
  • 判定キャラクタ位置を変えられるようにしたり、
    判定キャラクタのON/OFFをあらかじめ決められるようにしたい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • 譜面ヘッダーにて判定キャラクタの表示・非表示を設定できるようにする。
    また、別ヘッダーで判定キャラクタ位置をカスタムできるようにする。
  • 合わせて、Display設定の初期設定(ON/OFFどちらをデフォルトにするか)を決められるようにしても良い。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • danoni_setting.jsで定義できるようにしても良いかもしれない。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] 譜面データのフォーマットチェック

Is your feature request related to a problem? Please describe.
特に手入れをする歌詞表示、背景表示データに多いが、現在はカンマとピリオドの打ち間違いがあっても、譜面をそのまま通してしまうため、画面が止まってしまう。
何らかのチェックを行い、読込画面でストップさせるような仕組みが欲しい。

Describe the solution you'd like
歌詞表示、背景表示のフレーム数、識別番号に対して数値以外が入ってきた場合、処理を止める。
(読込画面で止め、タイトルのような警告画面を表示)

Describe alternatives you've considered
もしくは、おかしいデータ以後のデータは読まずにメイン画面へ移行する。

Additional context

[要望] 楽曲データの暗号化・復号化対応

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 現状は楽曲データの暗号化・復号化に未対応。
    このため、キャッシュに楽曲データが残るリスクがある。
    何らかの方法により暗号化(もしくはゴミデータを付加してそのまま使えないように)したい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • javascriptにおいて、いくつか暗号化できるライブラリがあり、その活用を検討する。
    ただし、レスポンスの低下が懸念されるため、暗号化を必須とするかどうかは利用者に委ねる(ヘッダーにより選択できる)形とする。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 自前のアルゴリズムにより暗号化(厳密にはゴミデータの混入・除去)を実装。
    この方法の場合、手間を掛ければ復号できてしまうため、
    復号するためのキーはキャッシュされないような仕組みが必要。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] オブジェクト作成処理の見直し

Is your feature request related to a problem? Please describe.
矢印・おにぎりなど多くのオブジェクトが生成されるときに使う関数は以下の2つがある。
※外部から色変更するオブジェクト全般

createArrowEffect(_id, _color, _x, _y, _size, _rotate);
createColorObject(_id, _color, _x, _y, _width, _height, _rotate, _styleName);

しかし、矢印生成を意識して作ったために他のオブジェクトを作成する際、
cssの名前に本来の意味とは異なる名前(Arrowなど)をつけなければならず、
汎用的な関数になっていない。

Describe the solution you'd like
上記を簡略化した関数を1つ用意する。
丸ごと変えるのは、後方互換性に影響するため既存の設定部分は
変えても影響が無いところを除いて、極力変えないようにする。

Describe alternatives you've considered
特になし

Additional context

[要望] オプション設定の可変対応

Is your feature request related to a problem? Please describe.

  • オプションを配列で準備するようになったので、
    カスタムしやすいようにconstになっている定数の一部を可変にしたい。

  • 具体的には、g_speedsなどの速度配列が可変にできるように、
    C_MAX_SPEED(最高速度)や C_MIN_SPEED(最低速度)を変えられるようにしたい。

Describe the solution you'd like

  • C_MAX_SPEED(最高速度)や C_MIN_SPEED(最低速度)を可変にする。
    設定は譜面ヘッダーから可能にする。

Describe alternatives you've considered

  • custom側から設定できるようにする。
    ただし、できれば譜面ヘッダーおよびsettingで行えるのが良い。

Additional context

[バグ] 長時間の楽曲を読み込む場合のエラー

Describe the bug
(不具合の内容を記述してください)

Vivaldiブラウザにおいて、長時間の楽曲を読み込むとPlease Waitで止まる。
楽曲をArrayBufferに格納している部分で発生している。

To Reproduce
(不具合が発生した手順がわかれば、順を追って記述してください)

  1. 下記作品でPlay!を押したときに発生します。(Chromeでは再現せず)
    http://www.omission0.com/danoni/175-186-kuina/

Expected behavior
(不具合に対して、本来正しいと思われる動作を記述してください)

通常同様にプレイ画面へ遷移する。

Screenshots
(不具合時のスクリーンショットや具体的なコードがわかれば、リンク・記述をお願いします)

Desktop (please complete the following information):
(不具合が発生したOS・ブラウザのバージョンを記述してください)

  • OS: [e.g. iOS] Windows 10 (1905)
  • Browser [e.g. chrome, safari] Vivaldi
  • Version [e.g. 22] 2.6.1566.49 (32bit)

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

以下が参考になるかもしれません。
https://torisky.com/js%EF%BC%9Auncaught-in-promise-domexception%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A8settimeout/

[要望] 譜面ごとに外部ファイル分割

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 譜面ごとに外部ファイルを分けられるようにしたい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • v7.7.0で実装している外部dosの再読込を利用して、読み込むファイルを譜面によって変えるようにすればできそうな気がします。
  • 外部dosの複数指定方法は、preloadImagesのまとめ読込のように「dos*.txt」みたいにして、アスタリスクを譜面番号に置き換えて読み込むのが手っ取り早いかな?と思っています。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 外部dosの中でカンマ区切りして、譜面ファイルを個別に指定する方法。
    いずれにしても、検証は必要です。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • 上述の方法なら、特に譜面ヘッダーの追加は無くても良さそうです。
    Object.assignなどを使って、譜面データを随時上書きする形になると思います。

[対応済]FirefoxでonKeyDownが反応しない

背景

Firefoxでは、document.onkeydown時に event.keyCode で値が取得できない。
このため、以下のように対処した。

対処法

// ブラウザ判定(
var g_userAgent = window.navigator.userAgent.toLowerCase();
if(g_userAgent.indexOf("firefox") != -1){
    var setKey = evt.which;
}else{
    var setKey = event.keyCode;
}

[要望] リングノートの実装

Is your feature request related to a problem? Please describe.
言うだけは自由(^o^)
サリングにあるようなリングノートを追加する構想です。
ダンサリを標準実装する、みたいなもの。(イコールではない)

Describe the solution you'd like
サリングの記述フォーマットがあるので、それに近いことができないか?というお話です。
ただサリングは秒数、Dan☆Oniはフレーム数という違いがあるため、
何らかの変換は必要だと思います。

Describe alternatives you've considered
将来的に複数のフォーマット取り込みができるようにしたいです。
(エディターが無いので手打ちだと大変)
また、サリングの記述フォーマットではDan☆Oniと重複する機能があったり、
それ自体の機能ボリュームも大きいため、機能の絞り込みは必要だと思っています。

Additional context

[要望] ファイル読込失敗時のエラー表示

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • ファイル読込失敗時、エラー表示されるようにしたい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • 現状はエラーが表示されないため、ブラウザの開発者用のエラーを確認するしかないが、それを極力減らしたい。
  • 初めからエラー登録しておき、読込が完了したら消す仕様にすれば、エラーがどうかを判別できるはず。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 特定のエラー文を除去する処理が必要になるかもしれない。
  • 現状はエラー文を足し込んでいるので、対象のエラー文ごとsliceを掛ければ、特定のエラー文だけを消せるのではと思っている。
  • 詳細は検証が必要。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • 引数埋め込みのエラー文を抜き取るときは、その引数の持ち回りが必要になる可能性がある。

フェードイン時にタイミングがずれる

Describe the bug
フェードイン時にタイミングがずれる場合があります。

To Reproduce
eXtend the Raveをfadein 1%でプレイすると、0%と比べて譜面が2拍程度遅れます。
作品やfadein値によってずれ方が異なるようです。環境にも依るかもしれません。

Desktop (please complete the following information):

  • OS: WIndows 10
  • Browser: Chrome
  • Version: 72.0.3626.81

Additional context
Platebeatsでも似た問題がありましたし、Audio要素は正確なシークが出来ないのかもしれません。
高精度に制御できるらしいWeb Audio APIを試してみようと思っています。

[要望] LocalStorage(作品別)のキー統一

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 現状では、http/httpsで作品別のローカルストレージのキーが変わってしまう。
    どちらにアクセスしても同じ設定が取得できるように設定を変更する。
    ※今後、httpsのサイトが増えていく可能性があるため、事前に手を打っておく。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • 現状はhttp始まりのサイトが多いため、http側に揃える。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 特になし。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] 速度変化表記 (speed_data/change)の統一

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 現行は過去(10年以上前)の経緯で、5keyと5key以外で速度変化表記が異なっている。
    現在はこれまでのエディターの事情でこの仕様を引きずっているが、
    今後を考えて統一(厳密にはどちらでも同じ意味と見做す)したい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • キーの種類に関係なく、speed_dataspeed_changeをどちらも利用できるようにする。
    どちらも指定された場合は、speed_changeを優先する。
    (理由としては、speed_changeをわざわざ指定するのは5key以外のケースに限られるため)

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 特になし。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • ごく一部の作品で、speed_data及びspeed_changeの併用があった場合に影響する。
    この変更を行った後はメジャーバージョンアップ扱いとした方が良い。
  • 今後CW Edition用にエディター等を作る場合、(途中で速度が変わる)速度変化は
    speed_dataに統一する方向とする。
    speed_changeは互換性保持のため残す。

[要望] Hidden/Suddenオプションの実装

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • Hidden/Suddenオプションの実装

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • 一定位置(画面**)より矢印・おにぎりのフェードイン・アウトを行うオプションの追加

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 状況により、Hidden/Sudden利用時はCSSモーションは無効化することも考える必要がある。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • これまでの経緯は後述。

[要望] ゲージ設定の機能拡張

Is your feature request related to a problem? Please describe.
現状、ゲージ設定はライフ制(Survival)/ノルマ制(Border)の2種類しかなく、
前者は途中Failedあり、後者はFailedなしで固定されています。

また、前者は矢印数依存なく固定回復&ダメージであるのに対して、
後者は矢印数に応じて回復・ダメージが決まるという特徴があります。
しかし、実際の設定ではHardゲージのように途中Failedありで矢印数依存するものがあり、
現在の設定値では必要な設定が満たせなくなっています。

Describe the solution you'd like

  • 途中Failedのあり/なしをライフ制/ノルマ制とは関係なく管理する配列を用意する。
  • ノルマ制のゲージ設定において、Easy・Hardをデフォルトで追加する。
  • ライフ制のゲージ設定において、Practiveモード(ダメージ0)をデフォルトで追加する。

Describe alternatives you've considered
将来的に、これらの設定値も譜面側から設定できるようにするのが望ましいです。

Additional context

[要望] 譜面データの外部ファイル化

Is your feature request related to a problem? Please describe.
譜面データは現状、htmlに埋め込みとなっているが、
この部分を外部ファイル化することで制作上の利便性を図る。

Describe the solution you'd like
以下の仕様とすることで、解決できると思われる。

  • 外部ファイル読み込みのときは、dosデータの中身を"*.txt"とする。
  • このとき、htmlファイルと同じ名前のtxtファイルを読み込む。
  • dosデータの中身が"*.txt"でないときは、これまで通りの読み込み。

このテキストデータは、他の外部ファイルの仕様に準拠させる。

Describe alternatives you've considered
特になし

Additional context
外部ファイルのキャッシュに留意すること。

[要望] 歌詞表示(word_data)の複数階層化対応

Is your feature request related to a problem? Please describe.

  • 歌詞表示で使っている歌詞表示(word_data)にて、
    現在は上下2つずつのみの使用になっているが、
    back_data, mask_dataなどと同様、複数階層化させたい。
|word_data=
240,0,歌詞テスト,
240,2,<br>歌詞テスト,
|
  • また、現在のフェードイン・フェードアウトの仕様が
    フレームを拾いながらOpacity(透明度)を変えるようになっているが、
    この部分はCSS化できる(はず)ので、CSS化してもっと単純化させたい。
    (欲を言えば、フォーマットはそのままにしつつ、back_data, mask_dataの仕様に近づけたい)
// 歌詞フェードイン・アウトで
// フレームごとの処理が必要なため、ver5.2.1時点では同時に4本流す必要がある
fadeWord(`0`);
fadeWord(`1`);
fadeWord(`2`);
fadeWord(`3`);

Describe the solution you'd like

  • まず、フェードイン・アウト処理をCSS化する。
    これによりword_dataの複雑な処理の一部が解消される見込みなので、
    そのうえでback_data、mask_dataのような複数階層化に対応させたい。

  • word_dataの2番目の要素が奇数なら上段、偶数なら下段にする。

  • そこが実現できた場合、他のCSSモーションを利用して歌詞表示の幅を広げたい。

Describe alternatives you've considered

  • back_data、mask_dataと機能競合しているため、
    word_dataのいいところとback_data、mask_dataのいいところを統合させるのもありだと思っている。(ただし互換性の問題あり)

Additional context

[要望] クレジットの複数名表記対応

Is your feature request related to a problem? Please describe.

  • 現状、タイトル画面のクレジットは製作者名・アーティスト名の2クレジットまでであるが、
    実際には合作など複数名義の作品がある。
    複数名義に対応していないため、何らかの方法で対応したい。

Describe the solution you'd like

  • データ取り込みについては譜面ヘッダーのtuningを拡張するか、
    別変数を定義することで実現は可能。
  • 表示場所については別画面とする方法もあるが、単純にクレジットボタンを用意するだけの場合、パッと見て製作者名とアーティスト名がわからないため、少なくとも合作名義がわかるようにしたい。
  • 合作名義内の個人クレジットについては2人、3人など変動するため、ボタン数が変わることに対応できるかは検討が必要。
    Aタグによるリンク表記とする方法もあるが、その場合はAタグ用のCSSを整備する必要がある。

Describe alternatives you've considered

Additional context

  • 実際は、製作者1人/アーティスト1人のケースがほとんど。
    このため、現行の方法は方法として、極力維持するのが望ましい。

[要望] タイトル・リザルトモーションのランダムジャンプ

ショウタさんからの個別要望の代理起案です。
解決策についてはティックルが加筆しました。

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

タイトル・リザルトモーションにおいて、確率でジャンプ先のフレームを変えたい。

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

例えば、以下のように指定します。
|backtitle_data=
300,0,[loop],600:800:800:800|
コロン(:)で分離。
この例の場合、25%の確率で600フレーム、75%の確率で800フレームへ移動。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

上記の例では[loop]指定にしていますが、別のコマンド名にしても良いかもしれません。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

[要望] 譜面情報子画面の実装

Is your feature request related to a problem? Please describe.
(要望や問題点について記述して下さい)

  • 設定画面の Difficulty の横に Info アイコン( 例えば:ℹ️ ) をつけ、
    それをクリックすると譜面の詳細情報を表示するような機能が欲しい。
  • その機能のON/OFFは製作者に委ねる
    • デフォルト:ONで、譜面ヘッダーによりOFFにできる
    • クリアしないと解禁されないデータの設定(数が多いと難しいかも)

Describe the solution you'd like
(要望や問題点の解決方法を記述してください)

  • 表示対象機能(案)

    1. 現時点のハイスコア
    2. レベル計算ツールでの計算結果(ツール値)
    3. 速度変化の増減状況グラフ
    4. 譜面の密度状況グラフ
      (テンポを測るのが厳しいため、平均を取って密度の高い/低いを表記。
       レベル計算ツール++の8分割グラフに近いイメージ)
    5. サイト内の難易度表記(任意。譜面ヘッダーから投入)
    6. 楽曲のBPM(任意。譜面ヘッダーから投入)
    7. 一言コメント(任意。譜面ヘッダーから投入)
  • 表示対象機能の補足

    • 従来の速度変化のMin/Max表記では、瞬間速度上昇などがわかりにくい問題がある。
      グラフ化することで可視化し、適切な速度を選択させる仕組みにする。

Describe alternatives you've considered
(上記の方法ができない場合、他の解決方法案があれば記述してください)

  • 全部を一度に実装するのではなく、段階的に実装することが考えられる。

Additional context
(その他、お気づきの点がありましたらご記入をお願いします)

  • Difficulty直下のスペースは他の作品で使われていることがあるため、
    なるべくその位置にボタンがラベルを配置しないよう留意する。
  • 設定画面で一度譜面の読込が必要。
  • プレイ回数・クリア回数の表現も考えられるが、LocalStorage保存に関わるため、
    上記がある程度固まってから考慮する。
    (HardクリアやSuddenDeathクリア、フルコンボやパーフェクトなど
     保存し始めるとキリがない話のため)

[要望] style属性からClassName属性への移行

Is your feature request related to a problem? Please describe.
現行のDan★Oniソースでは実装優先の事情により、
オブジェクトに対してstyle属性により直接スタイルシートの中身を書き換えています。
このやり方では、将来的なデザイン変更に対応しづらくなる可能性があります。

Describe the solution you'd like
将来的なスキン変更を見込み、
style属性を直接書き換える部分を、段階的にCSSのclassNameへ移行させ、
できるだけClassNameを使用する実装に置き換えます。

Describe alternatives you've considered
既存関数は互換性維持のため当面残します。
メジャーバージョンアップの際に関数の改廃を検討することとします。

Additional context
現状、Canvasのwidth/heightのサイズを使用している箇所があります。
具体的には、ボタンの横サイズ、曲名クレジット表示位置などのX/Y座標やサイズです。
この部分は動的に変えるしかないため、例外的にstyle属性を残す方向とします。

横一列17keyを作れるようにしたい

Is your feature request related to a problem? Please describe.
17keyのデフォルトがParaFla版のScroll=Alternate相当になっています。
ゲーム性が大きく異なるため、変更可能にしたいです。

Describe the solution you'd like
譜面ヘッダでPtnChangeのデフォルト値を変更可能にする。
両手用5key作品など、17key以外でも役に立つと思います。

|ptnDefault=0$1|

数値指定だとPtnChange周りの互換性が難しくなりそうなので、名前を付けたほうがいいかもしれません。

|ptnDefault=Alternate$1line|

Describe alternatives you've considered
17Akey、17Bkeyなど別キー扱いにする。

Additional context

[要望] danoni_custom.jsにサンプルコードを追加

背景・事象

すべてを対応するのは難しいが、
danoni_custom.js に どんな変更ができるのかのサンプルを
コメントで提示できるようにしたほうが良い。

判定領域の変更、AAキャラクタの色、
ランクの組み合わせ変更、プレイ時のスコア状況表示など
変更したいポイントに沿ったサンプルがあるとわかりやすい。(WikiでもOK)

対応可否

直近反映予定(随時)

補足

[要望] ボタンの機能拡張

Is your feature request related to a problem? Please describe.
現状、ボタンの表示はカスタムイベントの後に配置されているため、
自由にデザインすることができない。

Describe the solution you'd like

  • ボタンイベントの後にもカスタムイベントを配置する。
  • デフォルトのボタンに対して、カスタムボタンがあればそれに置き換える。

Describe alternatives you've considered

Additional context
もともと、ボタンが前面になるようにカスタムイベントを配置している。
不用意に拡張することで、本来の設計意図から外れないよう留意する。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.