段々と春らしくなってきて、そろそろインドアな暇つぶしからアウトドアなアクティブモードに切り替わりつつありますが、今回はキャラクタージェネレーターを搭載したシューティングゲームを作ってみました。
キャラクタージェネレーターとは、キャラクターのデザインを乱数を用いてプログラムで自動作成するものです。ポケモンのキャラクターは約800種類ほどあるようですが、このプログラムを使えば天文学的な数のキャラクターを無造作に作り出させます。
今回作成するキャラクターは8×8ドットのサイズで、最大4色のカラーでデザインします。自動でデザインする仕組みは単純で、左右対称の相似性の形にドット色を配列することでそれっぽい?キャラクターを作ります。
例えばこんな感じです。
![イメージ 2](https://stat.ameba.jp/user_images/20190615/05/time-tripper-ame/99/e5/p/o0469037214465097337.png?caw=800)
よく似たようなデザインもありますが、中には人がデザインしたような意味ありげ?なものも見られます。
実際のプログラムの仕組みはこんな感じです。
1.まず16色から4色を選択する。
TIC-80のパレット数は16色ですが、その中から4色を選択して使用します。
全て同じ色を選択してもOKなので選択される組み合わは「16*16*16*16=65536」パターンになります。この時、通過色(OFF)の0番のパレットカラーも含まれます。
TIC-80のパレット数は16色ですが、その中から4色を選択して使用します。
全て同じ色を選択してもOKなので選択される組み合わは「16*16*16*16=65536」パターンになります。この時、通過色(OFF)の0番のパレットカラーも含まれます。
2.選んだ4色で4ドットの配列色を作る。
色を決める時に配色するかどうかのON/OFFも合わせて選択します。
OFFは通過色の0番のパレットカラーに置き換えるので「4*2*4*2*4*2*4*2=4096」パターンになります。
色を決める時に配色するかどうかのON/OFFも合わせて選択します。
OFFは通過色の0番のパレットカラーに置き換えるので「4*2*4*2*4*2*4*2=4096」パターンになります。
3.4ドット配列を8組作る。
左の4×8パターンを作り、鏡面転写することで右のパターンを作成します。
つまりランダムに作られるキャラクターの種類は「65536*4096*4096*4096*4096*4096*4096*4096*4096=5.1923E+33」パターンになります。
左の4×8パターンを作り、鏡面転写することで右のパターンを作成します。
つまりランダムに作られるキャラクターの種類は「65536*4096*4096*4096*4096*4096*4096*4096*4096=5.1923E+33」パターンになります。
おそらく、死ぬまでゲームを続けても二度と同じデザインのキャラクターに巡り合うことは無いと思います。そういう意味で一期一会なシューティングゲームになっています。
プログラム的にはもう一つ、キャラクターを回転したり拡大したりする独自のスプライト機能を追加しています。TIC-80のAPI「textri」を利用していますが、あまり精度が良くなくて雑な描画になっています。
このゲームにはストーリー性はなく、敵がいくつかの動作パターンをランダムに組み合わせて攻撃してくるだけです。ゲーム性は非常に乏しく運をたよりにひたら耐え凌ぐだけです。いつまで集中心が保てるかの勝負です。
動作テストでは5万点くらいが限界でした。(ヘタクソ)
しかし、カウンターは10ケタまで用意しています。w
是非、世界記録のギネスに挑戦してみてください。
しかし、カウンターは10ケタまで用意しています。w
是非、世界記録のギネスに挑戦してみてください。
おそらくギネスに載ることはありませんが・・・