試作ロープでお茶濁し(wonderflにUP)
=前置き=
今週は寝不足でたいしたことができなかったので、もともと趣味の方でやるはずだったけど仕事でも使いそうなので試作してみた「ロープ」をUPしてお茶を濁す。
=Flash=
タイミング的にwonderflに上げるのはムリだったので、はてなダイアリーの方に久々にアップロード。
左右のキー入力でロープを揺らすことができる。位置にあわせて入力すれば、徐々に揺れを大きくできる。
=アルゴリズム=
やっていることは単純で、関節の数だけ「ポイント」を用意し、それぞれに
- 速度と重力による移動先を計算
- 互いのポイントが一定距離になるように修正
- 修正後の位置を元に速度を逆算
を行っているだけ。
土日にwonderflの方にも上げるので、詳しくはそちらのコードで。
=ゲームに使う場合の問題=
見た目的にはそれっぽくなっているものの、ゲームのロープアクションとして使う場合「先端の挙動」に問題がある。(ので、仕事に関係してるけどここにUPした)
先端の速度が一番速くなるのは「下端に到着する寸前」で、ユーザとしては「一番速いタイミング=ロープを離れるべきタイミング」の方がわかりやすいものの、この場合は真横〜下に落下してしまい「次のロープへのジャンプ」にしにくい。
そのため、「先端の速度が最高速になるのは下端を過ぎたあたり」とか「先端の移動パターンは振り子とほぼ同じ」という状況の方が望ましく、それは別のアルゴリズムになると思う。
あと、細かい話だと「FPSの変動に正確に対応できない」というのがあるけど、あまり大きな問題ではないし説明も難しいのでこちらは省略。
ちなみに、関節の位置がわかってしまう問題に関しては、表示だけベジエを使うことで誤魔化せると思う。
=予定=
ようやく長めの睡眠時間を取れて少し調子が戻ったので、この調子で土日も回復できれば次のやつに取り掛かりたい。再び調子が戻るまでは体調回復の方に専念して、制作は休む予定。