Unityで2D格闘(2D Fighting game)作ったとしても解決してくれないだろうこと

  • 0
    いいね
  • 0
    コメント

    201701211744gif33.gif
    ブロックもできるし、ひとまずよしとしよう。 

    今年の正月気分のときには クーペ ( http://www.cooperationcup.com/ ) やってたし、格ゲーの記事は去年ゴジライン ( https://goziline.com/archives/3506 )というところが うまくまとめてるし、格ゲーのプログラムに挑戦するには 自分の判断は いい頃だと思っている。

    ところで 2D格闘ツクール2nd( http://tkool.jp/ )というのがあるらしいんだが、Wikipediaによると( https://ja.wikipedia.org/wiki/2D%E6%A0%BC%E9%97%98%E3%83%84%E3%82%AF%E3%83%BC%E3%83%AB2nd. )、2008年5月以降の情報がないことから、今どき始めるなら……ということで Unity で何の参考もない中 自分で作ることにする。

    この流れで、プログラムをやり始める上で スタート地点として意識しておく程度の おおまかな話しを まとめておく。

    ソース公開中 Open source

    https://github.com/muzudho/KifuwarabeFighter2

    懸念1位 光の速度を超えることはできない

    201701220317a1.png
    これが地球だ。 今も 駒みたいに回っているんだが ぷるぷるしていて、生まれた頃に比べれば 頬も すこしふっくらしてきた。その地球を光は 1秒間に

    201701220317a2.png
    7周半する。間違っても
    201701220317a3.png
    こうではない。別に間違ってても問題は起こらないだろうが気になる。ところでビデオゲームなんだが
    201701220317a5b.png
    この画面。

    201701220317a4.png
    だいたい、1秒間に 60枚(呼び方は 60コマ、60フレーム、FPS とも呼ぶ)表示されているとされている。

    次のWebサイトで体感できる。

    遅延体感テストプログラム
    http://www22.atpages.jp/thientest/frametest.html

    あれっ?

    201701220317a6.png
    光の速度 遅くね?

    201701220317a7b.png

    地球の裏の人に絵が届くのは 4枚 (60÷7.5×片道0.5) 後か……。

    201701220440gif34.gif
    これ 4 FPS。(1秒間に4枚) 今見えたパンチもキックも 地球の裏で今起こっている 1枚前 の映像だと思って欲しい。 1枚先を想像して避けて、2枚先の行動をせよ!

    テクノロジーのちからでも解決できないことはあるだろう。

    201701220317a8.png
    あっ、強いやつに会いにいっている。

    じゃあ、東京-大阪間ならいいのか。

    201701220317a9.png
    玄関 開けたら ワールドだからな……。 ゲーセンの通信がどうなってるか分からないが、店で専用回線を引いてたりするのだろうか?

    というわけで逆説的に

    格ゲーの通信は 同じ室内で 直接LANケーブルつないで対戦できるレベルでいいんじゃないか(怠け)
    だったら コンピュータ将棋みたいに 文字列通信でもいいのか……? とりあえず気楽に考えておこう。

    ある意味 心の目をつぶれば問題ではない とも言える。ささ、こんな問題は心の目をつぶろう。

    懸念2位 全ての組み合わせを入力しなければならない

    201701220317a10b.png
    ダメージがだいぶ溜まっている状況で ジャンプ中に ブロックしたら どんなアニメーションになるか、といったことを 1つ1つ設定しなければならない。
    まだUnityを使い始めたばかりで詳しくないんだが、全部マウス操作で 設定しなければならないのだろうか?

    この紐付けは 以前 つまづくだろうとして 記事にも書いたと思うんだが、以前に比べて Unityのアニメーターという機能を覚えた今、調べる価値は高そうだ。

    Unity で格闘ゲームを作りたかったら、
    Unity で格闘ゲームを作ってないで、格闘ゲームを作れるように Unity にデータベース編集機能を付ける開発をした方がいいんじゃないか……。

    UPDATE ADDLINE From "立ち待機" To "*ジャンプ"
    UPDATE ADDCOND trigger "jump" From "立ち待機" To "*ジャンプ"
    

    みたいな。いや、開発していてはダメだ。いっそ Unityのデータを MySQL にエクスポートしたり、インポートしたりできないだろうか?

    やりたいこととしては
    201701220317a12.png
    パンチ3ボタン を設定したら 弱・中・強 に自動で振り分けてほしい。これで3倍楽になる。

    このためには、Unity の持っていない情報も データとして持っておく必要があるだろう。それもテーブルの紐付けでいける。

    現状がどのように設定されているのか、スプレッドシートで一覧したいし、入力もしたい。
    201701220317a13.png
    これがあると 設定をミスっているところも 探しやすい。なんで無いのだろうか。作ると怒られる、ということでもなければ あった方がマシな気がする。あるいは、有るのになんで使わないのだろうと思われているのか。 それはきつい。

    この条件付き更新、表出力、表入力の3つが 開かれたなら、プログラムのリファクタリングのような機能を付けなくても、データベースの操作に落ちつく。
    中キックは数字の5だったが 4にしたくなった、と思った時は 攻撃ボタン列に入っている 5 を 4 に置換するだけでいける。

    なんかもう これも課題として調べておく。なるべく、しなくていい開発はしたくない。

    Unityを

    「Unityで開発」ではなく「Unityを開発」とか「unity platform developer」を グーグル検索してみるんだが 引っかからない。
    コミュニティがどこにあるのかとか、あれとか、これの名前は何ていうのか、そういうことを知らないことが かなり 自分のスキルを狭いものにしている。

    そもそもオープンソースではないのかどうか。

    unity DOCUMENT 「オープンソースリポジトリ」
    https://docs.unity3d.com/ja/current/Manual/OpenSourceRepositories.html

    というページがあるのだが なんにも知らない。
    開発するより 有るものを探す方が優先だが、 一応 2017年1月中を限度に 調べることだけは続けておく。

    じゃあ

    Unity で解決できなくても MySQL なら解決してくれるんじゃないか? この線がつながるかどうか調査するのもゲームクリエイターの腕だが、そもそも誰も周りに人がいなくて 話しが入ってこないのがつらい。腕以前の問題だ。

    (追記 2017-01-22)調べたところ

    Unity では MySQL ではなく SQLite を使うようだし、そもそも データベースのテーブル仕様が 公式ホームページで公開されていないので データベースを直接見ることは諦めた。
    代わりに UnityEditor を使う方法を模索中で、記事を書いていく。
    http://qiita.com/muzudho1/items/9c50b8b894e3cf4c90da

    懸念3位 原画、動画を描かないと

    201701220317a11.png
    きふわらべファイター2は もしかすると きふわらべと、カラフル豆腐マン・ファイター2 になっているかもしれない。そういうことは ありえる。

    福笑いのように部品を分解して 関節をつなげて、パペットのように動く技術を Unity は得意 としているようだし、そもそも Unity は3Dが得意 なので、画像素材の資源問題を解決する力は 備わっている気がするんだが、自分の感覚では アニメと パペットは全然違う。

    そのまま使わないとしても、利用して、例えば

    201701220317a14.png

    などをして なにか楽できないか 考えておかないといけないだろう。目の前にある Unity は、絵を描くのに参考になるツールでもあるはずだ。

    懸念4位 必殺技のコマンド入力

    必殺技画像素材が用意できてないのでつらい。また豆腐描かないと……。あと 今考えているのは
    201701220317a15.png
    このアニメーター。
    これ使って 必殺技のコマンド入力の 状態遷移を作れないだろうか。
    あとで考えることにする。

    あれっ、もしそれでいけるのなら、これは Unity で解決できるのか?

    あと解決できていないことは何だろうか。

    これは一般的な問題で、Unity でも解決できないんじゃないか、と思っていた項目を並べようと思ったんだが、書き出してみると 調べてみたい内容が増えた。

    とりあえず 目の前の1つ1つ の解決できそうな問題から潰していこう。データベースを調べようと思う。