コンテンツにスキップ
日本語

Windows

ゲームサーバーとコントローラープログラムを同じコンピューターで実行する

Section titled “ゲームサーバーとコントローラープログラムを同じコンピューターで実行する”

まず、ゲームサーバーと自分のコントローラープログラムを同じコンピューターで実行してみましょう。競技での構成とは異なりますが、ローカルでデバッグするときに便利です。

ワールドを開き、コントロールウィンドウで「TOGGLE REMOTE」を押します。リモートモードがオンになると、ボタンがオレンジ色に変わります。
TOGGLE REMOTE ボタン

コントロールウィンドウが表示されない場合は、Scene Tree で「DEF MAINSUPERVISOR Robot」を右クリックし、「Show Robot Window」を選んでください。
Show Robot Window の項目

PowerShell を開きます。通常はアプリの一覧にあります。
アプリの一覧にある PowerShell

PowerShell で次のコマンドを実行します。<Your controller path> は、コントローラープログラムのパスに置き換えてください。

webots-controller.exe <Your controller path>

コマンドが見つからない場合は、フルパスを使ってください。デフォルトでは C:\Program Files\Webots\msys64\mingw64\bin\webots-controller.exe です。

コントローラープログラムのパスがわからない場合は、そのファイルを PowerShell のウィンドウにドラッグ&ドロップすると、パスが自動で入力されます。
PowerShell のウィンドウにファイルをドラッグする様子

Enter キーを押してコマンドを実行します。コントローラーは Webots に接続し、ゲームが始まるまで待機します。

コントロールウィンドウのスタートボタンを押して、シミュレーションを開始します。
コントロールウィンドウのスタートボタン

ゲームを止めるには、PowerShell で Ctrl+C を押してプログラムを停止します。

シミュレーションが終了すると、Erebus のゲームマネージャーも停止します。もう一度ゲームを実行するには、ワールドを再読み込みしてください。
Webots の再読み込みボタン

ゲームサーバーを別のコンピューターで実行する

Section titled “ゲームサーバーを別のコンピューターで実行する”

これは公式の競技で使われる構成です。コントローラーを実行するコンピューター(クライアント)と、ゲームを実行するコンピューター(サーバー)は、同じネットワークに接続されている必要があります。

  1. (サーバー)サーバーで Webots を起動し、ワールドを開いて、コントロールウィンドウでリモートモードをオンにします。
  2. (サーバー)サーバーの IP アドレスを調べます。Windows で IP アドレスを確認するを参照してください。
  3. (クライアント)PowerShell で次のコマンドを実行します。<Your controller path> はコントローラープログラムのパスに、<Server IP address> は前の手順で調べた IP アドレスに置き換えてください。
    webots-controller.exe --protocol=tcp --ip-address=<Server IP address> <Your controller path>
  4. (サーバー)スタートボタンを押してゲームを開始します。

コントローラーが接続できない場合は、2 台のコンピューターが互いに通信できること、サーバーのファイアウォールが TCP ポート 1234 を許可していること、Webots の設定(Preferences)の Network タブにある許可 IP のリストが空か、クライアントを含んでいることを確認してください。

この構成について詳しくは、Webots のガイドを参照してください。