竜星群がみえる島

カイリューかわいい、と常に言っている人がきまぐれに作ったものを公開したりするところ。

2025年度版ウッウロボ乱数自動化プログラム

はじめに

 本記事は、Poke-Controller-Modified Extensionを使用したウッウロボ乱数自動化プログラムの使用方法をまとめた記事です。過去に公開したプログラムを改修したものになります。

draco-meteor.hatenablog.com

ウッウロボ乱数とは?(再掲)

「乱数調整をしてウッウロボから排出されるボールの種類を制御すること」を指します(諸説あり)。一般的にオシャボを生成する方法として認識されていますが、オシャボ以外のボールも排出可能です。需要があるかは不明ですが...

 

従来プログラムとの差分

 従来のプログラムとの差分は以下の通りです。

  1. ボーナス(x5)モードの実装
    本来、ガンテツボールのx5排出は1/100,000、サファボ・コンペのx5は1/1,000,000の確率でしか発生しませんが、乱数調整により毎回x5のオシャボ排出を行うようにしました。これにより、ぼんぐりの消費量が従来の1/4に削減できるようになりました。また、ボール生成速度も向上しており、特にサファボやコンペの排出の場合はボール生成速度が数倍になっています。
  2. チートモードの活用
    従来のプログラムでは、ガンテツボールの排出確率が1/100、サファボ・コンペの排出確率が1/1,000だったため、Lクリックによる消費で十分だと判断し、Lクリックによる消費のみの実装としていました。しかしながら、ボーナス(x5)モードの実装により、消費数が爆増したことから、チートモード時の日付変更による消費を導入しました。(消費方法という観点では、雷雨時の待機やVSメニューでの結果表示による消費機能も新規で採用しています。)
  3. ボール生成回数の任意指定
    従来プログラムでは、(適当につくったプログラムのため)ボール生成回数の指定ができませんでした。その結果、ウッウロボに想定外のどうぐを使ってしまう不幸な事象が発生していました。今回のプログラムでは回数の指定ができ、ぼんぐりが不足した場合に自動的に停止するようになっています。
  4. 生成するボールの選択機能
    生成するボールの種類を選択できるようになりました。なお、指定したボールに対応するぼんぐりは極力しないようになっています。

 

前提条件

 本資料およびプログラムは以下の人を対象としております。

  1. Poke-Controller Guide(https://pokecontroller.info/)を熟読し、Poke-Controller-Modified Extensionの導入および動作確認が完了している
    (注意) Poke-Controller Modifiedでも動作するように作成していますが動作検証は未実施です。作業工数の関係上、サポート対象外とさせていただきます。

    pokecontroller.info

  2. プログラム内のReadme記載の利用規約を遵守する(特に商用利用はNG)
  3. 剣盾乱数(OWRNGや色証乱数とも呼ばれる)の流れが分かっている(強く推奨)

 

プログラムが自動でやってくれること

 剣盾乱数をやったことがある人向けの説明です。(万人向けの説明ではありません)

  1. トランセルを使って現在のstate0、state1を復元する
  2. state0、state1からどの程度消費をすすめるとオシャボが出るかを計算する
  3. 日付変更/雷雨での待機/VSメニューでの結果表示/L-Stickの連打を複数回行って消費をすすめる
  4. ウッウロボに話しかけてオシャボを入手する
  5. (1-4)を繰り返す

 

動作環境

  • Python 3.12
    (注意) Python 3.7では動作しません。
  • 最新版 Poke-Controller Modified Extension (記事作成時はver.0.1.7)

 

プログラム

drive.google.com

 

事前準備

  • Poke-Controller Modified Extensionを最新版に更新してください。
    (注意) Poke-Controller Modifiedで利用する場合はPokeCon橋渡し関数を導入しておく必要があります。
  • numbaを使用するのでインストールしてください。
    (注意) pip install numbaでインストール可能ですが、PokeConの導入方法次第ではコマンドが異なります。
  • SerialController/Commands/PythonCommandsに以下の3つのフォルダ(中身を含む)を配置してください。
    • bridge_function
      (最新版のPoke-Controller Modified Extensionであれば標準で配置されています。)
    • switch_quick_date_and_time_change (プログラム内にあります。)
    • SWSH_owrng (プログラム内にあります。)

      必要なファイルの準備
  • 道場にいるNPCの数を数えてください。ポケモン含みます。
    • 例:
      • 左の部屋:5名(ポケモン1匹含む)
      • 真ん中部屋:15名(ホップ、セイボリー、ポケモン2匹含む)
      • 右の部屋:2名(マスタードとハイド)
        ※人によってはポリゴンがいます。
      • 合計:22人
  • ボックスにいるポケモンの数をカウントしてください。
  • ぼんぐり7種を準備し、 お気に入りに設定して選択画面の一番上に配置してください。
  • 手持ちの先頭にトランセル(通常色)を入れてください。

    ぼんぐり/トランセルの準備
  • チートモードにしてください。
    手順は以下の記事参考です。

    note.com

 

実行手順

  1. トランセルの詳細画面を開いて「剣盾乱数_初期state復元(再起動なし) ver.0.x.x」を実行する

    (これからシバかれる)トランセルの画面
  2. 「剣盾乱数_ウッウロボ ver. 0.1.x」を実行する
  3. 実行直後に以下の設定画面が表示されるため、適宜設定し「OK」を押す

    • 試行回数:ウッウロボを回す回数
    • 引くアイテム:ウッウロボから出したいアイテム
    • NPC数:事前準備で数えたNPC
    • ボーナス(x5):ボーナス(x5)の使用の有無 (True推奨)
    • 最終確認実施:最後にstate0, state1の計算を実施するか (False推奨)
    • 消費を進める方法:通常0。チートモードを使用しない場合は2を選択
    • 日付変更による消費数(推測値):ボックスにいるポケモンの数×14を設定
    • 雷雨による消費数(推測値):デフォルトのままで問題なし
    • VSによる消費数(推測値):デフォルトのままで問題なし
    • DEBUG:FALSE

      設定画面

 

実行例

https://x.com/dragonite303/status/1845812797114028108

https://x.com/dragonite303/status/1845812797114028108

 

よくある質問

  • Q:ログにinterruptが出力されます。
    A:cmdにてエラーの内容を確認してください。
  • Q:トランセルのモーション認識がうまくいきません。
    A:画像ファイルを自分で作成したものに差し替えてみてください。
  • Q:オシャボが出ません。
    A:NPC数の誤りの可能性が高いです。再度確認してください。
  • Q:たまにオシャボ以外がでます。
    A:消費がずれることがあるため、現時点では回避できません。
  • Q:本家Poke-Controllerでは動きますか?
    A:動作しません。

 

謝辞

 リリース前の動作確認にご協力いただいた以下の方々にこの場をお借りしてお礼申し上げます。(順不同)

  • 修行僧様((at)s1140044)
  • ドナ様((at)pokemondona) 

 また、旧版のプログラムの開発にあたり以下の皆様にご助言・ご協力頂きました。この場をお借りしてお礼申し上げます。(再掲、順不同)

 

その他

 プログラム・記事作成者((at)dragonite303)はカイリューグッズを集めています。メルカリなどでなかなか見かけないような珍しいグッズなど見かけましたらDMなどでご連絡いただければ幸いです