Builderは、現在日本語では正常に動作しません。改善中ですのでしばらくお待ちください。Builderを使うと、メタデータ形式を使って、対話型ノベルやロールプレイング、アドベンチャーゲームといった、ゲームやストーリーのコンテンツを作成できます。エンジンでは次のような機能が提供されます。Builderを使って、ライターやデザイナーが作成したコンテンツをAlexaで読み込み可能な言語に統合できます。BuilderをアンインストールするはじめにNode.jsバージョン10以上をインストールします。最新バージョンのGitをインストールします。Pythonをインストールします。Windowsでは、Pythonバージョン2.7.14を使用します。Builderは、最新バージョンのPythonでは正常に動作しません。2.7.14が推奨されます。CLIをインストールします。(Windowsのみ)最新バージョンのwindows-build-toolsモジュールをインストールします。Codeをインストールします。Codeに最適化されています。BuilderをインストールするNode.jsをインストールすると、NPMも含まれています。Builderをインストールするには、NPMのコンフィギュレーションを変更する必要があります。Builderのコマンドを実行できるようにするには、次を実行します。@alexa-games/sfb-cliコマンドラインインターフェースをグローバルにセットアップする代わりに、alexa-sfbパッケージをローカルにセットアップするディレクトリにディレクトリを変更し、次を実行します。alexa-sfbを使ってコマンドラインインターフェースを実行します。ローカルにalexa-sfbパッケージをセットアップする場合、ディレクトリをローカルディレクトリに変更し、次のコマンドを実行します。Codeの言語拡張機能をインストールします。この拡張機能では、構文の強調表示、エラー診断、定義箇所への移動が可能になります。Codeで提供される定義部分への移動機能では、シーンを定義したファイルや行に移動できます。myscene指示が含まれる場合、mysceneをクリックしてF12を押すか、定義に移動を右クリックすると、そのシーンを定義した行に移動できます。newを使って新しいゲームやストーリーを作成します。コマンドを実行する場合は、ファイル、ゲーム、ストーリーを保存するフォルダへのパスを指定します。my_best_storyシミュレーターを使用してスキルのコンテンツをデバッグするシミュレーターを使ってコンテンツを通しで再生し、コンテンツの動作を確認できます。シミュレーターでは、スキルではなくコンテンツのランタイム実行をテストします。ターミナルまたはコンソールで、次のコマンドを実行し、シミュレーターでコンテンツをプレビューします。<ユーザーの_プロジェクト_パス>Alexaスキルをデプロイする次のステップを実行し、ゲームやストーリーをAlexaスキルとしてデプロイします。ASKプロファイルをセットアップします。Kit(ASK)プロファイルは、開発者アカウントを使ってセットアップし、AWSアカウントをリンクします。次のコマンドを実行し、プロンプトに従います。init「default」以外のASKプロファイルを使うには、<ユーザーの_プロジェクト_パス>/abcConfig.jsonを開き、"ask-profile-name"アトリビュートに使いたいプロファイルを指定します。使用するユーザーのAWSアカウントセキュリティ認証情報がある、アクティブなAWSアカウントを指定する必要があります。認証情報のあるIAMユーザーがない場合、AWSコンソールを開いてIAMタブに移動します。「ユーザーを追加」をクリックして新しいユーザー名を作成します。「プログラムによるアクセス」チェックボックスを選択して、以下の設定を使用してポリシーの権限を付与します。]}スキルをコンフィギュレーションします。コンフィギュレーションを一切変更することなく、スキルを作成しデプロイできます。コンフィギュレーションを更新するには、<ユーザーの_プロジェクト_パス>/abcConfig.jsonで、スキルのコンフィギュレーションファイルの次の項目を更新します。CLIで使用するスキルの名前です。Lambda関数名とスキル名は、この値から取得します。このフィールドには、アルファベットの大文字および小文字(A~Z、a~z)、数字(0~9)、アンダースコア(_)、ダッシュ(-)を含めることができます。ユーザーがスキルを呼び出す方法を定義します。詳細については、ユーザーによるカスタムスキルの呼び出しを参照してください。Alexaがサポートするロケールのリストです。これらのロケールがスキルの公開先となります。すべての準備が整ったら、次のコマンドを実行してスキルをデプロイします。<ユーザーの_プロジェクト_パス>Windowsからスクリプトを実行する場合は、ターミナルを管理者として開きます。することで、デプロイメントプロセスの一環としてスクリプトでPowerShellバッチファイルを実行する際の権限エラーを防ぐことができます。...」のエラーによりスキルを公開できなかった場合、AWSコンソールのIAMに移動して、ユーザーにステップ1で説明したポリシーの権限が付与されているかどうか確認してください。IAMロールをセットアップします。Lambda関数用に作成したIAMロールに追加する必要があります。スキルのデフォルトロール名は、ask-lambda-「スキルのプロジェクト名」となります。Lambdaでスキルコードを実行するには、あらかじめロールAWSLambdaBasicExecutionRoleの管理ポリシーがなければなりません。Lambda関数がDynamoDBにアクセスできるようにします。Polly音声をセットアップする(任意)を参照してください。Lambda設定の変更が必要になる場合があります。Lambda関数を見つけ、次の設定を変更します。8.10」であることを確認します。タイムアウトが15秒以上であることを確認します。呼び出し名を言ってAlexa搭載デバイスでスキルをテストします。Lambda関数が状態管理のDynamoDBテーブルを生成しようとするためにエラーメッセージが出ます。15秒後にはDynamoDBテーブルが作成されるので、もう一度スキルの起動を試行します。attack.roll指示はサイコロを転がすのに使用します。rollResult指示はrollの結果にアクセスできます。この例では、6面のサイコロを2つ転がして、出た目の合計をrollResult変数に入れています。rollは入力としてXdYを受け取ります。Xは転がすサイコロの数、Yはサイコロの面の数を表します。3のように記述することで、数を足したり引いたりできます。複数のサイコロを転がして、最も大きな数をZ個取り出すこともできます。その場合は、XdYkZのように記述します。Xがサイコロの数、Yが面の数、Zが取り出したい最大値の数を表します。2d6k1では、6面のサイコロを2つ転がして、最も大きな数を1つ取り出します。}time指示は、現在時刻をsystem_returnという特殊なシステム変数に保存します。ゲームで時刻を使うには、set指示を使って時刻を独自の変数に割り当てます。時刻はエポックミリ秒形式です。1970年1月1日(UTC/GMTの深夜0時)からの経過時間をミリ秒で表したものです。IDコンフィギュレーションファイルで、アイテム名にマッピングしたスキル内商品(ISP)の収益化フローを開始します。successに遷移します。failedに遷移します。declined、already_purchased、errorのパラメーターは任意です。これらのパラメーターを割り当てなかった場合、プレイヤーはfailパラメーターで定義されたシーンに遷移します。各購入フローでプレイヤーが遷移するシーンを細かく制御したい場合は、これらのパラメーターを定義してください。カスタム拡張機能を作成するコンテンツの作成と同時に、特定のシーン中に独自コードを実行するカスタムコマンドを作成する必要があります。sfb-fモジュールから3つの拡張インターフェースのうち1つを実装して、機能をカスタマイズしてSFBでビルドしたスキルに追加できます。3つの拡張機能は以下のとおりです。StoryMetadataとしてソースコンテンツをインポートする前、またはした後に適用します。リクエストがストーリー実行に適用される前、またはされた後に適用します。コンテンツ内のカスタム指示を処理するために、ストーリー実行中に適用します。ImporterExtension@alexa-games/sfb-fモジュールからこのインターフェースをインポートして実装します。インターフェースは次のようになります。Promise<void>;}コンテンツのインポート手順のカスタムロジックを追加するには、ImporterExtensionを実装します。StoryMetadataとしてインポートされる直前にextendSourceContentが呼び出されます。インポートの完了後にextendImportedContentが呼び出されます。通常、これは結果として取得したStoryMetadataのいくつかのコンポーネントを変更するために実装されます。DriverExtension@alexa-games/sfb-fモジュールからこのインターフェースをインポートして実装します。インターフェースは次のようになります。Promise<void>;}ドライバーの実行前後にカスタムロジックを追加するには、DriverExtensionを実装します。ドライバーの実行前にpreが呼び出されます。通常、これはドライバーの実行前にリクエスト解析ロジックをカスタマイズするために実装されます。ドライバーの実行後にpostが呼び出されます。通常、これは応答構築ロジックをカスタマイズするために実装されます。InstructionExtension@alexa-gamessfb-fモジュールからこのインターフェースをインポートして実装します。インターフェースは次のようになります。{}コンテンツライターに向けてカスタマイズした指示を追加するには、このインターフェースを実装します。戦闘に必要なすべての変数が設定されている場合に、setupForCombatと言う新しい指示を追加してみましょう。拡張機能クラスは以下のようになります。}}この拡張機能を使用してプロジェクトをビルドすると、setupForCombatを使用するたびに、拡張機能にある同じ名前のメソッドが呼び出されます。ファイルは次のように表示されます。//ストーリーがここに到達すると、カスタム指示が実行されます。Extensionをプロジェクトに追加するには、code/extensions/ExtensionLoader.tsを開きます。これがまだ修正されていないプロジェクトの場合は、クラスのコンストラクターに既に追加された4つの拡張機能があるはずです。}拡張機能を追加するには、拡張機能のインスタンスをこのリストの項目として追加するだけです。Pollyは、テキストを音声に変換するクラウドサービスです。Polly開発者ガイドを参照してください。Pollyを使用できます。追加のセットアップは不要です。バックグラウンドミュージックなど、高度な音声ミキシング機能を使う場合には追加のセットアップが必要です。IAMロールをセットアップします。Lambda」というカスタムIAMポリシーに以下の権限を追加します。生成されたサウンドファイルを保存したりキャッシュに保存する場合にアタッチします。生成されたサウンドファイルを保存したりキャッシュに保存する場合にアタッチします。生成されたサウンドファイルを保存したりキャッシュに保存する場合にアタッチします。Polly音声を使うサウンドファイルを生成する場合にアタッチします。S3バケットをセットアップします。S3バケットをセットアップして、生成されたサウンドファイルを保存します。バケットの作成とセットアップを行う際、次のパブリックアクセスオプションを必ずオフにしてください。新しいパブリックACLとパブリックオブジェクトのアップロードをブロックする:このオプションをオフにすると、パブリックアクセス(表示)可能なオブジェクトを追加できます。スキルで使うサウンドファイルは公開読み込み可能である必要があります。パブリックACLを通じて付与されたパブリックアクセスを削除する:このオプションをオフにすると、公開オブジェクトへのパブリックアクセスが可能になります。スキルのコンフィギュレーションをセットアップします。Polly音声を使用できます。Pollyの設定可能なプロパティをセットアップする必要があります。Polly音声を単独で使うことができます。Builderのコンフィギュレーションファイルは、<ユーザーの_プロジェクト_パス>/abcConfig.jsonにあります。以下は設定可能なプロパティです。S3バケットの名前です。S3ファイルがサービスを提供するドメイン名です。通常はすべてのグローバルバケットについて「s3.amazonaws.com」ですが、リージョン固有のバケットを使う場合は対応する値を指定する必要があります。Pollyを呼び出します。trueの場合、複数のオーディオファイルを1つの.mp3ファイルに結合します。Pollyサービスを呼び出します。falseの場合、スキルは以前に生成したサウンドファイルを使おうとします(生成済みの場合)。Pollyの音声に変わります。デフォルト音声の高さを変更します。「+0%」にセットするとデフォルトの高さが使われます。デフォルト音声の速さを変更します。「+0%」にセットするとデフォルトの速さが使われます。MSB4132」のエラーが出た場合、windows-build-toolsモジュールがない可能性があります。管理者権限でPowerShellウィンドウを開き、次のコマンドを実行します。windows-build-toolsペイロード公開スクリプトで作成したペイロードパッケージを確認するには、<ユーザーの_プロジェクト_パス>/.deploy/{your-ask-skill-directory-name}にあるスキルのペイロードを参照します。デプロイを実行せずにペイロードをビルドするには、次のコマンドを実行します。Builderパッケージの新しいバージョンを取り込んだ場合は、ワークスペースをクリーンアップしてプロジェクトへの変更を適用します。最初に、次のコマンドを実行します。install次に、次のコマンドを実行してalexa-sfbを再インストールします。Builderコマンドラインインターフェースをグローバルにインストールした場合は、次のコマンドを実行する方法もあります。その際、<sfb>をフルパスに置き換えてください。OSまたはLinuxでは、sudoプレフィックスを追加します。Builderパッケージは、プロジェクトフォルダの範囲外に追加のパッケージをインストールすることはありません。プロジェクトのトレースをすべて削除するには、プロジェクトを含むディレクトリを削除します。alexa-sfbをグローバルにインストールした場合、次のコマンドを実行して削除します。その際、<SFB>をフルパスに置き換えてください。