Bulletnote MEMO  to index  更新履歴(update 2003/12/25)


「Bulletnote」とは?

 ABA Gamesで公開されている弾幕記述言語BulletMLを、IBMが開発したJava統合開発環境「Eclipse」上で開発できるようにするプラグインです。
 Eclipseを使うので、なんとなく真面目な開発をしているように見えます。なので、これでお仕事中にも弾幕が好きなだけ定義できます。
 ここでは、「Bulletnote」を使う上で困ったこととかつまづいたところなど、Eclipseの件も交えてつらつらと書こうと思います。
 このページに関してのご指摘は、ABA Gamesではなくこちらまでお願いします。


まず、インストール

 まずは、本家Bulletnoteのページを読みましょう。

 実は、ここでよくわからず、二回ほど失敗してしまいました。
 で、試した結果インストール手順は以下のような感じになってるっぽい。ちょっとくどいけど。

 01.Eclipseのダウンロード、解凍
 02.Bulletnoteのダウンロード、解凍
 03.Bulletnote解凍後にできる「jp.gr.javaconf.abagames.bulletnote_?.?.?フォルダ」(?はバージョン番号)をEclipseの「pluginsフォルダ」にコピー
 04.Eclipseを起動
 05.「File→Import」を選択
 06.「Import」ダイアログの中の「External Plug-ins and Fragments」を選択して「Next」を押す
 07.「External Plug-ins and Fragments」ダイアログはそのまま「Next」を押す
 08.「Import Plug-ins and Fragments」ダイアログで、まず「jp.gr.javaconf.abagames.bulletnote_?.?.?」以外のプラグインを選択
 09.「Add Required Plug-ins」ボタンを押して「Finish」を押す
 10.終わったら再度「Import Plug-ins and Fragments」ダイアログまでいく(手順は同じ)
 11.今度は「jp.gr.javaconf.abagames.bulletnote_?.?.?」のみを選択して「Finish」ボタンを押す
 12.「Window→Open Perspective→Other」を選択
 13.「Select Perspective」ダイアログで「Bulletnote」を選択、「OK」ボタンを押す

 これで、完了。インストールが無事終わるはずです。


プレビューできないBulletMLエディタ

 ここまでくれば、あとは弾幕を定義する、だけなのですが、自分はここで困ったことになりました。
 実は、このPluginの肝である「プレビュアー」が出ないのです。出るのは「An error occurred when creating this view」というエラーダイアログ。
 これではいけません。このままではEclipseは「大仰なBulletMLエディタ」になってしまいます。
 しかもセーブすると「save faild:null」なんて出てくる始末。エディタにすらならないのか?(実際はセーブはされていた)

 ここで二日ほど悩みましたが、とある別の環境で試してみた結果、原因がわかりました。

 「EclipseはJavaの統合開発環境」であることを、すっかり忘れていたのです。
 いや、本当は「BulletML統合開発環境」であることばかりに目がいってて、「Java統合開発環境」という事に気がついてなかったのですが。
 自分の環境を調べてみると、入っていたのは「Java2 Runtime 1.3.1」という「動かすためだけのランタイム」しか入っていませんでした。これでは動くわけがありません。
 で、Java本家のページからJava2 SDK, Standard Edition (J2SETM), v 1.4.0をダウンロードしてインストールしてみた結果、何事も無かったように動きました。
 もし「1.3.1SDK入れてるのに動かない」という方がいらしたら、「1.4.0」以降をインストールしてみましょう。


弾幕を定義しよう

 ようやく弾幕を定義できるところまでこぎつけました。
 弾幕を定義するときに注意する点は、ここの「使い方」の下の方にも書かれてますが・・・、

 01.「<!DOCTYPE bulletml SYSTEM "http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/bulletml.dtd">」をBulletMLドキュメントに含める
 02.ラベル名が'top'から始まるAction要素を記述する必要がある

 以上の二点ですか。まあ、BulletMLに慣れ親しんでいる方ならこの辺で戸惑うことは無いかと。
 (後で簡単な記述例を示します)

 さて、早速Eclipseで弾幕を定義するために「弾幕プロジェクト」を作成しましょう。
 プロジェクトの作成は簡単。

 01.「File→New→Project」を選択
 02.「New Project」ダイアログで「Simple」(左側)と「Project」(右側)を選択し、「Next」ボタンを押す
 03.「Project Name」エディットボックスにお好きな名前を入れて「Finish」ボタンを押す

 以上。これでプロジェクトができました。項目03で、間違えて「Next」を押しそうになりますが、グッと我慢してください。
 では、弾幕を定義しましょう。

 01.「File→New→File」を選択
 02.「New File」ダイアログの下にある「File name」エディットボックスに、お好きなファイル名を入力(拡張子「.xml」付きで)
 03.「Finish」ボタンを押す

 とした上で、出てきたウィンドウにペシペシ弾幕定義を記述するだけです。
 とりあえず、試しに下記の弾幕をコピペして、セーブしてみてください。
 ("ABA Games"から引用させていただきました)
<?xml version="1.0" ?>
<!DOCTYPE bulletml SYSTEM "http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/bulletml.dtd">

<bulletml xmlns="http://www.asahi-net.or.jp/~cs8k-cyu/bulletml">

<action label="top">
<fire>
<bullet/>
</fire>
</action>

</bulletml>
 上記の定義は、「自機の狙った方に弾を吐く」ですが、現状では自機は中心下方(のよう)なので、見た目には真下にまっすぐ弾を撃つだけに見えると思います。それで、正解です。
 さあみなさんも、これを使って思う存分弾幕を定義しましょう。幕じゃなくても良いけど。
 BulletMLのリファレンスに関してはこちらをご覧ください。また、こちらに、様々な弾幕定義があります。


その他、困ったこと

 Q.「Perspective」してもプレビュアーが出ない(エラーも出ない)し、出てきた「Bマーク」を押したら増殖する(2003/1/15)

 A.「jp.gr.javaconf.abagames.bulletnote_?.?.?フォルダ」以下のファイルを全て解凍していないかな?「eo」などの解凍ツールを使って「徹底解凍」などすると、この現象が起こるようです。
   詳しい理由はわかりませんが、「.jar」ファイルが解凍されているといけないようです。

 Q.Eclipsでプレビューした弾道と、ここで実行した弾道の結果が違うんですが(2003/1/17)

 A.弾幕の記述方法が何らかしら間違っているかもしれませんが、ひょっとしたら、Eclips上とアプレット上の計算による誤差が出ているのかもしれません。
   気になるようでしたら、極力同じになるようにパラメータなどを調整するしかないでしょう。

 Q.「<param>〜</param>」を「bulletRef」に渡すと、Taskでエラーと出てしまうのですが?実際に組み込めばうまく動きます。(2003/11/09)

 A.<param>で渡したパラメータを、<speed>や<direction>等で使用するとこうなるようです。これはBulletNOTEのバグのようです。
   素直にバグフィックスを待ちましょう。それまでは、とりあえずは直値を代入するなりして動作を確認しましょう。

 Q.以下のような「レベルが上がると敵弾の間隔が狭まる」弾を定義をしたら、
  <direction type="aim">($rand*120-60)*(1-$rank)</direction>
  プレビューでは「自機方向」にしか弾が飛ばない。実際に組み込むとちゃんと動作するのですが。
(2003/12/26)

   素直にバグフィックスを待ちましょう。それまでは、とりあえずは組み込んで動作を確認しましょう。


権利とか

 「BulletML」「Bulletnote」は「ABA Games」及び「長 健太」氏のものです
 「Eclipse」は「IBM」の登録商標です
 「Java」は「Sun Microsystems」の登録商標です


更新履歴
2003/12/26 「その他、困ったこと」の2003/12/25を修正
2003/12/25 「その他、困ったこと」に一件追加
2003/11/09 「その他、困ったこと」に一件追加
2003/01/17 「その他、困ったこと」に一件追加
2003/01/15 「その他、困ったこと」に一件追加
2003/01/14 公開