2013年8月24日土曜日

鉄拳(格闘ゲーム) : コンボ図作成ツール

ネットに載ってる鉄拳のコンボって一目では分かりませんよね。 例えば「3rp-6rkrklk-rplplk」のような書き方になります。 色々な攻略サイトを見て回っている人でもすんなり頭に入るのは少数派なのではないでしょうか?

私がブログに載せる場合は

のような図をinkscapeで描いて載せてました。 たいした手間ではないんですが、ちょっとした手間ではあります。 「なんとかならないか?」ってことで、javascriptでテキスト表記から図を作るツールを作ってしまいました。 もし良かったら使ってください。 基本的に攻略サイトやブログの記事を書く人向けのツールですが、自分用のコンボメモを作るときにも使えるかと。

レボリューション用に作ったのでTT2の方はよく分かってません。 チェンジ表記とかはないのでご了承を。

興が乗ったのである程度作りましたが、よく考えたら鉄拳のコンボなんて大量に書く物じゃないですよね? ってことで結構適当な作りです。 正常系のみ動作確認してバグ在中。 使う場合、エラーメッセージとか適当なので変な文章が表示されたらカンや雰囲気で対処してください。 なんか変になったらページリロードで。

インデックス

ツール

コマンド :

ここにサンプル画像またはエラーメッセージが表示されます。

・svg出力(通常)

・svg出力(埋め込み)

動作確認環境

windows7 homeの次のブラウザで正常系のみ動作確認をしました。

  • firefox 23
  • google chrome 29
  • ie 10

これ以外の環境でもjavascriptとsvg、データURIスキームが使えるブラウザなら動くかもしれません。

使い方

ツールのコマンド欄にコンボのテキスト表記を書いて作成ボタンを押すと、そのすぐ下にサンプル画像が、2種類のsvg出力欄にそのコードが表示されます。 サンプル画像を見て、その内容でよかったらsvg出力(通常)欄のコードをテキストエディタ(メモ帳など)にコピー&ペーストして、文字コードUTF-8、拡張子svgで保存します。 (svg出力(埋め込み)はオマケ、後述。) svg画像はただのテキストファイルですが普通の画像ファイルと同じように扱えます(ビューアは限られる)。 ブラウザなどで正しく表示されることを確認してからウェブサイトで使ってください。

コンボの書き方が間違っていたら、サンプル画像が表示される場所にエラーが表示されます。 それっぽい修正をしてリトライしましょう。

svg画像はけっこう前からある規格ですが、本格的に閲覧環境が普及しだしたのは最近です。 PCの新しいブラウザや新しいスマホでは普通に表示できます。 しかし、数年前のブラウザやゲーム機のブラウザでは表示できません。 また、ブログなどによってはsvg画像のアップロードを受け付けていない場合もあります。 普通はsvg画像のままでも大丈夫でしょうけど、少しでも閲覧/投稿できる環境を増やしたいのならpng画像などに変換してください。 一番簡単な変換方法はブラウザに表示してPrintScreenキーなどでキャプチャすることです。 もうちょっと丁寧に変換したい場合はinkscapeなどのsvg画像を編集できるソフトを使ってください。

このツールはコンボの分岐や繰り返し表示に対応しています。 しかし、適当な作りなので複雑な図を作ると矢印が間延びしたり、矢印が重なったりしてしまいます。 そういうときは別のツールで修正してください。 一番簡単な方法はinkscapeでの編集です。 この場合は色々要らない属性やノードが追加されてしまいますが、サイズにこだわりがなければ大丈夫でしょう。 それが無理なら、png画像に変換して適当なペイントソフトで加工します。 レイヤーの扱えるペイントソフトがお勧め。 入力の先頭に#を付けると矢印が出力されなくなるので、ペイントソフトで加工する場合は使ってください。 簡単な修正をするだけでsvgの仕様がさわり程度分かっているなら、テキストエディタでも修正できます。 svgの要素は技ごとにdefsに登録してあるのでちょっとずらす程度なら書き換える部分はそんなに多くなりません。

生成されたsvg画像はインラインsvgとしてhtmlに埋め込むのには向きません。 単純なidを使っているので他のidと重複してしまうためです。 svg画像は外部ファイルとして使うか、データURIスキームで埋め込んでください。 svg出力(埋め込み)にはそのデータURIスキーム用のimg要素が出力されます。 状況は限定されますが、このブログのようにhtmlタグは自由に書けるけど投稿できる画像形式は限られている場合などに使ってください。 htmlコードの画像を置きたい場所にこのtextareaの内容をコピー&ペーストすれば外部ファイルを用意しなくても表示できます。 「埋め込みすぎて肥大したらどうなるか」ってのは常識の通りです。

入力記号の説明

コンボを書くのに使う記号について説明します。 けっこう独自表記は多いです。 図になってしまえば記号は忘れても問題ないので、とりあえずツールを使う前だけでも目を通してください。

・攻撃ボタン

lpなどのボタン1つやwp、wkは一般的かと思いますが、他は独自表記です。 lp+rkとかを解釈するコードを書くのが面倒でこうなりました。

lp rp lk rk
wp wk wl wr
nlp nrp nlk nrk
sl bs all [ ]

nlpなどボタン3つ押しは「lp以外」から、sl、bsはスラッシュ「/」、バックスラッシュ「\」からとりました。 スライド入力には [ ] の括弧を使ってください。

・方向ボタン
7 8 9
4 5 6
1 2 3
・方向ボタン(押しっぱなし)

普通の方向ボタンの後ろにhを付けてください。 (holdの略です。) テキスト表記では表現しにくい「方向ボタン長押し」はこれで表現できます。 まぁ、表現できなくても通じるってのはありますけどね。

7h 8h 9h
4h 6h
1h 2h 3h
・方向ボタン短縮

ジャイアントスイングなどのコマンドはそのまま描くと横長になってしまいます。 それで、短縮した図案を用意しました。 ついでに別のコマンドも短くできそうなのは用意しました。 もし良かったら使ってください。 使ったら説明しづらくなる場合は適宜で。 サイドステップ以外は普通の記述を { } で囲むことで指定できます。

マーク / 入力記号 説明
{66} ステップイン
{66h} ステップインの2つ目の6を押しっぱなし。 普通のステップインでもよさそうだが、オフィシャルの技表では2つ目の6が押しっぱなしだったので一応用意。
{666} 走る
{44} ステップアウト
{ss} サイドステップ
{641236} ジャイアントスイングコマンド
{6523} 風神ステップ
{236} 特殊ステップ前
{214} 特殊ステップ後ろ
・状態表示

コンボがつながる状況やキャラクターの状態を表す補助記号です。 完全に独自記法です。 使った方が分かり易いと思って用意したんですが、使うと横に長くなるという欠点も。 使わない場合はテキストで補足説明が必要な要素ですが、使ったとしても補足説明は必要ですね。 まぁ、説明無しで使ってもマイナスにはならないと思います。 使う人の趣味にあうなら使ってください。

マーク / 入力記号 説明
! カウンター後のみつながるコンボに付ける。 ガード不能と紛らわしいかもしれない。
? 受身を取られるとつながらないコンボに付ける。
{pos} 特殊な構え中に技を出すときに書く。 どの構え中かはテキストで要補足。
{pos_} 基本的に{pos}と同じ。 コンボの途中で、前の技で特定の構えになっているのが明らかな場合、こちらを使う。
{parry} 下段捌き始動のコンボで使う。 前に3を置いて 3{parry} と書いてもいい。
{ws} while standing。 立ち技と区別するため、立ち上がり途中の技のボタンの前に書く。
{ws_} 基本的に{ws}と同じ。 コンボの途中で、前の技の後しゃがんでいるのが明らかな場合、こちらを使う。
{fc} full crouch position。 立ち技と区別するため、しゃがみ中に出す技のボタンの前に書く。
{fc_} 基本的に{fc}と同じ。 コンボの途中で、前の技の後しゃがんでいるのが明らかな場合、こちらを使う。
{back} 背を向けた状態。
{back_} 基本的に{back}と同じ。 コンボの途中で、前の技の後に背を向けているのが明らかな場合、こちらを使う。
{handstand} カポエラ使いの逆立ち中。
{handstand_} 基本的に{handstand}と同じ。 コンボの途中で、前の技の後逆立ち中なのが明らかな場合こちらを使う。
{relaxed} カポエラ使いの座り中。
{relaxed_} 基本的に{relaxed}と同じ。 コンボの途中で、前の技の後座り中なのが明らかな場合こちらを使う。
{hold} 最後のボタンを押しっぱなしにする。

書き方の例をいくつか。

ドラグノフのロシアンフック・アサルト始動のコンボです。 {666}rp!-lklp-rklp-2rkrkと書くとこんな図になります。

ロシアンフック・アサルトはカウンターヒットで浮きます。 そのときしかつながらないコンボには!を付けて書きます。

クニミツの細氷始動のコンボ3lk!rp-4lkrk

どうやら細氷は最初の中断蹴りがカウンターヒットしたときのみ2発目がつながるらしい(ホントかは未確認)です。 で、この場合どこに!を書くか悩ましい。 2発目の後に書くのも違うし、先頭に書くか1発目の後に書くかということになると思います。 技の途中で!を書くと読みにくいですかね?

キングのレッグブレーカー(3lp)-ボディスマッシュ(3rp)のコンボ、{fc}3lp-{fc_}3rpと書くとこんな図になります。

最初のレッグブレーカーはプレイヤーが自分でしゃがんだ状態を作らなければならないので普通の{fc}。 そのレッグブレーカーはしゃがみステータスなので続けて技を出せばしゃがみ技が出ます。 そこでボディスマッシュの前は薄い表示{fc_}です。

(立)とか(構)、(背)も同じようにどうぞ。

コンボの書き方

オフィシャルの技表の1項目に書かれている技を1まとまりとしてハイフン「-」で区切って書きます。 例えば、キングの打撃コンボなら、

9rk-6lk-6hlp-6rprplp-4lk

技を繰り返す部分は括弧( )で括って後ろに繰り返し回数を付けます。 繰り返し回数はx?またはx?_?の形式です。 「 x 」は半角英字エックス、「 _ 」はアンダーバー、?は1~6の半角数字または半角英字のnが指定できます。 7以上の数字は面倒で用意していません。 数字の大小はチェックしていないので「x3_1」みたいなのも通ってしまいます。 nの補足説明は別途テキストで書いてください。

例えば、ドラグノフの基本コンボなら、

3rp-(rklp)x2-2rkrk

複数の技を括弧( )で括ると図にも括弧が付きます。 例えば、キングの上級者用コンボなら、

{ws}wp-6rprp-({66}-6hlp)x2_3-{666}wr

コンボの途中で何通りか技がある場合は山括弧< >で分岐させます。 分岐の区切り記号は半角縦線「 | 」です。 例えば、キングの基本コンボなら、

9rk-<6rprp|3rplp|3rklk>-6hlp-{641236}lp

色んな始動技から拾う場合も同じ書き方です。

<9rk|9wp>-3rklk-6hlp-6hwl

〆が色んな技の場合も同じ書き方です。

9rk-3rklk-6hlp-<4lk|2wl-wpwp>

分岐は繰り返し( )の中では使うことはできないので注意。

分岐の1つを途中で終わらせたい場合、その分岐の最後にピリオド「 . 」を打ちます。 (全部のルートにピリオドを打つことはできません。)

9rk-<6rprp|3rklkrk.>-6hlp-{641236}lp

これではバランスが悪いですね。 こんなときは、分岐の先頭にアスタリスク「 * 」を書き、メインルートを指定します。 メインルートがコンボの「重心」を通るように上下の位置が調整されます。

9rk-<*6rprp|3rklkrk.>-6hlp-{641236}lp

分岐の終端とメインルートの指定をしても、矢印の横幅は指定しなかった場合と変わりません。 調整が面倒だったのでそのへん手をつけてません。 矢印がアンバランスになったら手動で調整してください。 ちょっと誤魔化して9rk-<*6rprp-6hlp|3rklkrk.>-{641236}lpのように書けば、構文としては間違っていても見た目は大丈夫な事もあります。 そのあたりは工夫で。

分岐は入れ子にすることができます。 コンボのいい例が思いつかなかったので架空のコンボで例を書くと、

3rp-<6wplkrk-{ss}-1lk|<1rp-66wk|sl-rk>-rk>-{6523}lk

さすがにここまで書くことはなさそうですね。

更新履歴

  • 2013/08/25
    • doc : (hold)を忘れていたので追加。
    • code : (背)を忘れていたので追加。
    • code : 繰り返し回数を1~4から1~6に。
  • 2013/11/07
    • doc,code : カポエラ用記号の逆立ち、座りを追加。