改造tips
冒頭部分のキャラクター差し替え
キャラクターのグラフィックを変更するだけなら、pokemon_imageで次のアドレスを開いてBMPをインポートするだけなのです。
キャラクター | イメージ | パレット | 正しいパレット(こっちを参照する) |
男の子主人公 | 0x423950 | 0x423910 | 0x423890 |
女の子主人公 | 0x423228 | 0x4231E8 | 0x423168 |
ライバル | 0x424700 | 0x4246C0 | 0x424600 |
オーキド博士 | 0x424028 | 0x42EFE8 | 0x423F28 |
RAWにチェックをいれて「256色」として読み込ませます。pokemon_imageの数字は8を入れます。
パレットは調べれば出てくるのですが、パレットのアドレスは少しずれています。それなので、正しいパレットのアドレスを入力しないと、色化けして残念なことになります。
この後、BMPをロードして、SaveImageで書き込みます。(パレットはいじりません)
ライバルキャラクターのパレット差し替え
試行錯誤の結果、こういうことをしました。
一見するとライバルの画像を差し替えただけに思えますが、よく見ていただけるとわかります。
実は本来のライバル画像に無い色を使用しているんです。
この水色や、ピンクがありませんでした。
当初はエイヤッとばかりにただイメージを差し替えただけで終わると思っていた作業だったのですが、思ったよりも難解でした。
ただ入れ替えるだけでは、パレットに無い色を使用しているので色化けするのです。
解決方法
パレット情報をバイナリエディタで直接書き換えます。
冒頭の四人はパレットの使用位置が違うだけで、色数は同じ32色です。(EDGEなどでBMPを開くとわかります)
- ということでこの場合は、まず主人公の使用しているパレット部分をコピーして、ライバルのパレットの使用部分に貼り付けました。
- その後、パレットに貼り付けた主人公の色を使用してライバルのドットを書きました。
- BMPで保存し、普通にpokemon_imageでSaveImageします。(このときパレットはいじりません。)
- パレットの正しいアドレスにバイナリエディタでアクセス。EDGEのパレットビューを見ながら、該当部分を直接コピーアンドペーストしました
本来パレットは
ヘッダ | 内容 | 区切り | … |
10 20 00 00 00 | AA AA BB BB CC CC DD DD | 00 | EE EE… |
となっています。四色(8バイト)ごとに区切りの00が入るのが普通です。
(ポケモンではひとつの色を2バイトで表現するようです。)
しかし、この256色パレットでは、ヘッダも、区切りも無いので注意が必要です。
つまりはじめから
AA AA BB BB CC CC DD DD EE EE… |
と並んでいるということです。
私はここで詰まりました。なので、あまり役には立たないなと思いつつ、記載してみます。
ちなみに
このページのヘッダ画像には、主人公とライバルさんの二人が描かれていますが、これはこの問題が無事解決して、うれしさのあまり描いたものです。
ライバルさん!やったね!
- 最終更新:2009-10-12 22:55:52