

サポート終了通知: 2026 年 5 月 20 日に、 AWS は のサポートを終了します AWS SimSpace Weaver。2026 年 5 月 20 日以降、 SimSpace Weaver コンソールまたは SimSpace Weaver リソースにアクセスできなくなります。詳細については、[AWS SimSpace Weaver 「サポート終了](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/simspaceweaver-end-of-support.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 詳細なチュートリアル: サンプルアプリケーションを構築しながら詳細を説明します
<a name="getting-started_detailed"></a>

[クイックスタートチュートリアル](getting-started_quickstart.md)では、 と を使用してサンプルシミュレーションを構築、開始、停止、削除する方法について説明します`quick-start.py``stop-and-delete.py`。このチュートリアルでは、これらのスクリプトの仕組みと、カスタム Weaver シミュレーションの柔軟性を最大化するためにこれらのスクリプトが実行できる追加のパラメータについて詳しく説明します。

**要件**  
開始する前に、必ず「[のセットアップ SimSpace Weaver](setting-up.md)」の手順を完了してください。

## ステップ 1: ログ記録を有効にする (オプション)
<a name="getting-started_detailed_enable-logging"></a>

**ロギングを有効にする**

1. 以下に移動します。

   ```
   {{sdk-folder}}/Samples/PathfindingSample/tools
   ```

1. テキストエディタでスキーマファイルを開きます。

   ```
   pathfinding-single-worker-schema.yaml
   ```

1. ファイルの冒頭で、`simulation_properties:` セクションを検索します。

   ```
   simulation_properties:
     default_entity_index_key_type: "Vector3<f32>"
   ```

1. 行 `simulation_properties:` の後に以下の 2 行を挿入します。

   ```
     log_destination_service: "logs"
     log_destination_resource_name: "MySimulationLogs"
   ```

1. `simulation_properties:` セクションが以下と同じであることを確認します。

   ```
   simulation_properties:
     log_destination_service: "logs"
     log_destination_resource_name: "MySimulationLogs"
     default_entity_index_key_type: "Vector3<f32>"
   ```

1. ファイルを保存し、テキストエディタを終了します。

## ステップ 2: シミュレーションを開始する
<a name="getting-started_detailed_start-sim"></a>

[クイックスタートチュートリアル](getting-started_quickstart.md)で示すように、サンプルシミュレーションを起動するための最も基本的なステップは次のとおりです。

1. 以下に移動します。

   ```
   sdk-folder/Samples/PathfindingSample/tools/cloud
   ```

1. 次のいずれかのコマンドを実行します。
   +  **Docker:** `python quick-start.py` 
   +  **WSL:** `python quick-start.py --al2` 

このスクリプトは、一般的なターミナルコマンドを自動化します。これらはすべて、 を使用して手動で実行できます AWS CLI。これらのステップは次のとおりです。

1.  Weaver スキーマを S3 にアップロードします。
   +  SimSpace Weaver はスキーマを使用してシミュレーションを設定します。スキーマは YAML 形式のプレーンテキストファイルです。詳細については、「[シミュレーションの設定](working-with_configuring-simulation.md)」を参照してください。

1.  カスタムコンテナを構築してアップロードします (オプション）。
   +  スキーマがカスタムコンテナを定義する場合、クイックスタートスクリプトは Docker イメージを構築し、Amazon ECR にアップロードします。詳細については、「[カスタムコンテナ](working-with_custom-containers.md)」を参照してください。この機能の例については、`PythonBubblesSample`スキーマを参照してください。

1.  プロジェクトをビルドします。
   +  `quick-start.py` は、 で定義された `build_project`関数を呼び出します`build.py`。このステップはプロジェクトによって異なります。PathfindingSample には、CMake が使用されます。CMake コマンドと Docker コマンド。このコマンドは にあります`build.py`。

1.  ビルドアーティファクトを S3 にアップロードします。
   +  S3 バケットをチェックして、すべてのアップロードが成功したことを確認できます。Amazon S3 でファイルを管理する方法については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 バケットの作成、設定、および使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)」を参照してください。
   +  サンプルアプリケーションの zip と S3 バケットは、次の名前形式を使用します。
     +  `weaver-sample-bucket-account-number-region` 
     +  空間アプリケーション: `ProjectNameSpatial.zip` 
     +  表示 (カスタム) アプリ: `ProjectNameView.zip` 

1.  シミュレーションを開始します。
   +  これは`aws simspaceweaver start-simulation` AWS CLI 呼び出しのラッパーです。詳細については、[AWS CLI 「 コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/simspaceweaver/)」を参照してください SimSpace Weaver。
   +  スクリプトは、シミュレーションのステータスが `STARTED` または `FAILED` になるまでループします。シミュレーションが開始されるまで数分かかる場合があります。

1.  シミュレーションの詳細を取得します。
   + **DescribeSimulation** API は、シミュレーションの状態など、シミュレーションに関する詳細を提供します。シミュレーションは、以下の状態のいずれかになります。

**シミュレーションライフサイクルの状態**

     1. **`STARTING`** — **StartSimulation** 呼び出し後の初期状態

     1. **`STARTED`** — すべての空間アプリケーションが起動し、正常に動作している

     1. **`STOPPING`** — **StopSimulation** 呼び出し後の初期状態

     1. **`STOPPED`** — すべてのコンピュートリソースが停止している

     1. **`DELETING`** — **DeleteSimulation** 呼び出し後の初期状態

     1. **`DELETED`** — シミュレーションに割り当てられたすべてのリソースが削除されている

     1. **`FAILED`** — シミュレーションに重大なエラー/障害が発生して停止している

     1. **`SNAPSHOT_IN_PROGRESS`** — [スナップショット](working-with_snapshots.md)が進行中

**シミュレーションの詳細を取得する**

     1. **ListSimulations** API を呼び出します。

        ```
        aws simspaceweaver list-simulations
        ```

        このスクリプトには、以下のような各シミュレーションの詳細が表示されます。

        ```
        {
            "Status": "STARTED",
            "CreationTime": 1664921418.09,
            "Name": "MyProjectSimulation_22-10-04_22_10_15",
            "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15",
            "TargetStatus": "STARTED"
        }
        ```

     1. **DescribeSimulation** を呼び出して、シミュレーションの詳細を取得します。{{simulation-name}} を前のステップの出力のシミュレーションの **Name** に置き換えます。

        ```
        aws simspaceweaver describe-simulation --simulation {{simulation-name}}
        ```

        スクリプトには、以下のように、指定したシミュレーションに関する詳細が表示されます。

        ```
        {
            "Status": "STARTED",
            "CreationTime": 1664921418.09,
            "Name": "MyProjectSimulation_22-10-04_22_10_15",
            "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15",
            "TargetStatus": "STARTED"
        }
        ```

1.  カスタムアプリケーションを起動します。
   + SimSpace Weaver はカスタムアプリケーションのライフサイクルを管理しません。カスタムアプリケーションを起動する必要があります。シミュレーションクロックを開始する前にカスタムアプリケーションを起動するのがベストプラクティスですが、カスタムアプリケーションはシミュレーションクロックを開始した後でも起動できます。

     **StartApp** API を呼び出してカスタムアプリケーションを起動できます。

     ```
     aws simspaceweaver start-app --simulation {{simulation-name}} --name {{app-name}} --domain {{domain-name}}
     ```

     **StartApp** API コールは、指定した名前を使用してカスタムアプリケーションの新しいインスタンスを作成して起動します。既に存在するアプリケーション名を指定すると、エラーが返されます。特定のアプリケーション (インスタンス) を再起動する場合は、まずそのアプリケーションを停止して削除する必要があります。
**注記**  
カスタムアプリケーションの起動前は、シミュレーションのステータスは `STARTED` である必要があります。

     サンプルアプリケーションには、シミュレーションを表示する `ViewApp` カスタムアプリケーションが用意されています。このアプリケーションは、シミュレーションクライアントを接続するための静的 IP アドレスとポート番号を提供します (これについてはこのチュートリアルの後のステップで行います)。**domain** は、同じ実行コードと起動オプションを持つアプリケーションのクラスと考えることができます。**app name** はアプリケーションのインスタンスを識別します。 SimSpace Weaver 概念の詳細については、「」を参照してください[の主な概念 SimSpace Weaver](what-is_key-concepts.md)。

     **DescribeApp** API を使用して、起動後にカスタムアプリケーションのステータスを確認できます。

     ```
     aws simspaceweaver describe-app --simulation {{simulation-name}} --app {{app-name}} --domain {{domain-name}}
     ```

**このチュートリアルでビューアプリケーションを起動する**

     1. **StartApp** の を呼び出します`ViewApp`。

        ```
        aws simspaceweaver start-app --simulation {{simulation-name}} --name ViewApp --domain MyViewDomain
        ```

     1. **DescribeApp** を呼び出して、カスタムアプリケーションのステータスを確認します。

        ```
        aws simspaceweaver describe-app --simulation {{simulation-name}} --app ViewApp --domain MyViewDomain
        ```

     カスタムアプリケーション (インスタンス) のステータスが `STARTED` になると、**DescribeApp** の出力にはそのカスタムアプリケーション (インスタンス) の IP アドレスとポート番号が含まれます。以下の出力例では、IP アドレスは `Address` の値で、ポート番号は `EndpointInfo` ブロック内の `Actual` の値です。

     ```
     {
         "Status": "STARTED",
         "Domain": "MyViewDomain",
         "TargetStatus": "STARTED",
         "Simulation": "MyProjectSimulation_22-10-04_22_10_15",
         "LaunchOverrides": {
             "LaunchCommands": []
         },
         "EndpointInfo": {
             "IngressPortMappings": [
                 {
                     "Declared": 7000,
                     "Actual": 4321
                 }
             ],
             "Address": "198.51.100.135"
         },
         "Name": "ViewApp"
     }
     ```
**注記**  
`Declared` の値はアプリケーションコードのバインド先となるポート番号です。の値は、 がクライアントに SimSpace Weaver 公開して app に接続するポート番号`Actual`です。 は`Declared`ポートを`Actual`ポートに SimSpace Weaver マッピングします。
**注記**  
「」で説明されている手順を使用して[カスタムアプリケーションの IP アドレスとポート番号を取得するIP アドレスとポート番号を取得する](working-with_get-ip.md)、起動したカスタムアプリケーションの IP アドレスとポート番号を取得できます。

1.  クロックを起動します。
   + シミュレーションを初めて作成したとき、クロックはありますが、作動していません。クロックが作動していないときは、シミュレーションの状態は更新されません。クロックを起動すると、アプリにティックが送信され始めます。ティックごとに、空間アプリケーションは所有するエンティティをステップスルーし、結果をコミットします。 SimSpace Weaver 
**注記**  
クロックの起動には 30～60 秒かかることがあります。

     **StartClock** API を呼び出します。

     ```
     aws simspaceweaver start-clock --simulation {{simulation-name}}
     ```
**注記**  
**StartClock** API は `{{simulation-name}}` を使用します。これは **ListSimulations** API を使用して検索できます。  

     ```
     aws simspaceweaver list-simulations
     ```

**クイックスタートパラメータ**
+ -h, --help
  +  これらのパラメータを一覧表示します。
+ --clean
  +  ビルドする前に、ビルドディレクトリの内容を削除します。
+ --al2
  +  Docker ではなくネイティブマシンに直接ビルドします。これは、WSL などの Amazon Linux 2 環境で実行されている場合にのみ使用します。
+ --uploadonly
  +  スキーマとアプリの zip のみを Amazon S3 にアップロードします。シミュレーションを開始しないでください。
+ --nobuild
  +  プロジェクトの再構築をスキップします。
+ --コンテナなし
  +  スキーマにリストされているシミュレーションコンテナの再構築をスキップします。
+ --consoleclient
  +  config.py にリストされているコンソールクライアントを自動的に構築して接続します。
+ --スキーマスキーマ
  +  この呼び出しで使用するスキーマ。config.py のデフォルト値は「SCHEMA」です。
+ --name NAME
  +  シミュレーションが持つ名前。デフォルトは、config.py の「PROJECT\_NAME」-date-time の値です。

## ステップ 3: ログを確認する (オプション)
<a name="getting-started_detailed_check-logs"></a>

SimSpace Weaver は、シミュレーション管理メッセージとコンソール出力をアプリから Amazon CloudWatch Logs に書き込みます。ログの使用の詳細については、「*Amazon CloudWatch Logs ユーザーガイド*」の「[ロググループとログストリームの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)」を参照してください。

CloudWatch Logs には、作成した各シミュレーションに独自のロググループがあります。ロググループの名前は、シミュレーションスキーマで指定されます。以下のスキーマスニペットでは、`log_destination_service` の値は `logs` です。つまり、`log_destination_resource_name` の値はロググループの名前です。この場合、ロググループは `MySimulationLogs` です。

```
simulation_properties:
  log_destination_service: "logs"
  log_destination_resource_name: "MySimulationLogs"
  default_entity_index_key_type: "Vector3<f32>"
```

**DescribeSimulation** API を使用して、シミュレーションを開始した後でシミュレーション用のロググループの名前を検索することもできます。

```
aws simspaceweaver describe-simulation --simulation {{simulation-name}}
```

以下の例は、ロギング設定を説明する、**DescribeSimulation** から出力の一部を示しています。ロググループの名前は `LogGroupArn` の末尾に表示されます。

```
   
    "LoggingConfiguration": {
        "Destinations": [
            {
                "CloudWatchLogsLogGroup": {
                    "LogGroupArn": "arn:aws:logs:us-west-2:111122223333:log-group:MySimulationLogs"
                }
            }
        ]
    },
```

各シミュレーションロググループには、いくつかのログストリームが含まれます。
+ **管理ログストリーム – ** SimSpace Weaver サービスによって生成されるシミュレーション管理メッセージ。

  ```
  /sim/management
  ```
+ **エラーログストリーム – ** SimSpace Weaver サービスによって生成されたエラーメッセージ。このログストリームは、エラーがある場合にのみ存在します。 は、アプリによって書き込まれたエラーを独自のアプリログストリームに SimSpace Weaver 保存します (次のログストリームを参照）。

  ```
  /sim/errors
  ```
+ **空間アプリケーションログストリーム** (各ワーカーの空間アプリケーションごとに 1 つ) — 空間アプリケーションによって生成されるコンソール出力。各空間アプリケーションは、独自のログストリームに書き込みます。{{spatial-app-id}} は、{{worker-id}} の末尾にあるスラッシュの後のすべての文字です。

  ```
  /domain/{{spatial-domain-name}}/app/worker-{{worker-id}}/{{spatial-app-id}}
  ```
+ **カスタムアプリケーションログストリーム** (カスタムアプリケーションインスタンスごとに 1 つ) — カスタムアプリケーションによって生成されるコンソール出力。各カスタムアプリケーションインスタンスは、独自のログストリームに書き込みます。

  ```
  /domain/{{custom-domain-name}}/app/{{custom-app-name}}/{{random-id}}
  ```
+ **サービスアプリケーションログストリーム** (サービスアプリケーションインスタンスごとに 1 つ) — サービスアプリケーションによって生成されるコンソール出力。各サービスアプリケーションは、独自のログストリームに書き込みます。{{service-app-id}} は、{{service-app-name}} の末尾にあるスラッシュの後のすべての文字です。

  ```
  /domain/{{service-domain-name}}/app/{{service-app-name}}/{{service-app-id}}
  ```

**注記**  
サンプルアプリケーションにはサービスアプリケーションはありません。

## ステップ 4: シミュレーションを表示する
<a name="getting-started_detailed_view"></a>

 SimSpace Weaver アプリケーション SDK には、サンプルアプリケーションを表示するためのさまざまなオプションが用意されています。Unreal Engine 開発のローカルサポートがない場合は、サンプルコンソールクライアントを使用できます。Unreal Engine クライアントの手順は、Windows を使用していることを前提としています。

コンソールクライアントは、エンティティイベントが発生するとそのリストを表示します。クライアントは `ViewApp` からエンティティイベント情報を取得します。コンソールクライアントがイベントのリストを表示すると、シミュレーション内の `ViewApp` およびアクティビティとのネットワーク接続を確認します。

`PathfindingSample` シミュレーションでは、二次元平面上に静止しているエンティティと動いているエンティティが作成されます。移動するエンティティは静止しているエンティティの周りを移動します。Unreal Engine クライアントはエンティティイベントを視覚化します。

### コンソールクライアント
<a name="getting-started_detailed_view_console-client"></a>

`--consoleclient` オプションを含める`quick-start.py`と、 でサンプルを起動するときにコンソールクライアントを自動的に構築して接続できます。`quick-start.py` が既に呼び出された後にコンソールクライアントを構築して接続するには、次の手順を実行します。

以下に移動します。

```
sdk-folder/Clients/TCP/CppConsoleClient
```

スクリプトを実行して、クライアントを構築して接続します。

```
python start_client.py --host ip-address --port port-number
```

スクリプトは以下を実行します。

1.  CMake を使用してコンソールクライアントを構築します。

1.  指定された IP アドレスとポート番号を使用して、ビルドされた実行可能ファイルを起動します。

   ```
   .\WeaverNngConsoleClient.exe --url tcp://{{ip-address:port-number}}
   ```

### Unreal Engine クライアント
<a name="getting-started_detailed_view_unreal-client"></a>

「[Unreal Engine ビュークライアントの起動](working-with_unreal-client.md)」を参照してください。

## ステップ 5: シミュレーションを停止して削除する
<a name="getting-started_detailed_stop"></a>

 以下に移動します。

```
sdk-folder/Samples/PathfindingSample/tools/cloud
```

シミュレーションの名前を見つけます。

```
aws simspaceweaver list-simulations
```

シミュレーションを停止して削除します。

```
python stop-and-delete.py --simulation simulation-name
```

スクリプト`stop-and-delete.py`は以下を実行します。

1.  AWS CLI コマンドを呼び出してシミュレーションを停止します。
   + `aws simspaceweaver stop-simulation`
   + 詳細については、「 の[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/simspaceweaver/stop-simulation.html)」を参照してください SimSpace Weaver。

1.  AWS CLI コマンドを呼び出してシミュレーションを削除します。
   +  `aws simpaceweaver delete-simulation` 
   + 詳細については、「 の[AWS CLI コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/simspaceweaver/delete-simulation.html)」を参照してください SimSpace Weaver。

**stop-and-delete パラメータ**
+ -h, --help
  + これらのパラメータを一覧表示します。
+ --シミュレーションシミュレーション
  + stop-and-deleteシミュレーションの名前
+ --stop
  + シミュレーションのみを停止します。削除しません。
+ --delete
  + シミュレーションのみを削除します。シミュレーションが `STOPPED`または の場合にのみ機能します`FAILED`。

## トラブルシューティング
<a name="getting-started_detailed_troubleshooting"></a>

クイックスタートチュートリアルの[トラブルシューティング](getting-started_quickstart.md#getting-started_quickstart_troubleshooting)「」を参照してください。