※かなり昔に書いたブログ内容の移転です。正直今見返すのもアレなレベルなのですが、自らの記録のために書いておこうと思います。
学生時代に作った、Javaもゲームの作り方もよく分かっていなかった時期のプログラムですが、よくここまで調査して作ったなぁ……と思ったので。自分以外に今更ガラケー向きアプリを作成する奇特な人間のために(?)残しておきます。
ゲーム制作自体の解説より、どのようにして実機で動かしたかといったHowto的な側面をまとめることを主旨としたいと考えています。史料となる…かどうかは分かりませんが、制作の過程をまとめておきたいと感じ、執筆しました。
というか、もう新規契約が終了してしまったどころかサービス終了したプラットフォームのゲームを遊んでもらうことが絶望的であると悟ったので、ソースコードや色々を公開してしまおうと思ってこんなことを始めました。遅かったのは分かっているんです、でも何かの役に立てば幸いです。
制作成果物のダウンロード
京セラ製PHS、402KCでのみ実機動作確認。(製作途中一度だけWX05Kでも動かした)
402KC実機上ではSEが再生されないのは仕様となります。
SDカードのPRIVATE\DATAフォルダにjadを置くとデータフォルダに認識されるので、インストールを実行します。
開発前の準備
まずは開発環境を整えました。
特有のものとしては、j2me Wireless Toolkit
Sun Java Wireless Toolkit 2.5.2 for CLDC Download
エミュレータが同梱されており、テストやソースコードからのビルドを行えるツール。現在ダウンロードにはOracleアカウントでのログインが必要。
このツールをインストールする前に、先にJava Development Kit(JDK)をインストールしておく必要があります。
Java SE - Downloads | Oracle Technology Network | Oracle
バージョンは当時の環境のことを思い出しながらあえて6にしました。
詰まった点として、JDKは32ビット版でないとJ2MEのインストール時に認識されません。64ビット版を既にインストールしている場合でも32ビット版が必要でした。
開発の参考にした資料(ほとんどWebのもの)
連載インデックス「携帯アプリを作って学ぶJava文法の基礎」 - @IT
初心者向け。一つのアプリを作っていく構成であるのでわかりやすい。
DoCoMo(Doja)とそれ以外のキャリアのMIDPの違いも解説されている。
各機種の仕様が載っている
サンプルコードなどがあるので参考になります。
ここの「サンプルコード」からダウンロードできるzip形式ファイルの中からゲーム制作で特に参考になったもの。
AudioPlaySample・・・音楽再生
FontSample・・・文字表示
GraphicsSample・・・Canvasの使用。塗りつぶしや図形描画
ImageSample・・・画像表示
KeyEventSample・・・キーイベント(数字キー記号キーの使用)
KeyEventSample2・・・キーイベント(方向キー決定キーの使用)
SpriteSample・・・Spriteの使用
詳細な機種スペックを参照
概要 (Unofficial 'CLDC 1.0 + MIDP 1.0' API Reference.)
Unofficial “CLDC 1.1 + MID Profile 2.0” API Reference. | KEI SAKAKI's PAGE.
MIDPの日本語リファレンス
auオープンアプリプレイヤーでのアプリ作成
あとは自分の好きなテキスト編集ソフトを用意しておく。私はサクラエディタを使用しました。
今回は、ウィルコム(Y!mobile)PHS、402KCで動作させることを目標としています。
最後の京セラ製PHSであり、PHS向けJavaアプリを動作させることのできる最後の端末。
OSは昔から変更なかったと思うので確かTRON。ちなみに今Y!mobileから出てるシャープ製のガラケー型端末はUIそっくり中身Androidの別物です。従来のJavaアプリは動きません。
さて、PHSにて採用されているJavaはMIDPと呼ばれているもの。
ガラケーではSoftBank、au(オープンアプリ、EZアプリ(J))、EMOBILEで採用されていました(DoCoMoは言語はJavaの独自のもの)なので、各社独自の追加機能はあれどY!mobile(ウィルコム)はSoftBankやauのアプリの作り方そのままでいけるようです。
PHSと携帯電話の違いについてはこの記事では割愛させていただきます。Javaアプリに関していえば性能や独自機能以外違いはないと思います。
また、細かな制限があるようです。
- SoftBankは勝手アプリをコンテンツアグリエータ*1からしかダウンロードできない(そして今はもうほとんどのコンテンツアグリエータはガラケー向けサービスを終了している)
- SDカード経由でネット経由せずにインストールできるのはウィルコムだけ?
参考文献:http://www.atmarkit.co.jp/ait/articles/0809/17/news135_3.html
現在、勝手アプリを制作したい場合ウィルコムかau向け(契約している端末のみ?)ということになります
では、ターゲットの端末の性能を確認していきます
このページより、
>搭載するJava™ VMは、MIDP 2.0/CLDC 1.1に準拠したもので、JSR-75のFile Connectionにも対応しております。
>また、一部の機種は位置情報、カメラのAPI、マスコットカプセルV3.0にも対応しております。
>対応する画面解像度はQVGAで、描画可能領域(Canvas)は240x276です。
この辺はほぼ全機種共通と考えて良さそうです。
このページにあるJava機種情報と対応API一覧表は要チェック。
機種情報:https://www.ymobile.jp/service/contents_service/common/pdf/javatm_lineup.pdf
対応API一覧表:https://www.ymobile.jp/service/contents_service/common/pdf/javatm_api.pdf
WX12Kまでしか書かれてない…まぁ、ほぼ上位互換的に性能が上がってるはずなのでWX12Kで動けば動くでしょう(
機種情報の方のWX12Kの情報も参照しておきます。
https://www.ymobile.jp/service/contents_service/common/pdf/function.pdf
ほとんど同じですがサウンド関係についてはこちらに詳しく書かれているのでチェックしておきます。
スペシャルサンクス
ばななん。さんに特殊タイトル画面イラストを描いていただきました。
ゲームに使用するイラストを他人に依頼することは初めての経験でしたので、大変勉強になりました。
依頼の仕方などで相手と文字でやりとりするにあたって、相手にどのような文章にして自分の要件を伝えることができるか、などを考えるきっかけになりました。
キャラクターの設定資料などを用意していなかった中、(あの後ろ姿三枚のタイトル差分くらい)、今まで後ろ姿を向いていたキャラクターがこちらを向いて笑顔を見せるという場面を表現していただきました。
このブログを作った理由の一つに、この素晴らしいイラストがプレイヤーの限られるアプリ限定になってしまうのが勿体なかったというがあります。
ばななん。様へ制作に快く協力していただいたことを、この場にて感謝申し上げます。
使用した素材など
効果音:ゲーム用効果音「reflect」(wav)
ゲームのBGM、SEに使用しました。
童謡てるてる坊主の童謡風、ハープアレンジをステージBGMとゲームオーバーBGMに使用。
かすり時のSEにはreflectを使用しています。
*1:アプリゲット等。今でいうAppStoreやGooglePlayのようなところ