LunaPort

Last-modified: 2010-02-24 (水) 22:35:18

LunaPort

海外の有志より開発された「Lunaport」が登場し、とうとう非公式ながらもネット対戦が可能になりました。
氏の初めてのネット対戦関連ツールだそうですが、国内同士では大きなラグもなく比較的快適に遊べるようです。
We all like to thank for the author of LunaPort.
(And also sorry about the author's name that were written here before.)

この項では「ヴァンガードプリンセス」でオンライン対戦を実現する「LunaPort」という対戦ツールの使用方法を解説しています。
またLunaPortは「The GNU General Public License Version 3(GPLv3)」の下で公開されています。
-注意-
このツールは非公式であり、また第三者によって作られたものでスゲノトモアキ氏には関わりがありません。
不具合などが発生しても全て自己責任になることを理解出来る方のみ、ご利用下さい。
また要望などについても氏にお願いするといった行動は慎みましょう。

LunaPortの入手

Homepage: Suge9 Homepage
Current Game Version: Japanese download (slow) 1.04
Current English Translation: None!
Current Netplay: In development: LunaPort Rxx Homepage Download
IRC Channel: irc.mizuumi.net, #vp

   という箇所があるので、DownloadをクリックしてLunaPortをダウンロードします。
   頻繁にアップデートされていますが、ここに載っているのが所謂「安定版」のようです。
   URLがMediafireへアップされているリンクは、そのバージョンのファイルへの直接のリンクです。
   ダウンロードされるのも旧バージョンの可能性がありますので出来れば本家からの入手を推奨。

  • 実験中のβバージョンも別途公開されています。
    上記の安定バージョンが不安定な方や、新バージョンの実験を行ってみたいという方は
    http://lunaport.pastebin.com/へどうぞ
    左上の「Recent Post」を上から順番にクリックしていき、リリースノートのページを探します。
    行数番号がズラっと並んでいる箇所にLunaPortという単語とバージョン、URLが記載されているので
    そのURLへ直で飛べばOKです。
  • LunaPortのGUI版である「LunaPortW」が開発されています。
    http://code.google.com/p/lunaportw/
     

LunaPortの導入

Lunaportはzip圧縮されているので、ヴァンガードプリンセスがインストールされているフォルダに展開します。
展開すると出てくるファイル郡はr49b時点で以下の通りです。全て揃っているか確認しましょう。

lobby (フォルダ) ... ロビー関連のファイル(中身は省略します)
src (フォルダ) ... ソースファイル(中身は省略します)
Changelog.txt ... 更新履歴
gpl-3.0.txt ... GNU一般公衆利用許諾契約書
LunaPort.exe ... ネット対戦クライアント
lunaport.ini ... 通信対戦設定ファイル
notify.wav ... 通知用WAVEファイル
pristine_game.ini(r29以前ではgame.ini) ... デフォルトゲーム設定ファイル
 
Readme.txt ... はじめにお読み下さい.txt

「LunaPort.exe」がネット対戦ツールです。
srcはツールのソースなど、コンパイラが扱える人向け。
太字になっているファイルをヴァンガードプリンセス.exeのおいてあるフォルダにコピーします。
またJoyToKeyなどでパッドを使っている人はGameオプションからJoyStickのチェックを外しておきましょう。
他に上書きされるファイルはありません。

LunaPortを起動前に

Readme.txtを読みましょう。
 
…といっても、十中八九読まない人が出てくると思いますので、要約だけ書いておきます。

  • 使用するポートはUDPの7500なので解放しておくこと
  • 対戦時にはゲストにホストのIPを教える必要があること
  • ファイヤーウォールやウィルス対策ソフトなどによる通信ブロックは解除すること
  • LunaPort起動中にキーコンフィグは弄らないこと
  • LunaPort起動中にゲームメニューは弄らないこと
  • 試合のルール(ラウンド取得本数)などは(勝手に)弄らないこと
     

この中で、1項目でも書いてある意味が分からない場合、各自で調べて解決しておきましょう。
特にポート解放と、対戦相手に教えるIPアドレスについてはネット対戦のあるゲームでは頻出です。
少し調べれば山ほど文献が出てきますので、先人たちの残した知恵を無駄にしないように。
 

UPnP対応ルーターの場合ポート開放ツールUPnPCJを使って開放することもできます。
 http://umemasu.hp.infoseek.co.jp/upnpcj/

ポート開放できているかのチェックはこちらのツール
 http://www.akakagemaru.info/port/udp_port.html

hamachi ポート開放ができない人のための対戦ツール(ポート開放は不要ですがLunaPortの導入は必要です)
 https://secure.logmein.com/products/hamachi/vpn.asp?lang=ja
 補足・ファイヤーウォール等のセキュリティ関係は『Hamachi』を外しておいてください。
 したらばhamatiスレ
 http://jbbs.livedoor.jp/bbs/read.cgi/otaku/12852/1247140379/l50

IPアドレスチェッカー(IPアドレス確認サイト)こちらでIPアドレスを調べられます。
 http://www.ip-checker.net/

上記はIEで開いた場合見れない事があるそうです。その場合はこちらを
 http://www.cybersyndrome.net/evc.html

  • ゲストとしてゲームに参加する場合、又はゲストとしてしかゲームに参加しない場合(通称:クラ専)は
    ポート開放は必要ありません。
注意
IPアドレスを対戦相手に教えるという行為には危険が付きまといます。
この危険性を理解し、納得した上で利用してください。
LunaPortは非公式ツールであり、トラブルが発生しても誰にも何の責任を問うことは出来ません。

LunaPortのメニューについて

 
LunaPort.exeを起動すると、下部のようなメニューが現れます。
この項でそれぞれ軽く説明します。

LunaPort r(リビジョン番号)
====================
1: Host game (port 7500 UDP)
2: Join game (port 7500 UDP)
3: Host game on lobby (port 7500 UDP)
4: List lobby games
5: Local game with random stages in vs mode
6: Toggle replay recording (currently disabled)
7: Watch replay
8: Toggle spectators (currently allowed)
9: Spectate
10: Display this menu
0: Exit
====================

(r48時点のもの)
メニューは数字を打ち込んで選択、Enterで決定します。
※注意:リビジョン番号が変わるとコマンドの数値が変更される場合があります。
 

1: Host game (port 7500 UDP)

 
ホストとしてゲームをマッチします。対戦相手には自分のIPに接続してもらいプレイする形になります。
このメニューを選んだ時点で待ちうけ状態となります。
「Waiting for connection to LunaPort...」と表示されるはずなので、対戦相手に自分のIPを伝えて
接続してもらってください。接続に成功するとつらつら文字が出た後にゲームが起動します。
 

2: Join game (port 7500 UDP)

 
ゲストとしてゲームに参加します。ホストから教えてもらったIPに接続してプレイすることになります。
2番メニューを選んだ後、教えてもらったIPを打ち込みEnterを押すことで、そのIPへの接続を試みます。
接続先のIPが待ち受け状態であったならば接続が確立され、同じくたらたら文字が出た後に起動します。
 
IPを指定して接続開始すると、成功時はほぼ間髪いれずにゲームが立ち上がりますが、
なんらかの理由で立ち上がらない場合は画面にその原因を示すメッセージが表示されます。
 

3: Host game on lobby (port 7500 UDP)

ロビー上にて、ホストとして対戦待ちを行います。(未検証)

4: List lobby games (port 7500 UDP)

ロビーリストを表示します。(未検証)

Lobby: Welcome to the lobby. Only games matching your LunaPort and game version will be listed.
====================
3: Watch lobby
2: Refresh game list
1: Display this menu
0: Exit lobby
====================

5: Local game with random stages in vs mode

 
オフラインでゲームを遊びます。
本来の実行ファイルと異なる点は、LunaPort経由で起動するとステージ指定オプションは無視され、
バトル時のステージがランダムで選択されます。
 

6: Toggle replay recording

 
リプレイ録画モードのON←→OFFを切り替えます。
ONの状態でゲームが起動されると、LunaPortがリプレイのデータを生成します。
生成したリプレイファイルはReplayフォルダ内に、生成した日時で保存されています。
拡張子は.rpy。
 
LunaPortのリプレイデータは、単純にキー操作を全て拾うスタイルのようです。
ゲームを起動して、メニューを選ぶとこから全て記録しています。
また一度の起動で複数の試合を行っても試合ごとに個別のデータを作ることは出来ないようです。
 
このモードのON・OFFは、メニュー画面の表記で判別できます。
「6: Toggle replay recording (currently disabled)」ならば録画モードOFF、
「6: Toggle replay recording (currently enabled)」ならば録画モードONです。
デフォルトではOFFになっています(設定のRecordReplayDefaultで変更可能です)。
また変更してもDisplay this menuでメニューを再呼び出ししないとメニューには反映されません。
(内部的には設定変更は適応されています。)
 

7: Watch replay

 
撮影したリプレイデータを再生します。
選択すると閲覧したいリプレイデータを選択するダイアログが出ますので、
見たいリプレイデータを選べばゲームが立ち上がり、リプレイが再生されます。

r41より再生コントロールが実装されました。
Q: 一時停止
W: ゲームスピードを標準に戻す・ポーズ解除
E: ゲームスピードを遅く
R: ゲームスピードを早く

8: Toggle spectators (currently allowed)

r11より実装されました。
観戦したい人が、貴方の試合を観戦しても良いかの設定が出来ます。
このメニューを選択するたびにON→OFFと切り替わります。
このメニューの名称が「6: Toggle spectators (currently allowed)」の場合は観戦許可モード、
「6: Toggle spectators (currently disabled)」の場合は観戦禁止モードです。
デフォルトではONになっています(設定のAllowSpectatorsDefaultで変更可能です)。
 
対戦している両者とも許可にしていないと観戦出来ないかは未検証。

9: Spectate

r11より実装されました。
他の人の試合を観戦します。
試合を観戦したい人のホストのIPを入力すると、相手の試合を観戦することが出来ます。
(r38時点では正常に動作しているようです)
 
ただし、相手が設定で観戦を拒否している場合、「LunaPort at xxx.xxx.xx.x does not accept spectators.」と表示されます。

10: Display this menu

このメニューを呼び出します。ログが出てメニュー一覧が流れてしまった時などに。

0: Exit

 
LunaPortを終了します。

lunaport.iniの設定について

lunaport.iniの編集をすると以下の設定を変更することができます。(r48時点)

[LunaPort]
PlayerName=Unknown
Port=7500
Lobby=http://lunaport.bplaced.net:80/lobby.php
;LobbyComment=First to 5
DisplayLobbyComments=1
Sound=notify.wav
PlayHostConnect=1
PlayLobbyChange=1
RecordReplayDefault=0
AllowSpectatorsDefault=1
Stages=7
StageBlacklist=6 7
UseBlacklistLocal=0
AskDelay=1
AskSpectate=1
KeepHosting=0
DisplayFramerate=1
DisplayInputrate=1
DisplayNames=1
MaxPoints=2
KeepSessionLog=1
SessionLog=session.log
GameExe=ヴァンガードプリンセス.exe
CheckExeCRC=1
Language=english(default)

PlayerName=Unknown

タイトルバーに表示されるプレーヤー名を指定します。(最大512バイトまで)

Port=7500

接続に使うポートを指定します。

Lobby=http://lunaport.bplaced.net:80/lobby.php

LunaPortのロビーに使用するURLを指定します。(r47より実装)

LobbyComment=First to 5

ロビーでのコメントを指定できます。(r47にて仕様、r48より実装)
デフォルトではこのオプションはコメントアウトされています。

DisplayLobbyComments=1

ロビーリストにコメントを表示するかどうかを指定できます。(r47より実装)

 

0 非表示
1 表示(デフォルト)

Sound=notify.wav

通知イベントで再生する音声ファイルを指定します。(r48より実装)

PlayHostConnect=1

自分がホスト待ちしている状態で対戦相手が凸してきた時、通知音を鳴らすかどうかを指定できます。(r48より実装)

 

0 無効
1 有効(デフォルト)

PlayLobbyChange=1

ロビーリストに変更があった時、通知音を鳴らすかどうかを指定できます。(r48より実装)

 

0 無効
1 有効(デフォルト)

RecordReplayDefault=0

起動時にデフォルトでリプレイを保存するかどうかを指定できます。
Lunaport起動中に設定を変更しても、再起動した際にはこの設定が適応されます。
 
0 リプレイを保存しない(デフォルト)
1 リプレイを保存する

AllowSpectatorsDefault=1

起動時にデフォルトで観戦を許可するかどうかを指定できます。
Lunaport起動中に設定を変更しても、再起動した際にはこの設定が適応されます。
 
0 観戦を許可しない
1 観戦を許可する(デフォルト)

Stages=7

ステージ番号の上限(完全指定ではなく、この数字以下のステージがランダムで選ばれる)
番号はOption→Gameの背景一覧準拠(スクールが1)
0を指定するとフリーズします
このゲームは1~7までで設定しましょう

  • Stages=5に設定することで通信対戦時に処理の重い雨のステージとラスボスステージを選択しないようにできます。

StageBlacklist=6 7

指定されたステージ番号がランダムに選択されないようにします。(r39より実装)
複数選択する場合は数字ごとに半角スペースで区切ってください。
デフォルトではネット対戦でのみ有効です。

UseBlacklistLocal=0

StageBlacklist機能をローカルモードで有効にするかを指定できます。(r39より実装)
 
0 無効(デフォルト)
1 有効

AskDelay=1

ディレイを任意で設定するかどうかを指定できます。
 
0 自動
1 手動(デフォルト)

手動ディレイの設定について
ディレイとはホストで募集をしているとき、クライアントが入った時に訊かれる数値のことです。
自動ディレイ設定に頼らずping/10(切上げ)で手動設定することで比較的快適に対戦することができます。
ping38のように一の位が大きい場合、回線が安定しているなら{ping/10(切上げ)}(例ならディレイ4)、不安定なら{ping/10(切上げ)}+1(例ならディレイ5)に設定すると良いと思われます。
それでもいつも重い人はping低くてもとりあえずディレイ5を試してみることを推奨します。
(自動ディレイとはルナポートが最初に勧めてくる[数値]のことで、その時数値を入れずにEnterを押すとその数値がディレイとして設定されます)
※このゲームのディレイ値は100分の60倍したものが他ゲーのディレイ値に相当します。
 (ヴァンガードプリンセスは秒間100f、他のゲームは秒間60fで動いています)
 例:ルナポートでのディレイ5=他ゲーでのディレイ3

AskSpectate=1

凸した相手がすでに誰かと対戦している場合、その試合を観戦するかどうかの確認を設定します。
 
0 無効
1 有効(デフォルト)

DisplayFramerate=1

タイトルバーにフレームレートを表示するかどうかを設定します。
 
0 非表示
1 表示(デフォルト)

DisplayInputrate=1

タイトルバーに入力レートを表示するかどうかを設定します。
 
0 非表示
1 表示(デフォルト)

DisplayNames=1

タイトルバーにプレイヤー名をを表示するかどうかを設定します。
表示形式は「PlayerName vs PlayerName」という書式になります。
 

KeepSessionLog=1

対戦の統計を記録するかどうかを指定できます。(r46より実装)
 
0 無効
1 有効(デフォルト)

SessionLog=session.log

セッションログのファイル名を指定できます。(r46より実装)
観戦した試合はセッションログに記録されません。

GameExe=ヴァンガードプリンセス.exe

ゲームのファイル名を指定します。
もし何らかの理由でゲーム本体のファイル名を変更する必要がある場合に使用します。

違うディレクトリにおいて相対パス指定もできるようですがr30現在はこれをやるとフリーズします。

CheckExeCRC=1

ゲーム起動時、実行プログラムのcrc32とサイズを見て互換性があるかどうかを確認します。
 
0 無効
1 有効(デフォルト)
※このチェックを外すと安定性が失われる場合がありますので触らないほうが無難です。
(VP以外の一部格ツク作品ではデフォルトの値で動作しない場合があります)

Language=english(default)

LunaPortWの言語を指定します。(LunaPortWのみの設定)

 

english(default) 英語
japanese      日本語

ネット対戦について

片方のプレイヤーがホストとなり、そこへゲストプレイヤーが接続してプレイするといった一般的なスタイルです。
対戦時にはステージがランダムで選出されます。ゲームのオプションで指定しているステージには固定できません。
一戦ごとにキャラセレ画面に戻り、対戦は無制限に繰り返されますので、事前に対戦相手と何試合分遊ぶのか
決めておくと両者とも切り上げやすくなります。
 
対戦中に特定の行動を取ることで相手にメッセージを伝える、ということがあります。
お互いメッセンジャーなどを利用している知人同士でもないことが多いので、こういった合図を決めておくことで
「この行動を取ったらこの試合で最後の対戦にしましょう」という合図が出来るようになります。
ネット対戦スレッドではテンプレートが用意されており、試合数の指定や一言欄がありますので、
ここを活用するといいでしょう。

対戦相手の探し方

オフラインの知人と遊ぶ場合は直接友人とコンタクトを取ればいいですが、オンラインで知らない人と対戦する場合は
したらばの通信対戦スレで探すか、IRCで探すのが主流のようです。
IRCを利用される方はWide系の「#VPネット対戦」または「#VPネット雑談」というチャンネルが開設されています。
あわせてどうぞ。

「突板」を利用する

突板は、有志が開発したネット対戦支援ツールです。
したらばの対戦スレをチェックして、対戦を受け付けている人を一覧表示し、状態取得や
対戦の申し込み、などを実現しています。
認知度が高く、あまり利用されていないようですが、テンプレートから情報を収集して
リスト化してくれる他、再募集時や終了時にも対応しており、pingなども読めますので中々に便利です。
現在もしたらばの専用スレッドで開発が継続されているので、興味のある方はチェックしてみましょう。
 
http://jbbs.livedoor.jp/bbs/read.cgi/otaku/12852/1247378518/

上手く対戦出来ない場合

LunaPort、LunaPortMTのクライアントバージョンを確認する

相手と同じバージョンのクライアントを使わないと不具合が出る原因になります。
最新版が必ずしも安定してるとも限りませんので、対戦前にはよく確認を。

「Waiting for connection to LunaPort...」が出ていつまでも待たされる

対戦相手が上手く貴方のクライアントに接続できていません。
ポートが解放されているかどうか、また対戦相手に教えたIPが正しいかどうか確認してみましょう。

「Connecting to LunaPort on xxx.xxx.xx.x...」が出ていつまでも待たされる

指定したIPが相手に到達出来ていないようです。
接続しようとしているIPが正しいか、または相手がLunaPortを起動しているかどうか確かめてみましょう。

「Host is busy. Connection denied.」と出る

指定したIPは既に別の誰かと対戦しているようです。
違う対戦相手を探しましょう。
また、デフォルトではその際に「Do you want to spectate?」と表示されますが、
「0: Do not spectate」を選べばそのままメニューに戻り、
「1: Spectate」を選べばその対戦を観戦することを試みます。

「Invalid IP:xxx.xxx.xx.xxx」と出る

指定したIPが間違っています。
IPが正しいかどうか確認してください。

突然フリーズする

相手がクライアントを終了したようです。
何の予告もなく終了すると、相手側のクライアントはフリーズ状態になることが多いので、
緊急じゃない場合は何かしらの宣言行動を持って終了しましょう。

ゲームスピードが遅い

接続時には相手とのPingが表示されています。
これは相手とのデータ交換速度を示していて、これが小さいほど反応が早くラグは少ない、ということになります。
また両者でPCのスペックに差があるときもラグが発生しやすく、同期を取るために遅い方のほうに合わせて設定されます。
一概にどちらが悪いというわけでもなく、単純に相性問題である可能性もあります。
対戦相手を変えてみると改善する可能性もありますので、1回やって遅かったから無理だ…と諦めないように。

また、ウィンドウのサイズが1x1ではない場合、特に重くなるようです。
Window→WindowSize 1x1を試してみてください
他にもウィンドウの位置を少しずらすと改善される場合があります。

ちなみにキャラクターセレクト画面は総じて重いようですが、対戦が始まると特に問題のない例が多いようです。
キャラセレ画面が重くても悲観的になる必要はあまりなさそうですね。

操作がおかしい

一度lunaportを介さない状態でVP本体の各種コンフィグを確認してみてください。
現在はファイル名が違うので問題ないですが昔のlunaportはgame.iniが含まれていて上書きすると設定が初期化されます。

また、Joytokey等を使っている場合、OptionのGame項目の最下段にあるJoyStickのチェックを外しておかないと不具合の原因になります。

UDP7500が何らかの事情で利用できないのでポートの番号変えたい

r14より、使用するポートの変更が実装されました。
lunaport.iniをテキストエディタで開いて、以下の行を書き換えてください。

[LunaPort]
Port=7500
RecordReplayDefault=0
AllowSpectatorsDefault=1
Stages=7
AskDelay=1

それでは

Good Luck!

コメント・質問フォーム

※ここで対戦相手の募集は行わないでください。
対戦相手の募集はコチラでどうぞ。