フェナスNPCの解析
#ポケモンコロシアム
Nazza_Rella.iconフェナスシティの不定NPCは6人存在し、待機時間のアドレスはそれぞれ下記の通りとなる。
table:npc
ローラーボーイ 80956360
おぼっちゃま 809560CC
ほのぼのおばあさん 80955FF0
エリートトレーナー(女) 80955F14
エリートトレーナー(男) 80955E38
スーツのおねえさん 80955AC8
また、NPCの移動方向決定と待機時間決定の呼び出しアドレスはこれ。これはどの不定NPCも共通。
table:rand
方向決定 80180a38
待機時間決定 80180dec
フィールド切り替わり時にNPCの移動方向が決定され、各NPCが1つずつ乱数を使うため、6消費される。順番は上記に並べた通りとなり、ローラーボーイから決定される。この消費はフィールド切り替わり後の一番最初に入り、フィールド上の不定消費(水しぶき)が入るのはその後。
方向によってはエリートトレーナー(男)と、おぼっちゃまがオブジェクトに衝突し、衝突した場合は待機時間決定フレームが変わってしまう。特におぼっちゃまはトレトレ入口付近に引きこもっているせいで、衝突する方向が多い。
ただし、見かけ上衝突していても、実際には待機時間に影響がないパターンも多かった。
https://scrapbox.io/files/69541ae52f8a5e5f4ea050b7.jpg
衝突する条件は rand_f が以下の範囲のとき。危険な範囲が含むような境界を乱数値を1/65536単位で調べて設定した。
・0.02999 <= 0.05083 (エリートトレーナー(男))
・0.06214 <= 0.06283 (おぼっちゃま)
・0.14500 <= 0.19748 (エリートトレーナー(男))
・0.41516 <= 0.47112 (おぼっちゃま)
・0.59689 <= 0.64940  (おぼっちゃま)
・0.87402 <= 0.93802  (おぼっちゃま)
細かい角度まで検証したが、全て調べ切れていない可能性もある。例えば、2列目の範囲は角度換算だとわずか22.37~22.62°の間で、なおかつ範囲全ての乱数値で待機時間決定タイミングが変わるというわけではなかった。このような方向が他にもあるかもしれない。
待機時間決定は59.94fps換算で、フィールド移動後から50Fで方向決定と同じ順番で決定される。しかし、スーツのお姉さんのみ、方向に関わらず、52Fで決定されていた。少なくとも、御三家付近の建物から出た場合はこのフレームで合ってそう。
必要なNPC待機時間はざっくりこんな感じ。
・ベイリーフ 3.5秒
・マグマラシ 4.0秒
・アリゲイツ 7.0秒
NPC 6人全員が7.0秒も確保できるSeedは見つかりにくいが、消費上限を増やして検索すればいいだけ。
https://scrapbox.io/files/695435dfab0af62b28684f27.png