記事一覧

2021年08月13日

ファイル 1005-2.jpg

 ハー子飛べない!


 ハー子解説その4でおす。

●トロルリーチ
 トロルがハー子を追い詰めてくのを助けるリーチ。
 最初のバージョンからあったのだけど作りがひどくて、トロルがジャンプしてこん棒を回収する演出、プレミア演出を加えたいが為に後付で色々やった末に諦めて1から組み直したという地獄の思い出。

 確変数字でのリーチの場合1~100の変数を生成して、そこからハマリ変数を3で割った数値を引いてる。
 通常数字でのリーチの場合1~80の変数を生成して、そこからハマリ変数を3で割った数値を引いてる。

 基本は数値が少ない程当たり。その中で演出を振り分けてる。
 確変時に確変数字でリーチなら33以下で当たり。
 確変時に通常数字でリーチなら46以下で当たり。
 通常時に確変数値でリーチなら27以下で当たり。
 通常時に通常数値でリーチなら38以下で当たり。

 こう見ると通常数字で当たりやすいな。
 確変時にトロルリーチになったら通常数字で当たっちゃって確変が途切れる可能性がちょっと高い。ダブルの場合は確変継続の可能性がちょっと高い……ってコト!?

・トロルプレミア
 トロルリーチ開始時に1/36で全部当たり数字になる。
 確変中かどうか、とか確変数字かどうかとかは考慮しない。


●ホウキリーチ
 飛び去った当たり数字をホウキに乗って回収しにいくリーチ。
 最後に作ったリーチなのでわりと理路整然としてる! 読みやすくて助かる。

 ホウキリーチは開始時の変数ですべての演出が決定される。
 確変数字でのリーチの場合1~1000の変数を生成。
 通常数字でのリーチの場合1~800の変数を生成。
 生成された変数が少ない程当たる。

・確変時は66%で当たる。
 初手掴む21%
 避けてから2度めのチャンスで掴む43%
 残りが2%プレミア

・通常時は55.5%で当たる。
 初手21%
 2度目33%
 プレミア1.5%

・ハズレ確変時34%
 15% 飛べない(かわいい)
 10% 最初掴み損なって落ちる
 4% フクロウタックルで落ちる
 5% 最後掴み損なって落ちる

・ハズレ通常時44.5%
 5.5% 飛べない(かわいい) 
 10% 最初掴み損なって落ちる
 10% フクロウタックルで落ちる
 19% 最後掴み損なって落ちる


・ホウキプレミア
 ホウキでハズレた後に地上に落ちてあれこれあって当たりになる。これが一番レアまである。
 確変時に
  5/1000で初手掴みそこねて落ちて当たり。
  5/1000でフクロウに落とされて落ちて当たり。
 10/1000で最後に掴みそこねて落ちた後に当たり。
 通常時
 5/1000で初手掴みそこねて落ちて当たり。
 5/1000でフクロウに落とされて落ちて当たり。
 5/1000で最後に掴みそこねて落ちた後に当たり。


●再抽選
 通常当たり数字の場合、1/4で確変数値に昇格するシンプルなもの!


●プレミア時特殊演出
・1度でもプレミアが出てたらアタリ画面ハー子に猫耳としっぽがつく。
 当たりごとに出たり消えたりする。

・大人モードでアタリ回数が7回以上でプレミアが1回以上出てたらお胸が育つ。

・プレミア関係ないけど
 ぱんつの色はピンク、ライトブルー、ライトグリーン、イエローの4種類。プレイごとにランダム。
 確変中の左下ハー子も4種類で回転ごとランダム。


 これで大体見たかな。終わり!

2021年08月08日

ファイル 1004-1.jpg

 画像はノーマルプレミア。


 いつの間にかハー子……というかRuffleがスマートフォン対応になっておるな。前はできなかった気がする。Chromeだけかな? と思ってiPadで確認したらSafariでも動いたワ。Appleの端末で動いてるのを見ると不思議な気持ちになりますね。

 ということでハー子解説その3。
 各種リーチのソースを眺めるぞ。

●ノーマルリーチ
 ただ数字が並んでるだけでその後の演出に発展しないリーチ。
 1/5の抽選に勝てば1/12の抽選に進む、ってコメントに残してある。
 ……んだけど、ソース見直したら1/3の抽選に勝てば1/12の抽選に進むように見えるな。
 前者ならノーマルリーチになったら1/60で当たる。
 後者なら1/36で当たる……ってコト!? おそらくこっち。
『ノーマルが当たりづらいからもうちょっと当たるようにしよう』とはあんまり考えないはずだから、意図したより当たっちゃってた可能性が見えてきましたね!

・ノーマルプレミア
 ノーマルリーチハズレ後、1/200でハー子とメガネ君が現れて当たりにする。これは結構シンプルにかっこいいので好き。


●ハー子リーチ
 ハー子が現れてむにゃむにゃ言って杖を振るリーチ。
 前回『各種リーチは確変かそうでないかで当たる率変わらないはず』って書いたけど変わってたワ!

 確変時は0~35の変数を作って、後述の『やり直し変数』を引く。それで出来た数値が2以下なら当たる。
 通常時は0~50を作って『やり直し変数』を引いて3以下なら当たる。
 謎にややこしいことしてますね……。やり直し時の信頼度が確変時は上がる、みたいなことをしたかったと思われる。

・ハー子リーチで外れてもハー子が耐える演出
 外れても1/9でハー子が耐えて『やり直し変数』を生成する。これは何度でも発生する。この時に2~7の変数を生成して、先述の『0~35の変数』からこの数値をマイナスして再度抽選する。つまりやり直し時はちょっと当たりやすくなる。
 やり直しが複数回発生しても合算はされず、その都度2~7を作る。

・ハー子プレミア
 ハー子リーチの開始時に確変時1/70、通常時1/80でハー子が組分け帽をかぶっていて100%当たる。この時の帽子の揺れ方がかわいいんだけどなかなか見られないていう。


●調合リーチ(ダブルリーチ)
 図柄が増殖して調合が成功すれば当たりのリーチ。
 この辺りから%で管理するようにちょっとキレイに書くようになってるんだけど、成り下がり(確変数値でリーチなのに通常当たりになる現象)にならないように振り分けたりしてて相変わらずややこしいことになってる。

8通りあって振り分けられる。
1、1回目後ハズレ
2、2回目後ハズレ
3、3回目アタリ
4、3回目後ハズレ
5、4回目アタリ
6、4回目後ハズレ
7、5回目アタリ(復活パターン)
8、5回目後ハズレ

 確変中で確変数値なら
 10%、10%、45%、15%、0%、10%、0%、10%(当たり率合計45%)
 確変中で通常数値なら
 5%、5%、25%、10%、10%、20%、5%、20%(当たり率合計40%)

 通常時で確変数値なら
 5%、10%、25%、15%、0%、20%、0%、20%(当たり率合計25%)
 通常時で通常数値なら
 5%、10%、15%、15%、10%、20%、5%、20%(当たり率合計30%)

 ホントかよ個人的にはそんなに当たってるかんじしませんけど!

・調合プレミア
 1回目の調合失敗後にハー子に猫耳としっぽが追加されて100%当たる。顧客が本当に必要だった猫ハー子である。
 発生率は確変時1/45、通常時1/50。
 なぜか通常時だけこの時3回目40%、4回目40%、5回目(復活パターン)20%で当たるように振り分けてるな。確変時は3回目で当たる。確変時はさっさと当てたい、みたいな意識がちょいちょい見えますね。

・調合ハズレ後にキレたハー子が折る演出
 1/5で発生。ハマり変数に10プラスする。ハマり変数に関しては前回の解説に書いた。つまりほんのちょっと当たりやすくなる……ってコト!?


 次回はトロルとホウキについて書くぞ。

2021年07月20日

ファイル 1003-1.jpg

 なつい(し、作りがひどい)。


 ちょっとハー子を最近プレイして気になったのでソース眺めてハー子解説その2です。

●まず変数yokokuを生成
 これが後にどのリーチになるかのベースになる。少ない程偉い。
 確変時
yokoku = Math.floor(Math.random()*185)-hamari;
(0~184の範囲をランダム生成してハマリ回転数を引くハマリ防止機能その1)
 今まで一回も当たってなかったら
yokoku = Math.floor(Math.random()*335)-hamari;
 通常時
yokoku = Math.floor(Math.random()*385)-hamari;

 炎演出(左右の燭台の炎がちょっと強まる地味なやつ)でさらにちょっと減る。炎演出は3%でyokokuを-20する。30%で-6とかで6段階ある。
 
 炎演出後のyokokuの数値によって
 ステップアップ演出しつつ変数yokoku_hensuuを生成。
 41~60(暗くなる) yokoku_hensuuが1になる
 31~40(ロウソク1) yokoku_hensuuが2
 16~30(ロウソク2) yokoku_hensuuが4、確変ならそれに+3
 5~15(空と雷) yokoku_hensuuが6、確変ならそれに+3
 -8~4(ほとんど出現) yokoku_hensuuが10、確変ならそれに+3
 -9から先(首とれる) yokoku_hensuuが13、確変ならそれに+3


●変数yokoku_hensuu
 後にどのリーチに振り分けるかに使う。大きいほど偉い。ステップアップ予告の時に生成されて、その後演出でどんどん数値がプラスされてく。
 ハマリ防止機能その2が働く。
 通常時は5ハマり以下で+0、10ハマリ以上で+1、15ハマリ以上で+3、20ハマリ以上で+4、25ハマリ以上で+5,30ハマリ以上で+6、それ以上で+8される。
 確変時は
<5で+1
<10で+2
<15で+4
<20で+6
<25で+7
<30で+8
他は+10。

 その処理の後に確変時なら+4、そうでなければ-1される。
 この雑な付け足しは、多分ある程度テストプレイした後で確変時にさっさと当てる為にやってるな。

●強制リーチ処理
if(yokoku <= (Math.floor(Math.random()*5)+15))
 変数yokokuが15~20以下なら絵柄を書き換えてリーチ。
 自然に1/12とかで揃ってもリーチになる。

●フクロウ演出
 リーチがかからなかった場合、確変時1/15、通常時1/30でリーチになる。これ自体はyokoku_hensuuに影響がないので弱い。
 確変時はこれでもハー子やダブルに繋がるので楽しげ。

●リーチ時の特殊音
 強演出。
 5%でyokoku_hensuuに+11。
 1%でyokoku_hensuuに+21。

●リーチ時ハー子カットイン
 強演出その2。
 確変時それぞれ1/20。通常時は1/40。
 小さいハー子でyokoku_hensuuに+12。
 大きいハー子でyokoku_hensuuに+15。
 大人モードだとここの大きいハー子がちょっと動いてお得。
 
●リーチ時の処理
 変数reach_furiwakeとyokoku_hensuuを使って振り分ける。
 確変数値ならば
 1/3でreach_furiwakeを15~30で生成
 2/3でreach_furiwakeを9~23で生成
 確変数値でなければreach_furiwakeを6~18で生成

 reach_furiwakeから今まで演出で育ててきたyokoku_hensuuを引いて
 -6以下 ホウキ
 -2以下 トロル
 2以下 ダブル
 7以下 ハー子
 8以上 通常リーチに飛ばす。

 確変時はちょこちょことyokoku_hensuuにプラスポイントが入るので確変時やたらとホウキに飛ばされるのはこれ。リーチそれぞれは確変時と通常時で多分当たる確率変えてないので、どのリーチに振り分けるかで当たりやすさを調整してるはず。

 今回はここまで。
 なんかスクリプト的なこととかプログラム的な知識がほぼゼロの状態から追加されてったやつなので色々やってますね……。そのうち乱数はなんでも100で作って%で管理するようになるんだけど手探り感でやたら複雑なことになってる。最初はノーマル、ハー子、トロルの3種しかリーチ無かったからそんなに問題なかったんだろうけど、ダブル、ホウキ増やした後のバランス取りは結構苦労した思い出があるな。

 普通は確変率1/2をやりたければMath.floor(Math.random()*512)で1なら通常2で確変とかってしてあとの演出はそれを元に変えるだけなんだけど、リーチ時の処理と膨大なテスト回転数で強引に1/2に近づけてる。

 次書く時は各種リーチ周り見るぞ。

2021年02月10日

 ちょっと前に、もうプレイできないはずのハー子がプレイできるようになりました、ということで、もうこのタイミングしかないハー子解説その1。その2があるかは不明。

 かなり前にメールで頂いた『こういうのを作ってみたいがどうやって作るのん』みたいな問いに対して書いた返信を一部編集して貼ってみます。

===
 ご質問のスロットゲーム作成方法についてですが、
ハー子はFlash(ActionScript2)で作成されています(ランキングシステムはCGI)。
 Flashの勉強ということで、手探りで作っていたのであまり美しくないですが、ざっくりとした考え方、仕組みは以下となります。

(1)スコアを球数に見立てて、ランダムで消費してドラムが回転します。
 バラバラになるように、回転が早くなるタイミングでドラム数値をランダムに飛ばしてます。

※補足:分かりづらい説明。最初数字が揃ってるドラムは、薄く速くなるタイミングでランダムで別の値になる、ってこと。

(2)1~100くらいまでのランダムの数値を生成して、ステップアップ予告に振り分けます。
 JSでも似たような感じだと思うのですが、Math.round (Math.random () * 100) + 1; とかです。
 ステップアップ予告というのはハー子でいうと、食堂にロウソクが増えたりとか、幽霊が現れたりとかで、5段階くらい。この変数にハマリ回転数を足してあげたり、ハマリ防止とかしてます。

(3)ステップアップ予告が高期待度なほど、『各種リーチへの振り分け変数』(『リーチ変数』とします)が多くなります。

(4)ドラムが2つ止まります。リーチ変数によって、確実にリーチになる処理をします。
 例えば2つ目のドラムの回転がゆっくりになる瞬間に、1つ目のドラムの数値を参照してドラムを調整する、
といった感じです。
 または、ドラムの回転を調整せずにたまたま(1/12)リーチになります。
 ドラムそれぞれが変数をもっていて、
if(drm1 == drm2){} というように、ifで比べて同じなら、って仕組みですね。

 というかハー子は概ねifとelseで構成されています。
 まずはこのドラムの処理やコントロールが壁だったりしました。
 今ならスクロールするドラムとかも作れるとおもいますが、当時はこれが精一杯。

(5)リーチ変数によってリーチの振り分けをします。
 ノーマル、ハー子、ダブル、トロル、ホウキの5種類。
 一番最初の公開ではノーマル、ハー子、トロルだけでした。
 リーチ変数に、リーチ時の特殊演出(カットインとか特殊音)を加味してうまいこと振り分けます。

(6)各リーチは、作った時期が違うのでそれぞれ仕組みが違ったりするのですが、
 基本的には『乱数を作って、その数値によって振り分ける』という方法でやっています。
 プログラム的なご質問だと思うので、演出については割愛します。

(7)当たり演出だとか、タイマーやスコアなど、ゲーム的な体裁をなんとか整えていきます。

 上記の方法は、思いつくままに足していけるのはよかったのですが、最終的なデバッグの際、当たり確率や、各リーチの確率を調べるのが大変でした。

 今やるとすれば、一般的なスロットやパチンコのように、最初にまず当りかはずれかだけを1/256等でつくって、
その先はそれぞれの演出ごとに細かく確率を調整する方式をとるかと思います。普通そうなんです。

 例えばハー子が杖を振るリーチの場合
 当たりフラグが発生しているならばプレミア演出を1%、やり直し発生率を19%、当たり率を80にして、
やり直しが発生した場合同じ当たりフラグ抽選をもう一回繰り返す。
 ハズレフラグの場合はやり直し発生率を20とかにして、ハズレルートに飛ばすだけです。
 例があまり良くない気もしますが、この辺りはパーセントでの管理ができるよう意識すれば後々ラクかと思います。

 パチンコはかなり単純で、全体的な当たり確率、確変率だけちゃんと意識してればあとは演出を頑張るだけかと思います。
 最近はパチも色々なモードがあってユーザを飽きさせない努力に暇がないかと思いますが、ハー子を作ったころは世間のパチも結構こんなもんだったりしました。

 確変率を50%にするなら1/512で1がでたら普通当たり、2なら確変当たり、とかラクちんですね。
 当たり率を1/500、確変率を70%とかにしたいなら別々でフラグを用意するのもありです。
 演出によって確変率が高いとか楽しげです。
 この辺ハー子はなんとなくでやってるので厳密には1/2で確変ではありませんし、本職がプログラマーというわけでもないので、上に書いてみた方法が正解なのかもわかりません。

 ハー子については、あくまでも内部処理的な話ですが
「もう本当はコレはずれてるんだよなー」というのではなく「ここまできたぜ! この先もいけるかな?」
ということがあって楽しかったりします。

 パチンコとかスロットとか4号機とか5号機とかペイアウト率とか色々あるのですが、スロット(ボタンを3つ押すやつ)は、フラグの管理やドラム制御などがかなりめんどくさいわりに、それがユーザ的にどうかという面もあって躊躇しているうちに、
 いずれ自分がパチンコ・スロットから離れてしまい、結局作りませんでした。


 久々にハー子のことを考えたらちょっと面白かったので長文を書いてしまいました。

 一番大切なのは
「ハー子まじ天使(賢者の石時)」「プログラム的なことしてみたいかも」「パチンコおもすれー」
 とか、こんなもんです。
 これだけで、おそらく***さんと同じくらいの頃に知識ほぼゼロから作りだしました。
 ということで制作応援しております!
===

 とか。懐かしい……。

 懐かしいついでに影響を受けたパチンコについて。
・CRモンスターハウス
 初めてホールで打ったパチンコがコレでビギナーズラックで当たってしまいその後しばらくやることに……。これで当たってなかったらハー子は作られてない可能性がありんす。10,11,12が確変数字でキャラクターの絵柄になってるのは完全にコレがベース。

・CRピンクレディー
 デフォルメキャラがすごく可愛くて、曲と演出も良くて大変リスペクトしてる。これとか初代バカボン、ミニスカポリスの時代に打ってて、ステップアップ予告とかダブルリーチとかはこの頃のダイイチ機の影響がけっこうあります。ハー子を作ったらパチンコ欲みたいなものは完全に落ち着いた思い出。

2010年04月23日

・めも
 Flash側で読み込むxmlの改行コードはCR+LFだと二行分になって自動改行と一緒に使うとえらいことになるので、LFのみとかにして保存しとく。
 なんか行間マイナスにして調整すると自動改行が詰まるし、普通にすると手動の改行でやたら開くしで困ってしまってた。

 あと英文サイトでmacでの観覧も意識した場合にデバイスフォントを使う時は_sansが無難そう。日本語は_ゴシック、_明朝とか。
 デバイスフォント絡む時は、マスクもASでかけなきゃダメだしフォント周りは未だにちょっと不便。英文なら埋め込みも手かなぁ。

2008年06月04日

・Flashでの袋文字(文字に枠掛けるやつ)
グローフィルタ外側にしてアルファ+255とかするだけ。

追記。
強度、とかってパラメータがあるんでそっちを1000とかにあげる。
アルファだとなんかガタガタになるな。
MX2004→CS3にとんだんでわからんのだけど、8でもできるのかな。
プレイヤーバージョンはフィルタの使えるようになった8から

前は分解して枠描いて、素のやつの下に表示させないといけなかったけど、それしなくてよくなったよ。

2008年05月06日


 ラブリータイポさん。
 仕事で使うのに組んだついで。
 あれ、ダイナミックテキストフィルタかかるな?

2008年05月01日

 FlashPlayerのバージョン別普及率
http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

 ぼかしとかのフィルタが8からだからとっくに平気だな、ということでMX2004からCS3に移行してフィルタを初めて使ってみました。トップでメールのアイコン押すとちょっとなる。
 変してるだけにかけているんだけど、本当はまとめてやりたくて、実際ひとつのMCにしてみたはいいんだけど
・ムービークリップにしかできない(グラフィックシンボルとかはだめ)ムービークリップ内にグラフィックシンボルがまじっていてもだめ?
・それとも分解してない文字のせいなのでしょうか
 と、いずれかの理由で適用されなかった。
 検証はめんどいので次使う機会でよいよ。
 おそらくダイナミックテキスト辺りが怪しい。

 というかこれすごい便利じゃないか、動作軽いし。仕事でこういう表現けっこうやるんだけど、というか仕事で使おうとして試しにやってみたのだけど、今までPNGで別に画像用意して面倒な思いをしていたよ。

2008年03月25日

 flashメモ。
●computeSpectrum() は全部の音まとめて拾うだけしかできないのか?
続きを読む

ページ移動