tora3TMaux オンライン自動アップデータ
を使ってみますた!!

レポート:Itadaki


配布サイト:http://aux.tora3.net/

※このサイトの内容は、tora3aux ver1.72 について書かれています。


★★ tora3auxっつうアプリを使って、久しぶりにゲームを作ってみることにしました。 ★★

目次
◆tora3auxって何?

◆どんなゲームを作ろうかな、と

◆tora3auxをダウンロード・・その中身は?

◆じゃまず、ファイル配置を設計してみましょか

◆設定ファイルを設定しよう

◆exec.exe を修正しとく?

◆さっそく後悔!ぃゃ公開!!

◆終わりに...


◆tora3auxって何?

tora3aux

配布サイトによると、以下のようなアプリだそうです(手抜き)。


 ■概要

自分で作ったプログラムを配布していて、ユーザーにバージョンアップを自動的に知らせたり、ファイルの更新サービスを提供したいと考えたことはありませんか?

tora3TMauxは、既存アプリケーションに、プログラムやデータをwebを通じて更新するサービスを提供します。

  • アプリケーションを起動する際に、自動的にwebサーバに接続して、更新されるファイルの有無を調べます
  • 更新されるファイルがあれば、自動的にダウンロードしてファイルを更新します
  • OSによってロックされているファイルがある場合は、次回Windows起動時に更新を実行します
  • アップデータ自身も自動的にアップデートできます

・・・ふむふむ、要するに「tora3製・オート・アップデータ・エグゼ」の略でしょうか。当たってますか、夜勤さん。

今までもいくつかソフトをネット上で発表してきたんですけど、まソコはソレ、人間のやることですから、バグは出るは欲が出てバージョンアップするはで更新しまくり、ってのはよくあることですね。 今まではネットで更新案内出したり、私的なソフトならメールに添付して送りまくったり、そりゃ大変だったわけです。

それがこのtora3aux使えば、サーバ上のファイルを更新するだけで後はほっといていい、ってんだから、まー楽チンですわね。

さっそく試してみましょう。はいはい。


◆どんなゲームを作ろうかな、と

▼あ、はじめにいっておきますけど、普通のゲームじゃないので覚悟してくださいね。 こんなゲームです。

たもん君の「あぼ〜ん道場」



ここからダウンロードできます↓
圧縮ファイル: http://www.2chs.net/abondojo/doc/abondojo.zip 1.34M
自己解凍型: http://www.2chs.net/abondojo/doc/abondojo.exe 1.36M
(ノートンアンチウィルスで検疫済み)

スター過ぎる削除人のたもん君に協力してもらって、削除シミュレータを作ってみることにしますた。 (たもん君、協力ありがとう♪)
たもん君に削除の例を出題してもらって、制限時間以内に対象スレの中のレスを削除していく、というゲームです。

えーと、コンセプトは「削除人に憧れる一般の人に、削除人気分を味わってもらう。と同時に削除人の苦労も知れやゴルァ」てなカンジです。
呆れてもらえましたでしょうか。

ダラダラと追加問題を作って更新していくゲームにしようと思ってたので、自動更新は大変ありがたいです。


◆tora3auxをダウンロード・・その中身は?

▼まずはここから最新版をダウンロードします。→ http://aux.tora3.net/

自己解凍ファイル・圧縮ファイル・英語版DLLとまあイロイロありますんで、お好みでダウンロードしてください。

私がDLしたのは圧縮ファイル形式(ZIP)のやつです。
解凍すると、こんなカンジになりますた。

<tora3aux172>
 ├ <applidir>
 │  <tora3>
 │  ├ <Download>
 │  ├ tora3aux.exe
 │  ├ tora3aux_lang.dll
 │  └ tora3.ini
 │ ├ exec.exe
 │ ├ zero1.exe
 │ └ tora3fld.ini
 ├ index.html
 └ list.txt
 <ルートフォルダ>
 <アプリフォルダ>
 <tora3格納フォルダ>
 <ダウンロードフォルダ>
  ダウンローダー本体
  言語対応DLL

  ダウンローダ設定ファイル
  起動EXE
  サンプルEXE
  サンプル設定ファイル
  説明HTML
  更新ファイルリストサンプル
 説明
   好きな名前に変えましょう
 コイツの名前は変えないほうがいいです
 コイツの名前も変えないほうがいいね
 絶対必要なヤツ
 メッセージを各国語対応にしてます
 自分用に修正して使います
 これも絶対必要
   これはいらない
   これもいらない
   なんかいらない
 自分用に修正して使います

・・絶対必要なもの ・・修正して使用するもの
(よーするに、左側の色のヤツが必要なファイルですね)

tora3auxが、どうゆう順番で動作するか想像するに、、、

 1. exec.exe を起動する。
 2. 特に指定がなければ、exec.exe<tora3>の中の tora3aux.exe を起動する。
 3. tora3aux.exe は、tora3aux_lang.dll で定義されてる文章でメッセージ表示 (これにより各国語対応) する。
 4. tora3aux.exe が、tora3.ini に書かれてるURLに、list.txt を探しにいく。
 5. list.txt に書かれてるファイルリストと、現在ローカルにアルファイルを比較して、更新されてたらDLしる。
 6. tora3aux.exe は、いったん <Download> の中にDLしたファイルを格納して、DLおわったら上書きする。
 7. DLが終わったら、tora3aux.exe が 指定されたアプリを起動して終了。

▼図に表すとこんなカンジ?

exec.exe (起動ファイル)
  ↓
tora3aux.exetora3aux_lang.dll (tora3aux本体が、言語対応DLLを取得)
  ↓
tora3aux.exetora3.inilist.txt のURL取得)
  ↓
tora3aux.exelist.txt
  ↓
tora3aux.exelist.txtに従って、鯖から更新ファイルをダウンロード
  │             ↓
  ↓         <Download>
ファイルを更新 ←───┘
  ↓
アプリケーションを起動!!

※ホントは、exec.exe もコッソリ list.txt にアクセスしています。 tora3aux 自身のアップデートのためです。
  詳細は配布サイトのマニュアルをご覧下さい。

・・・てなトコかしら。


◆じゃまず、ファイル配置を設計してみましょか

▼オイラは個人的に、ルートフォルダにゴチャゴチャあるのって嫌いなんで、こんなようなファイル配置にしてみますた。

■ローカルの配置
<abondojo>
 ├ <tora3>
 │ ├ <Download>
 │ ├ tora3aux.exe
 │ ├ tora3aux_lang.dll
 │ └ tora3.ini
 │
 ├ exec.exe
 │
 └ <abon>
    ├ abon.exe
    ├ VB40032.DLL
    ├ VB4JP32.DLL
    ├ Gunkan.mid
    ├ 1.txt
    ├ 2.txt
     :   :

 <アプリフォルダ>
 <tora3格納フォルダ>
 <ダウンロードフォルダ>
  tora3本体
  言語対応DLL
  設定ファイル


  起動ファイル


 <ゲーム本体格納フォルダ>
  ゲーム本体
  VB4DLL
  VB4日本語対応DLL
  BGMファイル
  問題文1
  問題文2
    :

 説明
 (前 述)
   〃
   〃
   〃
   〃

   〃

 ゲーム関連は全てこの中に入れます
 ゲーム本体の exe ファイルです
 VB4を動かすためのDLL
 VB4で日本語を表示するためのDLL
 バックグランドミュージックです
 以下、問題文(更新によって追加)
    :
    :


色のヤツがおいらが用意したファイル)

■サーバー内の配置

http://www.2chs.net/abondojo/
    ├ abon.exe
    ├ VB40032.DLL
    ├ VB4JP32.DLL
    ├ Gunkan.mid
    ├ 1.txt
    ├ 2.txt
     :   :
     :   :

    ├ index.html
 (のぞき見防止用)
     list.txt    (更新ファイルリスト URL: http://www.2chs.net/abondojo/list.txt)
色のヤツは、サーバー専用のファイル)


色をイッパイ使いすぎて、目がチカチカしてきました。みなさんはダイジョウブですか?

さて、このファイル配置にしたがって、アレコレ設定ファイルをいじっていきましょう。


◆設定ファイルを設定しよう

▼設定しなきゃいけない設定ファイルは、次の2つです。

tora3.ini (ダウンロード設定ファイル)
list.txt  (更新ファイルリスト)

tora3.ini は、どこのサーバーにアクセスすればいいかとか、プロキシ使うかとか、ID/パスワード設定とかします。
list.txt は前述したとおり、更新対象のファイルの一覧と、その情報を記述しておきます。


tora3.ini は、こんな風に書いてみました。

tora3.ini


 [update]
 appname=たもん君の「あぼ〜ん道場」
 list=http://www.2chs.net/abondojo/list.txt
 exec=./abon/abon.exe
 user=
 pass=
 proxy=
 proxyport=
 timeout=20
 offline=1
 [other]
 あぼ〜ん道場・ダウンロード設定ファイルです。  

▼ 1行目の appname は、tora3aux が起動してるときのウインドに表示される名前です。

このページの一番上のサンプル画面を見てください。
ウインドタイトルに「たもん君の「あぼ〜ん道場」:アップデータ」 って表示されてますでしょ? この部分です。

list で指定してるのが、list.txt がある場所です。 前項の■サーバー内の配置に書かれてる list.txt の場所を指定しています。

exec で指定してるのが、更新チェックが終わった後に起動するアプリ本体の場所です。

実は私、まずここで引っかかっちゃいました。
tora3aux.exe
から読まれるファイルなので、更新チェック終わった後に呼ぶアプリ本体の場所は tora3aux.exe からの相対位置だと思ったんですが、違いました。 ここは、exec.exe からの相対位置で指定しなくてはいけません。

  × exec= ../abon/abon.exe
  ○ exec= ./abon/abon.exe

※マメ知識:
  exec.exe<アプリフォルダ>/abondojo/exec.exe からの相対位置の場合、
   「../」 は <アプリフォルダ>/ (一つ上)を表しますが、
   「./」  は <アプリフォルダ>/abondojo/ (exec.exeと同じ位置)を表します。

  したがって、 ./abon/abon.exe = <アプリフォルダ>/abondojo/abon/abon.exe になります。

  この list項目は、 list・list2・list3・・・のように複数指定することができます。
  サバ落ちに対応したいときは、ここに複数書いて複数サバに対応するようにしときましょう。

userpass は、サーバにアクセスするときの IDとパスワードを指定しますが、私は使わないので無視です。

proxyproxyport も、私は使わないので無視しました。

timeout は、サーバーからの反応を何秒待つか、ということを指定します。 私の例だと20秒ですね。
  重いサバの時は、大きめの数字にすればいいのかな?

offline 、、この項目も私、引っかかっちゃったんですねえ、、

実は tora3aux バージョン1.71 では、この項目はなかったんですよ。
んで、どうゆう仕様だったかとゆうと、「更新チェックしてみて、ちゃんと更新チェックできなかったら アプリを起動させない」 だったんです。
要するに、「更新チェックしないと アプリは使わせてやらん!」というものだったんですね。
これは困ります。 どーせワシのゲーム、そう頻繁に更新するもんでもないので、このままではゲームがまともに遊べなくなっちゃいます。
そこで Big Serverの人に直訴。 「あの〜、なんとかならんですか?」
まーなんでも言ってみるもんですね。次のバージョン(1.72)から、この「offline」 項目をつけてくれました。

この項目では、「更新チェックが出来なかったとき、アプリを起動するか?」を指定します。
もちろん、私は起動して欲しいので、
 offline = 1
に指定しました。起動させたくない人は、
 offline = 0
に指定するといいようです。

[others] の下はメモ欄です。 好きなこと書いといてください。 詩かなんか書いとくとオシャレですねぃ。


list.txt は、こんな風に書いてみました。

list.txt ( 例 )


 [message]
 Itadakiからのお知らせです。 ゲーム内容が更新されました。 アップデートしてもよろしいですか?
 [update]
 ./abon/abon.exe?www.2chs.net/abondojo/abon.exe?2003/03/23?00:00:00?162816
 ./abon/Gunkan.mid?www.2chs.net/abondojo/Gunkan.mid?2003/03/04?22:01:00?100237
 ./abon/VB40032.DLL?www.2chs.net/abondojo/VB40032.DLL?2003/03/04?21:50:00?721168
 ./abon/VB4JP32.DLL?www.2chs.net/abondojo/VB4JP32.DLL?2003/03/04?21:50:00?33888
 
./abon/1.txt?www.2chs.net/abondojo/1.txt?2003/03/19?00:00:00?5160
 ./abon/2.txt?www.2chs.net/abondojo/2.txt?2003/03/19?00:00:00?17649
 [other]
 あぼ〜ん道場・更新ファイルリストです。

▼さあ、いよいよ一番めんどくさかった list.txt に手をつけましょか。

あ、ちなみに上の例はあくまで例です。 更新のたびに list.txt も更新されるので、今はこの通りじゃないですんで念のため。

[message] の項目は、更新の必要があったときに表示されるメッセージです。

何を更新したのか書いておいてあげると、更新の目安になって親切です。
日めくりカレンダーみたいに更新のたびになんか格言が表示されるようにするのも、オツなもんですね。

[update] 項目です。 list.txt のメインです。 ここ間違えるとなんにもなりません。

ここに、更新対象のアプリケーションの情報をひたすら並べていきます。

フォーマットは、

ローカルのファイルの場所?サーバーのファイルの場所?ファイルの更新日?ファイルの更新時?ファイルのサイズ

ですね。

各値が次のようなら、

ローカルのファイルの場所: 
サーバーのファイルの場所: 
ファイルの更新日: 
ファイルの更新時: 
ファイルのサイズ: 
./abon/abon.exe
www.2chs.net/abondojo/abon.exe
2003/03/23
00:00:20
162816
 exec.exe からの相対位置
 http://www.2chs.net/abondojo/abon.exe から、http:// を除く
 西暦/月/日
 時:分:秒 (ちょっと注意が必要・後述
 ファイルを右クリック → プロパティ:「サイズ」の数値

このように書きます↓

./abon/abon.exe?www.2chs.net/abondojo/abon.exe?2003/03/23?00:00:20?162816

 

・・・・簡単そうに見えるでしょ? でもここも引っかっちゃいましたんで、下記の点にみなさんは気をつけてくださいね。

1.さっきも書いたけど、ローカルのファイルの場所は、exec.exe からの相対位置ですからね。

2.サーバーのファイルの位置に、「http://」をつけちゃいけませんよ。

3.ファイルの更新日時は、ローカルまたはサーバー上のファイルのタイムスタンプを書く、と思ったでしょ?
 違うんです。まぁもちろん、そのタイムスタンプを書いてもいいんですけど、この値は基本的にタダのバージョンナンバーだと思ってください。
 要するに、好きな数字書いていいんです。 ま一般的には、更新した日時にするのが妥当ですね。
 ただここにも落とし穴があります。 それは「更新日時の秒の指定に、奇数を使っちゃいけません」
 なにやらWINの仕様だそうで、ここに奇数秒を指定すると、何度やっても「更新失敗しますた」って出ちゃうんすよ。
 ま更新日時の秒のところは、「00」 にしておくのをオススメします。

4.ファイルのサイズは、サバ上にあるもんをFTPソフトで確認してもいいですし、上に書いた通りプロパティで確認してもいいです。
 ただし、プロパティを参照するときには、
 ・「162,816」て書いちゃいけません。 「162816」て書きましょう。「 , 」の消し忘れにご用心。
 ・「ディスク上のサイズ」じゃなくて「サイズ」を書かなきゃイケマセンよ。
 この2点に注意してくださいね。

あと、もひとつオイラが引っかかったのが、tora3auxとは直接関係ないんですけど、テキストファイルのアップロードです。

テキストファイルをFTPソフトでアップロードするときに、アスキーモードでアップすると、改行コード「CR+LF」 が「CR」に変換されて、ファイルのサイズが変わっちゃうので注意しましょう。
これを回避するには、テキストファイルをバイナリーモードでアップデートしてください。

[others] の下はやっぱりメモ欄です。 好きなこと書いといてください。 イヤなヤツの悪口なんか書いとくとイヤミですねぃ。

 

・・・・さてさて、これで設定は終わりです。 書いてる私も疲れてきました。


◆ exec.exe を修正しとく?

▼設定ファイルを更新して、各ファイルを ローカル/サーバーに配置したら準備オッケェです。

設定ファイルに間違いがなければ、exec.exe を起動すると自動的にサーバーのファイルを参照・比較して、ローカルのファイルを最新のものにしてくれるハズです。
うまく動いてますか?

無事動いた人は、おめでとう! これでアナタもネットアプリ作家の仲間入りです。
「なんだか動かねえなあ」という人は、、、すんませんが上記を読みなおして再度トライ!

▼・・・さて、うまく動いた人、ちょいと気になることがありませんか?  えぇ、exec.exe のアイコンです。

デフォルトでは exec.exe のようなアイコンになってますけど、コレも自分のアプリに合わせたアイコンにしたいですね。

exec.exe のアイコンの変更の仕方は、次の通りです。

1.使いたいアイコンを用意する

 オイラは、こんなアイコンにしますた(笑 →

2.リソースエディタを準備する

 なにやら、フリーのリソースエディタがいろいろあるようなんで、好きなのをダウソして使いましょう。
 オイラが使ったのは、 「Resource Hacker (リソース・ハッカー)」というソフトです。

 配布サイト: http://www.users.on.net/johnson/resourcehacker/
 日本語版ZIP:http://www.users.on.net/johnson/resourcehacker/rh_japanese.zip

3.リソースハッカーをダウンロード/解凍して、起動します。

 そこに、exec.exe のファイルをドラッグ&ドロップして編集開始です。

4.以下の順に操作してください。

 1) 「アクション」
 2) 「アイコンを置き換える」
 3) 「アイコンを含むファイルを開く」
 4) 「置き換えるアイコンを選択」
 5) 「置き換える」
 6) 「閉じる」
 7) 「ファイル」
 8) 「保存」

・・・これで終わり。 簡単でしょ?
元のファイルがあった場所には、「exec_original.exe」 ってファイル(元のファイル)があるんで、用がなければ消しちゃいましょう。


◆さっそく後悔!ぃゃ公開!!

▼さてー。完成したら公開しましょうか。

必要なファイルを揃えて、圧縮でもかけてください。
・・・あ、ちょっと待った! 圧縮の前に一度、exec.exe を起動してサーバーとローカルのファイルを同期させておくのを忘れないでね。そうしないと、せっかくダウソしてもらったファイルを再度更新することになっちゃいますよ。

オイラのゲームのZIPの中身は以下の通りです。

<abondojo>
 ├ <tora3>
 │ ├ <Download>
 │ ├ tora3aux.exe
 │ ├ tora3aux_lang.dll
 │ └ tora3.ini
 ├ exec.exe
 └ <abon>
    ├ abon.exe
    ├ VB40032.DLL
    ├ VB4JP32.DLL
    ├ Gunkan.mid
    ├ 1.txt
    ├ 2.txt
     :   :

▼ここで裏技を一つ。

tora3auxは自動アップデータなので、最初にダウンロードするファイルにアプリ本体はいらないんです。
最初に起動したときにファイルがなければ、更新のフリして足りないファイルをダウンロードしてくれます。
例えば、下記のような構成で公開しても、ちゃんと動きます。

<abondojo>
 ├ <tora3>
 │ ├ <Download>
 │ ├ tora3aux.exe
 │ ├ tora3aux_lang.dll
 │ └ tora3.ini
 └ exec.exe

・・でもまあ、せっかくダウソした後に、再度ダウソするのもなんですし、そもそもダウソするときは圧縮きいてませんから、よっぽど小さいアプリの時以外はこの方法は使わない方がよいでしょう。

▼もひとつ裏技。

なんでだかわかりませんが、list.txt に更新ファイルを記述するとき、更新日時を修正せず、ファイルサイズだけ書き換えても、ちゃんと更新されます。
もちろん、更新してもファイルサイズが変わらないときは意味がないですけど。
list.txt の修正がめんどくさくなったときは、そうやって手抜きしてもいいかも。
list.txt の作成・修正に関しては後日、作成補助ツールを作って配布する予定だそうですんで、期待して待ちましょう。


◆終わりに...

・・・どうですか? うまく動いたでしょうか?
なんだか、自動アップデート機能がついただけで、いっきにネットアプリっぽくなりますよね。

アプリ以外にも、ドキュメントファイルを更新対象にしたりすると、無理矢理人に日記読ませたりできます。
いろいろな使い道が考えられそうですね。

てなわけでみなさんもガンバってネットアプリ作ってください。

レッツエンジョイ、ネットアプリライフ!
(なにいってんだかわかんねぇや)


もっとくわしい説明は、
このサイトでドウゾ↓

http://aux.tora3.net/

Copyright(C)2003 TAMON/Itadaki
Copyright 2003 NTTechnology, Inc.