開発進捗20200711

 再びUnityをさわりはじめ、開発を行ってほぼ1ヶ月……。だんだんコードも膨れ上がってきてわけがわからなくなってきたので、進捗と称してまとめることを始めてみる。ただの雑記、覚書なので特定の読者に向けたものではなく、あくまで自分用(見出し画像を付けろと言われたが、付けていないのはそのため)。作っているゲーム自体も販売・配布するつもりはなく自分で楽しむためのものなので、肩ひじ張らずに好きなようにやっている。
 一応Twitterの方では何個か動画や静止画を載せているので、日付を追うことでいつどのようなものを作っていたかは出せるはず。以下にこれまでの経過をまとめていく。

────────────────────────────────────────────────

確かおおまかな全体設計を行っていたあたりだと思う。
1週間くらいはかかっていた。

作っているゲーム自体はテトリスである。
SRS=Super Rotation Systemという仕組みがあるのだが、これがどういった方法で制御されているのかを調べて実装した。書いている通りだが、回転した際に他のブロックや壁面に接触する場合、軸をずらすパターンを5回試行して当てはまるパターンを選択するというもの。

ランダマイザについて。グランドマスタールールでは開始時にS,Z,Oを出さないとあったが、TETRIS EFFECT では普通にバカスカ出現しているので今回はそれに倣って7種のミノをランダムにピックアップするのを繰り返す方式にした。

思ったよりもなかなかシステム周りが進まなかった時期。割と作っては壊しを繰り返すタイプなので、結局このネクスト周りも全部ぶっ壊して作り直すことになるのだが。

この辺ではテトリスというよりもゲーム全体のシーン遷移を作って確認したりしている。カーソルはアニメーションを組んでやっているが、アニメーションを組むのはコード上の方がはるかに楽だったのでこれ以降アニメーションを使っていない。使うべきだとは思う。使え。

この日は静止画。すでにネクストブロックがプレイヤー同士で奪い合う形に作り替えられている。当時の段階ではCPUが実装されておらずどうやって組むかを思案していた。2日後にThe Last of Us Part IIをプレイ開始する。

ブロックの接地関連を作っていた。一応ガイドラインに沿って3種類作っているが、現状は拡張配置ロックダウンしか使っていない。2日後に少女地獄のドクムス〆をプレイ開始する。

CPUの基盤ができる。外部サイトを参考に作り上げたが、あまりうまくいっていない。挙句C#コードがメチャクチャな状態になっている。3ヶ月くらいしたら認識できなくなるやつ。

パラメータをちょこちょこいじって多少は賢くなっている気もする。
なっていない気もする。

グラデーションシェーダ。Unityのシェーダを初めて書いたけど、イマイチ使いこなせる気はしてない。現状でもごく単純なことをやらせるくらいかなと思っている。

地味にモザイクシェーダを書いた。開始時に処理落ちで止まっているように見えるけど、内部で遷移量を調整しているだけ。画面のキャプチャもコルーチン使って1回だけしかしていないので、かなり軽量。CPUは状況に応じてパラメータを変えたりする実験をしている。

自分でプレイしていた場合でもなぜかたまにミノが落ちてこなくなる場合があったので、エラーログを仕込んでCPUに延々と戦ってもらった。原因はつぶせたのでおk。また、書いていないがCPUにホールドを覚えさせたらめちゃくちゃ賢くなったのでかなり死ににくくなった。

────────────────────────────────────────────────

2020/07/11:
画像1

ScriptableObjectおよびUnityEditor拡張を用いてテトリミノエディタの構築を行っている。仕様を理解するのに半日くらいかかったが、それだけの価値はあったように思える。現状ではミノの情報がコード上にベタ書きのため、例えば新たに変則ミノなどを追加するとなるとつらい。ひとまずインスペクタに表示してマウスでポチポチするとミノブロック配置を変更して保存できるまでにはなった。回転のプレビュー、およびSRSの軸ずらしパターンも設定できるようにしたい。もう少し頑張ることにする。

この記事が気に入ったらサポートをしてみませんか?