2018年1月6日土曜日

ガルパの計算式についての覚え書き

バンドリ! ガールズバンドパーティ!のスコア計算式についてメモ

※計算式はあくまで推測なので間違っている可能性もあり、ここおかしいんじゃないか?ってものがあったらコメントなりで指摘していって下さると嬉しいです。

まず総合力の計算式は次のようになっている模様。

バンド総合力=各カードの総合力+floor(各カードの総合力×置物のボーナス倍率)

要は置物ボーナスは小数点以下切り捨て、切り捨てが行われるタイミングは置物のボーナスが全て合計されたあとで、それまでは小数点以下込みで処理される。
チャレンジライブの場合はここまで一旦処理されたのち、ボーナスが付く。式にすると次の通り。

チャレンジライブ総合力=バンド総合力+floor(対象カードの総合力×キャラ、属性ボーナス倍率)

こちらも同じく小数点込みで処理され、最後に切り捨てが行われる。
最後にスコアの計算について、ここに関しては他の多くのサイトでも言及されている通りで、切り捨ての処理のタイミングがキモ。式は次のようになる。

1ノーツのスコア=floor(floor(バンド総合力×3×{(楽曲の難易度 - 5)×0.01+1}÷総ノーツ数×タイミング判定×コンボ係数)×スキルボーナス)

タイミング判定とコンボ係数は

判定係数
PERFECT1.1
GREAT0.8
GOOD0.5
BAD0
MISS0


コンボ数係数
0~201
21~501.01
51~1001.02
101~1501.03
151~2001.04
201~2501.05
250~3001.06
301~4001.07
401~5001.08
501~6001.09
601~7001.1
701~9251.11
926~1.12?


見ての通り切り捨てのタイミングが二回ある。コンボ係数は今の所926以上は1.12として計算しているが、正しいのかどうかは不明。コメントいただきました、1.11のようです。計算機もそのように修正しました。
ちなみにガルパ計算機のスコア計算はこの計算式を元に、各譜面のスキル発動位置と対象ノーツ数のデータベースを利用して計算している。スキルノーツの押すタイミングは完全にピッタリを想定しているのようなので、曲によってはスキルノーツの押すタイミングを僅かにずらす事で、対象ノーツ数を増やしてスコアを伸ばすテクニックが存在している。



2017年8月11日金曜日

最近ガルパをやっています

近況報告
最近ブログの更新もそうですが、そもそもプログラミングなんかが出来てないのでした~

このブログはあくまで備忘録なので、近況報告とかするつもりはなかったのですが流石に半年も更新しないのは、ねえ?

さて、下書きではboost+cocos2dxで遊んでみよう!みたいなのもあったりするのですが、今年いっぱいは多分下書きのままでしょう。
そもそもCを最近やってません。で何をしてたかと言うとスマホゲームをやってました。音楽ゲームが好きなのでDeemoの後に目を付けたのがガルパってゲーム。ソシャゲはあまりやらないのでスマホでキャラが全部アニメーションになっているのは衝撃的でしたね、ボイスまでついてるし。時代の進歩って凄い。
で、結構やりこんでた結果こんなものを作っていました。


遂にC以外の言語に手を出した!装飾は面倒だったのでほぼやってませんが久々にソースコードをゴリゴリ書き出すのは楽しかったです。
動機は単純に「欲しかった、どうせ作るのなら公開したかった」といった具合。前に艦これをやってた時に散々お世話になった制空値計算機みたいなのを作ってみたかったのでした。
そんなわけで公開前提だったのもありとにかく短期間で仕上げようとhtmlもjavascriptもよくわからないまま時間最優先で汚いソースコードを書き上げました。保守性皆無。
その後流石に汚すぎたので殆ど書き直しました。キャラや楽曲のデータはsqliteで管理、その流れで計算部分はjavascriptだったのを全てphpで書き直し。ただこれ計算する度にサーバーにデータ送って計算させてってしてる訳だからちょっとどんくさかったり。無いとは思うけどサーバーに負荷かかるようならphpの実行停止食らって動作しなくなるかもしれないし。
また書き直すとしたら計算部分はjavascriptを出力するようにするべきかもしれない。

あとこれを公開する時にさくらレンタルサーバーを借りたのでそこにホームページを作りました。それに伴ってブログ名も変更。
せっかくレンタルサーバー借りたんだし色々活用してみたいですね。

2017年1月10日火曜日

遅ればせながら、あけましておめでとうございます。

久々の投稿ですが生きています、というより何も無い時は割とこのくらいの投稿頻度の予定です。

今はIS01の調整もほっぽりだして、cocos2d-xでboostライブラリを使おうと四苦八苦しています。とりあえずWindowsPhoneとiOSで使える段階まで来たものの、Androidがかなり難航中。

次回の投稿のネタはこれにすることにしたので、Androidで使えるようになったらまた投稿します。

2016年12月5日月曜日

IS01を手に入れました。

2011年頃のスマホはどれもトリッキーなのが多くて好きですが、そんなトリッキースマホのある意味筆頭ともいえるIS01を手に入れました。

なんというか、凄く電子辞書です。QWERTYキーボード付き端末としてはL-04Cも持っているのですが、サイズ感といいまた違った良さがあって、とても好きです。

で、物理キーボード付きスマホ買ったからには意味も無くプログラミング環境にしてしまいたいのですが、Android1.6なのでC4Droidが入らない!
非公式で出ているAndroid2.3を入れるのも手ですが、仕方ないとはいえIS01の独自機能は粗方死ぬのでそこまでやるのも考え物。というわけで現在純正のまま出来るとこまでカスタムしてみようというスタンスで弄り倒しています。

一先ずgccが動くところまで到達!


ひと段落ついたらまとめでも上げようかな。

2016年12月2日金曜日

cocos2d-xのインストールでつまずいた話

cocos2d-xのインストールでつまずいた話

cocos2d-xは様々なOS向けのゲームをビルド出来るのだけど、それ故干渉や操作で手こずった事があったのでメモ
OSはWindows10Pro 64bit

まず公式サイトなんかを参考にcocos2d-x 3.13.1をセットアップするものの、何故かサンプルコードがUWP(win10)だとエラーを吐いてビルド出来ない。
結局3.13.1を消して3.12を入れたところすんなりとビルドできたので、恐らくcocos2d-x自体のバグか、VisualStudio2015の最新版との相性が悪かったのか、とにかく3.13.1は避けた方が良さそうだ。

次に困ったことが、これはcocos2d--xが悪いわけではないのだけど、VMwareが使えなくなったこと。
結局原因だったのはVisualStudioのオプションで、WindowsPhoneエミュレーターのためにHyper-Vが有効化されていたためだった。私は実機を持ったのと、Cドライブの空き容量が少なくなっていたのでエミュレーターを消してしまうことで対処したが、そうはいかない人は必要に応じてHyper-Vだけ無効化してしまえばVMwareを使うことが出来る。

ただどうにもUWPやWindowsPhone8.1アプリは動作が重い、元来相性が良くないのだと思う。これもバージョンを更に変えることで解決できる問題なのだろうか?

2016年11月16日水曜日

備忘録始めました

前々からやってみたかった備忘録をやってみようかなって思って始めました。
普段は趣味でプログラミングやガジェット弄りなんかをしています。

特にプログラミングを専攻していた訳でもないのでレベルの高い話題は出来ませんが、散々悩んだ設定方法だったりを記していく王道的備忘録をやっていこうと思います。