このブログ内を検索可能

2022年5月11日水曜日

自作メテオボンバー⑮ 一通りの処理完了

 いよいよリーチ処理をそこそこ処理時間軽減し、またその他細かい演出なども加えて一通りゲーム作成が落ち着いた。りんごとかの処理は今のところは面倒なのでもういい。とにかく次やろうとしていることはPO率調整機構である。そのためにまずは宝箱の結合率と配当の関係を見ることにする。ある指数値m=0~100に対し、結合で4個となる確率(%)を0.5m、5個を50、6個を50-0.5mとする。つまりこの指数値が高いほど結合しやすい、すなわち当たりにくいことが予想される。極端な話、全部結合した1個となった場合、全消しかそうでないかの2択になるため、PO率は低くなるであろう。ということでPO率調整の一環としてこの指標を採用することにする。以下のようにすでにリーチ処理付きで機能しており、これをしばらく回して様子を見る。

なおリーチの判定として、現在のWINより大きければリーチの文字を表示する、という条件にしているため、例えば4球目に何かINしたときにそれで配当が新たに確定すれば、5球目はどの番号に入っても配当を獲得できる場合、現時点ではすべての番号がリーチとなるようにしている。ただよく考えたら実機ではそうではないので、これはまあ現在配当ではなく予想配当の最小を見て、それとの差をとればよいだけだろうが…まあええか。

2022年5月10日火曜日

自作メテオボンバー⑭ リーチ処理2

 リーチの数字を見直し、本物に似せた。いやというか、コナステから画像を加工して地道に1個ずつ数字を透過処理してタブ内のリーチ数字を描画させた。これで少しアニマに近づいた。

さて次は「リーチ!」の文字を描画させる処理である。これは確かチェーンボンバーではマス消滅と同期が難しかったような記憶が…。


自作メテオボンバー⑬ リーチ処理1

 一応全消し系のアニメーション及びリーチ表示ができるようにはなったが、処理が重い。

しかしまだまだ処理を簡略化する手立てはいろいろ残っているのでいずれそれを使うが、今日はあの実習があるため予習が必要となるので現時点ではここまで。今日と明日でだいぶんいい感じになるであろうことが予想される。

なおこの後やろうと思っていることは、
①リーチ処理の処理軽減
②リーチ数字、マス番号を本物により近づける
③PO率調整機構
④常時演出の強化(爆弾の拍動や各マスに「リーチ!」などを付ける
これによりさらに本物に近づくことが期待できる。これらのうち半分くらいは明日くらいまでにはできるであろう。たぶん


2022年5月7日土曜日

自作メテオボンバー⑫ 配当獲得処理

 さて、いよいよ配当表示に移っていく。まずは配当を入手した枚数を表示するものと、あと他にフォントを修正しアニマロッタの数字っぽくした。ここは前回のプログラムの流用。

この後ちょっとふせんの大きさが大きいので微調整した。
そしていよいよ本日朝、地道に下降した宝箱(開き)の出番である。
配当獲得付箋が出現する前に、「ぱこっ」という気持ち良い音とともに宝箱が開く演出を作成する。あとすでに開いた箱へのメテオオッズアップを防ぐために所定の変数に格納状況を格納する。これができれば残すはリーチと全消し処理のみであろう。
しかしリーチ処理、負担がどこまでかかるかなかなかに心配ではある。
これでいよいよGET文字や列けしを導入した。もはや残すは全消し系処理とリーチだが、リーチ処理はかなり工夫する必要があり、また変数などもいろいろ必要になってくるのでこれはまたじっくり考えることにする。

余談だが、3色でプレイすることもできる。
この色配置だと当たり前だが高額や全消しが出やすいのでこれで実験しよう

自作メテオボンバー⑪ 宝箱配置・結合

 いよいよ下部にある宝箱を結合しだした。ただしこれに伴いメテオのオッズアップ処理や配当条件が変化するため、今度はそのあたりを修正していくことになる。

さらに宝箱にメテオがHITしたときの状況を細かく設定した。
この段階ではまだ宝箱のグレードアップ演出やグラフィックは未実装だがこのあと直ちに実装する。
次いでグレードアップ演出を行うが、これはなんかはじけるようなアニメーションのあと、宝箱がπ/6くらい回転して戻り、配当が新表示されるのも作る。
しかし配当のくるくると、「後光」及び「オッズアップ」の文字が作られていないのでそれも実装する。ただし配当のくるくるは面倒なのであとでいいか…。ということでそれも作った。今日(というか次の日になったが)は配当の取得までを行い終了とするか…。
これでめでたく宝箱のオッズアップ処理ができた。あとは配当の表示と全消し、そして音声を付属するのがメインである。あとリーチ処理。
また、獲得判定で宝箱のグレードアップの是非が変わることもまだ作っていない。これは配当を各ターンごとに把握して描画し、その時にあわせて作りたいと思っている。
これは時間があれば明日中にはほぼ完成か。


2022年5月5日木曜日

自作メテオボンバー⑩ PO率計算開始

 とうとう配当計算を終了し、かつ次ゲームへの橋渡しを完了し、いよいよ放置でPO率が計算できるようになった。よしこれで試験勉強に入れるな!!

上にPO率が表示されている。まだまだ粗削りではあるが、明日以降徐々に仕上げていき満足のいくものとしたい。
全消しもいつか出るやろ(byかつて3000BET10面を数十時間やって1回も全消しを引けなかった人)

自作メテオボンバー⑨ 宝箱グレードアップ

 いよいよ宝箱をグレードアップし、最大連鎖数で全消し配当も上がるようにした。これによりとうとう精密な配当計算が実現。

上の画像では確かにメテオがHITしたところの宝箱の配当がアップしていることが分かる。
さて今日やっておきたいのは、次ゲームへの橋渡しおよび放置によるPO計算である。
次ゲームへの橋渡しは、変数をだいたい全部消しておけばよいのとまあ…ちょこちょこいじくればよい。配当はもうほぼ出せる状態なのでデバッグウィンドウにでも出しておく。
もうここまでくればPO計算の稼働まで残り僅かであろう。


自作メテオボンバー⑧ 全消し実験

 さて、いよいよ1ゲームのボールナンバーにより、最終配置を与えることができるようになったはずなので、それを証明するべく、全消しパターンをやってみる。

配置は以下。このあと24,10,1,3,4と来ると全消しリーチになるらしい。

もとの画像は以下。これはyoutubeのを参考にさせてもらっている。
そして実際に「手入れ」で上記番号を入れたものが以下。
完全に一致している。ということで我のプログラミングはおそらくあっていることが予想できる。
となれば、あとは宝箱の設置とオッズアップ、次ゲームへの橋渡しをすればPO率がとうとう計算できることになる。複数画面を見据えて変数なども可変にしておいたので、
ちゃんと2画面でも動作する。
もちろん8画面でも動作する。
案外8ゲーム同時並行の割にはかなりしっかり動いてくれておりうれしい。
さてここまでくれば後は宝箱処理でWINを作成するが、まあとりあえず平均PO率が知りたいのでこのあたりの演出は後回しにして、とりあえず宝箱などによる配当を真っ先に計算させたいと思う。
それができれば各ゲームの配当を合算し、いよいよ我の求めているPO率を時間をかけてチェックする。そして試験が終われば本格的に配当演出、その他微調整、リーチ処理、ワンダーチャンスとの結合などもやっていこうと思う。ここまでくればもう自宅でメテオボンバーが遊び放題といっても過言ではない…?いやしかしここまで完成させるのに数日かかるとは…。





自作メテオボンバー⑦ 起爆処理(爆弾のみ)

 いよいよ起爆処理を施せるようになった。

爆弾からどんどん隣接する爆弾に誘爆されていく様子…を示したいのだが画像では厳しい。一応下の画像では特に輝いている部分が次起爆準備をしているところ。

24番の数字は起爆の爆風により上に上昇中の爆弾である。


これによりHIT処理、連鎖処理、起爆処理、落下処理がつながったのでメテオなしだとおそらくほぼほぼの型が完成した。メテオは画像を用意するのが面倒だがすぐにできると予想している。これができた時、とうとう全消しが本当に成り立つかのシミュレーションを実例で行おうと思う。それで正しいことが確認出来たら、宝箱へのメテオのHIT処理及び宝箱のGET判定、そして配当表示へと結びつけ、腕の見せ所なリーチ処理、そして8ゲームへの拡張を施しだいたいフィニッシュとなる。
ちなみに自分でいうのもなんだが誘爆して連鎖する様子は美しかった


2022年5月4日水曜日

自作メテオボンバー⑥ 爆弾上昇処理

 とりあえず演出だけそれっぽく爆弾が上に行くようにした。

本当はなんかほかにきらきらみたいなエフェクトがつくが、まあこれはいつでも作れるだろうから置いておく。次はもちろん上部に保留される爆弾の配置である。
ここで気を付けたいのが、例えば上の画像で2列目を見ると7,15が爆弾として上昇しているが、これが落ちてくる時はやはり上に7、下に15と位置関係が保存される。
ただしその次の連鎖が起こり、新たに例えば11番などが爆弾として上昇した場合、この場合落下してくる2+1個の爆弾は上から11,7,15となる。
これをプログラミングで組む際は、というかすでにmathematicaでやっているが、
9個の要素をもつベクトル(配列)を7個準備して、爆弾となったマスの剰余をみてそのあまり(例外的に0ならば7とする)が列数を表すので、その配列に順番にぶち込んで行って、次また連鎖で爆弾が生成したらその爆弾の個数だけシフトして、新たに空いたところにその番号を入れるという作業を行う。
そして爆弾の各列ごとのリストを生成したら、あとは上からつめて配置してそれを先ほど作った落下処理のように落として配置するだけである。
まあこのあたりは何年も前にチェーンボンバーでやっているのでそれと基本一緒(ただしプログラムはより簡潔になるようにしている)の作業をすればよいのである。ただし新たに作ったほうが早い。
それができればあとは爆弾の起爆と誘爆処理。それができればとうとう最終結果を得ることができる。試験勉強がなければあと1,2日でそこまで到達するだろうが、試験にも時間を割かねばならずこれはその息抜きなのでそれから逃げるわけにもいかない…。

以下はそれにさらに爆弾落下個数示唆、落下処理まで加えたものである。
これにより連鎖後の爆弾上昇、加えてそれが落下する処理は完了した。
となればあとやるべきなのは最も大変(面倒)であると思われる「連鎖処理」である。

まず各メテオや爆弾でどのマスが次に消えるのかという定義と、それに対する演出を作る必要がありこれはなかなか簡単にできない。


自作メテオボンバー⑤ 連鎖処理一部完成

 とりあえずHITからの落下処理を作りその後連鎖処理を爆弾の上昇処理を除き完成。

HITした場所に[HIT!]と表示されるようになり、そのマスが消える。
そして落下してますが隣り合った場所が連鎖により消えて
さらに連鎖により隣り合う同じ色のマスが消えていることが分かる。

が先ほども言った通り、連鎖のマスに爆弾が含まれていた場合に、上昇し後で落とす処理ができていない。というわけで次はそれを作るまたは爆弾の起爆処理を行うことになる。
逆にいえばこれらができれば最終配置が分かることになる。

まあとりあえずは演出などがそこまで面倒でもない爆弾の上送り処理か…。


自作メテオボンバー④ 数字配置

 とりあえず数字をシャッフルし、さらにそこにランダムで爆弾などを付与するところまでは行った。まあまあ行ってそうにみえるが、これでも初期配置を指定しただけである…。

なんかメテオなどの存在感が薄いがそのあたりはまあ後々調整するとして、ここからHITによる爆発または消去、そして連鎖処理を行うこととなる。一応連鎖処理は演出付きで準備をしているが、それにつなげるためには先ほどの処理が必要となる。
ここからがいよいよメインの処理となる。


自作メテオボンバー③ ゲーム開始準備

 いつぞやの8ゲームBETシステムを引っ張ってきて、また数字が宝箱に収まるように微調整。

ここまで行けば次はいよいよゲーム開始時として、番号と爆弾の配置を行うことになる。
そのために「指数」として、どれくらい番号が上や下に偏るかの指標を導入したいのだが、その指数をどう実際の配置に反映するかは知らない。まあここは別に後付けにして、とりあえずランダム配置してもよさそうである。





2022年5月1日日曜日

自作メテオボンバー② タブ設置・初期配置

 

とりあえずタブだけ設置した。いやしかしここからやっていくのはなかなか大変や。まあとりあえず初期配置くらいまではまずは行きたいところ。

とりあえず枠を配置した。
ここに宇宙の背景を入れてさらにマスを配置していく。
地道に座標を指定して、ついでに数字フォントもメテオボンバーに近づける。
あとはこれを縦方向に増殖させる。
宝箱は今配置してもあまり意味がないので、とにかく初期配置をうまく構成する。
これはチェーンボンバーと同様で、各マスに対して「隣接」を定義し、それと色が異なるまで色をランダムに選択したものからループを繰り返す…としていたのだが、今回は処理を簡略化する。具体的には隣接マスの色のリストを作成し、それ以外の色をランダムに選ぶ、というのを繰り返す。こうすれば「良い」色が出るまでのループをなくせる。
あと隣接マスの定義は当然ながら今後の爆弾や連鎖処理でも使う。まあこのあたりを実装するのは少々先になるが…。
そして以上のようなやり方でループを使わず設置したものが以下。
まあ本物の画像を切り抜いたので、そこそこの再現度にはなっている。
一応これは8ゲームに拡張しやすいように未来を見据えて組んでいる。次は番号配置と爆弾配置および宝箱配置である。とりあえず暫定的に宝箱だけ置いておくか…。
とりあえずここでおいておくか…。




自作メテオボンバー① メテオボンバー作成開始

 さてGWになったということで、この空き時間(5月6日に試験があるが)を利用して、メテオボンバーを再現しようかと考えている。しかしせっかくなので以前の自作アニマロッタへの転用ができるようにプログラムを組もうと思っている。

メテオボンバーを再現するなどいったいどうすんねん、と思うだろうがまあなんかいじくっているうちにできるだろうと予想している。できればGWが終了するまでには自分で遊べてかつPO率調整までできるようにしたいと考えている。

しかしながらまずは画像と音声から探さなければならない。これだけでかなり時間がかかるが、地道にやっていくしかない。まずは画像の切り取り作業からである。なんちゅう地味な作業…しかしいずれひかえる感動を我は見据えている。

なんやこの地味に削り取ったりしていく作業は…。いやしかしこれは未来への希望や



2022年4月20日水曜日

メテオボンバーを自宅で遊べるか

もしメテオボンバーを本物に近い感じで、自宅に再現出来たら面白いのではないか?

そしてそれでPO管理ができればさらに面白いのではないか?

…ということで、ちょっとメテオボンバー再現を視野に入れてみようかと考えている。こちらは楽しい演出を是非ともつけたいところである。我よ、我を楽しませよ

さて、メテオボンバーの実装にあたりまずは音源や画像の抽出が必要ではあるが、たぶんyoutubeの配信か何かで効果音のみ抽出できる動画があるだろう。さらに画像についてはコナステが奇しくもすばらしい画像を提供してくれる。この2つとあとはプログラミング能力さえあれば、メテオボンバーの作成が可能ではないかと考えている。

かつての自作アニマロッタに組み込めるか…?もはや数年前に作成した自作アニマロッタなので、変数などのつながりをたぶん忘れているからそのリハビリからやるか…。


2022年4月19日火曜日

設定別メテオボンバーシミュレーション

 まずはこれまで定義した「標準設定」で、宝箱の結合をなくした場合のメダルの推移を見ていく。

宝箱の結合がないほうが、1000ゲームでのPO率は60%台(ただし全消しなどにより1000ゲーム程度ではPO率が変動しやすいので正確に60%とはいえない)と若干良いことが分かる。誰や宝箱結合システムを考えついたのは。

次に先ほどの設定を戻し、爆弾出現率:メテオ右下:メテオ左下=8:1:1の場合
一見見ると全壊死(全消し)が発生しやすくなったのかもしれないが1000ゲームなので言い切ることはできない。ただ標準設定よりはおそらく良いと思われる。

さて、いろいろシミュレーションもしたということで、そろそろ本物のより詳細な解析や、もしくはメテオボンバー自身を自ら作ってしまってはどうか、ということになってくる。自宅で自作メテオボンバーが楽しめれば面白いだろう。



2022年4月18日月曜日

メテオボンバーの標準設定

 ここではメテオボンバーを以下の規則に従ってランダム配置を行い、そのPO率の収束先を見る実験を行う。

①数字は63マスに均等に配置される

②爆弾、メテオはどのマスにも出現する可能性があり、各番号8%の確率で爆弾またはメテオに変化する。

③爆弾またはメテオに変化した場合、爆弾:メテオ右下:メテオ左下の出現割合は2:1:1とする

④各マスの配置は、隣り合うマスが同じ色とならないようにランダムで配置される

⑤宝箱は結合1個または2個でランダムで選ばれるが、そのパターンはすべて同一確率とする

上記の規則に従い初期配置を決めた場合のPO率の収束先を調べる。

とりあえず1000000回試行させてみたところ、PO率は55.3%となった。

ちょっとこれではよくわからないので、メダルが100万枚あるとして1回のゲーム当たりメテオボンバー超超マルチMAXBETを行う、すなわち3000*10=30000BETとしてシミュレートする。


上のグラフのオレンジは全消しが起きていない場合のメダルの推移で、横軸がゲーム経過数(1ゲーム当たりメテオボンバーを10回行うので平均化されて直線になりやすい)縦軸がメダルの枚数を表す。この設定では40ゲームもすればおよそメダルは40万枚にまで減ることが分かる。
下のグラフのオレンジも同じだが、途中に全消しがあった場合を切り抜いている。
全消しにより、およそ150000枚ほどまくれているのが分かるが、10ゲームほどでその増加も失われる(1回あたりPO率55.3%より15000枚近く失うので、150000/15000=10ゲームということで理に適っている…が理不尽ではある)。全消しが起こらない場合この設定ではもはや勝ち目はなく、開始約10ゲーム以内に全消しを引き当てなければほぼマイナスというような状況である。
なお青色はPO率の大きさを表しており、縦軸の数値がその値ではないことに注意。そのゲームでのPO率を1000000倍することによりスケールを同じにしている。つまり1000000の値を超えていたらそのゲームではプラス、ということになる。

さて、次の記事からでは爆弾の出現率や宝箱の配置状態、数字の出現位置などを変えて同様の処理を行う面白い実験を考えている。

以下メモ。各宝箱の配置パターン別のPO率

{1000000,{0.588181,0.614962,0.620759,0.635547,0.6036,0.573351,0.547079,0.525657,0.542052,0.468027,0.569318,0.560581,0.511308,0.569891,0.539529,0.529537,0.49237,0.540183,0.558625,0.532266,0.482372},0,0.552714}



2022年4月14日木曜日

メテオボンバーによるPO率収束のモデル構築

 メテオボンバーがアニマ6のペイアウト管理を特徴づける雰囲気が強いということで、実際にメテオボンバーをランダム配置、数字もランダム配置して、ペイアウト率を70%,80%,90%などに近づけるプログラムを作って、そのメテオボンバーの強力さを知らしめよう(?)かと思う。

というかこれを応用したものがもしかすると実機のアニマロッタにも採用されていたりして…?

なおランダム配置にあたり、本物の挙動に近づけるために以下の規則に従うものとする。

これらは実測データによるものであり、ゲームそのものの性質を示しているわけではない。

①爆弾やメテオはいかなる位置にも出現しうる

②メテオの個数は6~13個などと幅があるので、半分の確率で爆弾かメテオかが選ばれる

③生爆弾種別は3~6個くらいなので数字のうち8%がそれに変化することにする

④数字は下の方におおむね出やすいがこれはランダムとする

この条件のもとパターンを自動生成し、その設定を100回程度あらかじめシミュレートし、おおむねパターンのPO率が高いか低いか(100回程度なので十の位のPO率も把握できないがある程度の指標にはなる)を把握し、設定PO率に近づくようにパターンの再選択を行い、その流れでゲームを繰り返す、というもの。

実機ではこのあたりをどのようにやっているかは不明だが、確か2ステーションの状況を統括するPCが内部にもう1台埋め込まれているといわれているので、リーチ処理の番号の期待値計算などもこちらで行っており、そのPC間で入力と出力をやりとりしているのではないかと推測される。

2022年4月10日日曜日

メテオボンバープログラム簡略化したい

 現在絶賛稼働中のメテオボンバープログラムだが、やはり100回の試行に3~4秒かかっているようでは、1000000回の試行に30000~40000秒と、9時間~11時間やはりかかっているので1つのパターンをある程度調べるのに半日かかってしまう。これはさすがにつらいので、なんとかして処理の低減化を図れないか考えている。

一応我のメテオボンバープログラムは以下の部位に大まかに分けられている。

①HIT処理、該当マス消去、爆発フラグ起動等

②爆発時爆発の広がりループ、宝箱オッズアップ

③爆弾の上昇

④マス落下処理

⑤連鎖処理 ④へ戻る。連鎖がなければ⑥へ

⑥爆弾落下処理

⑦宝箱開閉判定(都度必要。でないと既開封箱がオッズアップしてしまう) 終了まで①から

⑧最終オッズ判定、結果取得、次ゲーム準備

これらからなんとかして処理の軽減をしたい。もし半分にでもなればかなり強力。

以下プログラムの一部。

実はたぶん無駄な部分が結構あるが、おそらく処理速度に影響を与えないし変に消しておかしくなったら嫌なのでそのままにしている。爆弾が保留されていくプログラムの部分とかをもう少し簡略にできないか…。チェーンならば各列に順番は関係なく最終結果を得られるのだが…。メテオボンバーは爆弾の並び順が特殊な方式に従って決まるのでそこをとりあえず再現して、以降そのままになっている。ただここを変えた時はちゃんと変えた後も同一の結果を得るかどうかを念入りにチェックしなければならない。