コンソール開発ガイドライン

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

200M+の Xbox と PlayStation プレイヤーに加えて、コンソールはあなたがより多くのユーザーを引き付けるための重要な機会を提供します。通常のデバイスと比較して、コントローラーと 10 フィート UI のエクスペリエンスについてデザインするために、コンソールに成功するために必要ないくつかの特別なガイドラインがあります。

コントローラー向けのデザイン

コンソールエクスペリエンスは、特別なデザインが必要なインプットコントローラーを介して、ユーザーからコマンドを受信します。

UI の簡素化

コンソールの UI デザインを簡素化するために次のを適用してください:

  • アクセシブルなナビゲーションコントロール : 基本的なナビゲーション、包括の四方向、選択、およ戻る戻り、ユーザーがコンソールであなたのコンテンツにアクセスし、インタラクトする方操作を制御します。ユーザーがこれらの基本的なナビゲーションコントロールを使用して、あなたのエクスペリエンスのすべてのインタラクティブパーツに��

  • デフォルトのコントローラーナビゲーション : ユーザーがバーチャルカーソルを有効にすることで、UI メニューにアクセスできますが、プロセスに熟慣していないユーザーの場合は、ユーザーがバーチャルカーソルを有効にする必要なくコントローラーナビゲーションをサポートする必要があります。

  • 最小限のコントローラー入力の複雑さ : タップ可能またはクリック可能な入力メソッドとは異なり、コンソールユーザーは 1 つのボタンを 1 回ずつ押すことでナビゲートします。たとえ、コントローラーの上のデバイスで 1 つの移動を行うアクションでも、コントローラーの上のデバイスで 1 つの移動を行うアクショ

  • No Chat Window : デフォルトのインエクスペリエンステキストチャットシステムを使用するか、レガシーチャットシステムをカスタムチャットシステムとしてフォークするかにかかわらず、チャットウィンドウを無効にする のコンソールエクスペリエンス。

追加のコントロールを追加する

モバイルとデスクトップとは異なり、ナビゲーションは常にコンソールで連続しているため、ユーザーは他のデバイスで同じように素早く遠くの要素にジャンプできません。ナビゲーションのスピードを向上させるには、必要なエクスペリエンスアクションのための追加のボタンとショートカットを追加してください。

ダイナミックボタンアイコンに対応する

エクスペリエンスがさらに多くのプラットフォームに拡張されるにつれて、異なるデバイスに対応するボタンアイコンを表示することを忘れないでください。 UserInputService には、これを実現するための 2つのメソッドがあります:

  • UserInputService:GetStringForKeyCode() は、US クエリーコードをコンソールキーボードレイアウトに変換できます。カスタムアセットをボタンアイコンにマッチするように表示するのに便利です。次の例では、カスタムアセットをマップするために Enum.KeyCode.ButtonA :

    カスタムアセットをマップする

    local UserInputService = game:GetService("UserInputService")
    local imageLabel = script.Parent
    local key = Enum.KeyCode.ButtonA
    local mappings = {
    ButtonA = "rbxasset://BUTTON_A_ASSET", -- ボタンA アセットで置き換える
    ButtonCross = "rbxasset://BUTTON_CROSS_ASSET" -- ボタンクロスアセットを交換する
    }
    local mappedKey = UserInputService:GetStringForKeyCode(key)
    local image = mappings[mappedKey]
    imageLabel.Image = image
  • UserInputService:GetImageForKeyCode() は、Roblox デフォルトのアイコンを要求されたキーコードのドロップイン交換として簡単に返します。たとえば、マッピングの Enum.KeyCode.ButtonA に表示されるのは:

    デフォルトのアイコンをマップする

    local UserInputService = game:GetService("UserInputService")
    local imageLabel = script.Parent
    local key = Enum.KeyCode.ButtonA
    local mappedIcon = UserInputService:GetImageForKeyCode(key)
    imageLabel.Image = mappedIcon

ハプティフィードバックを提供する

コントローラーの 1つのユニークな特徴は、コントローラーを物理的に振動させてユーザーのタッチ感覚をエンゲージすることです。 HapticService を使用して、ユーザーの没入感を向上させ、便利なフィードバックを提供できます。ハプティフィードバックを提供するために使用できるいくつかの例は次のとおりです:

  • 爆発や衝突など、物理的にドラマチックなイベント。
  • ドアベルのリングや新しい顧客がショップに入るなど、ユーザーの注意が必要なイベント。
  • リストの端にスクロールするなど、UI アクション通知。

HapticService また、コントローラの個々のモーターを制御して、個々の振動の強度と期間を個別に設定することもできます。そのため、ユーザーは異なる目的のために異なる振動を設定し、アクションが反応をトリガーする一貫性を維持できます。ユーザーは頻繁に頻繁であるこ

10ft エクスペリエンスのためにビルド

コンソールでは、ユーザーは通常画面から10フィート離れて座っています。スケールファクターの 1.5x により、UI が快適で、簡単にナビゲートでき、読みやすいフォントで表示されることが保証されます。

テレビのセーフエリアを考慮する

An example illustration showing the dimensions of the TV-safe and unsafe zone.
青いエリアは TV の安全でないゾーンを表します。

テレビのほとんどが画面の端にコンテンツを完全に表示するためには、歴史的および技術的な限界により、テレビにコンテンツを表示できません。UI 要素をテレビに安全に配置して、重要なエクスペリエンス要素がテレビで表示されることを確認します。

ダイナミックにサイズを変更する UI を実装する

相対サイズと相対位置を使用して、UI をフレームの割合で測定します。すべてのUIサイズにスケールファクターを含めるには:

  • 最初に低解像度の開発。
  • 相対位置と UISizeConstraint を使用して UI をスケールしています。
  • Class.GuiService:IsTenFootInterface() で出力特性に基づくスケーリング。
  • Class.ScrollingFrame を実装して、UI がスクリーンに拡大すると、クラッターを減少するために。

進行状況を適応する

進行状況のディスクロージョンは、高度に使用されていない機能をセカンダリ画面にレイアウトします。これは、UI をクリアし、簡単に使用する方法の 1 つです。コンソールの ユーザー体験 の場合、ユーザーがデスクトップに移動するのではなく、画面をレイアウトすることが一般的で、より簡単に使用できます。

サウンドフィードバックを提供する

デスクトップまたはモバイルのインターフェイスとは、通常は静かにするか、控えめなハプティックフィードバックを基にしたインタラクションを提供しますが、コンソールのインタラクションを向上させるためにサウンドエフェクトを追加できます。ユーザーがコントローラーを使用してナビゲートすると、選択または信号メニューの移動を確認するためにサウンド