丸いキャラクターが跳ね回る、歩き回る、引っ張られる「ばねたい」を公開
東方のゆっくり系のコンテンツとかを見ていてこんな感じのを作ったら
面白いのではないかと思って作ってみました。
ぼよんぼよんする感じを楽しんでいただければ幸いです。
埋め込んだものが現在動作しないためこちらにおいています。
http://www.rmake.net/dycoon/files/banetai/test.html
操作方法
出現させたいキャラクターを左下から選んで画面
(地面の線より上でほかのキャラクターがいないところ)をクリックすると
キャラクターが落ちてきます。
キャラクターをドラッグすると引っ張ることができます。
キャラクターはランダムに歩いたり、時々ジャンプしたりします。
キャラクターはジャンプするときに登録されている言葉をしゃべります。
下の真ん中の紫色のテキストエリアに文字列を入力してリターンを押すと
キャラクターがしゃべる言葉を設定できます。
右下の"Delete All"ボタンを押すことですべてのキャラクターを消すことができます。
意識したもの
これを作るに当たって意識したものは以下のとおりです。
- 東方Projectから派生した"ゆっくり"
- LocoRoco http://www.jp.playstation.com/scej/title/locoroco/
- Soda Constructor http://sodaplay.com/creators/soda/items/constructor
今後の展望
ありえるとしたら次のようなものがあるかと思います。
技術的な話
キャラクターの挙動は基本的なmass-springモデルでおこなっています。
キャラクターを歩かせたりジャンプさせたりする動きは
ばねの自然長を変化させることでおこなっています。
(ここらへんSoda Constructorっぽい)
キャラクターは12角形の形をしており、中央から12角形の頂点へのばねと
12角形の辺のばねを持っています。
当たり判定は中央から頂点への線分と、12角形の辺の線分との交差を求めています。
交差した場合は頂点を辺の表側に押し戻すような力を発生させています。
頂点がほかの三角形の中の頂点にはまり込んでしまう場合があります。
その対策としては、そういうのが検出されたら隣の頂点と入れ替えることで、
この種のはまり込みを防止しようとしています。
ただ、これは別の種類の破綻を起こすことがありますので
あまりよい方法ではないのかなと考えています。