アクセシビリティガイドライン

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

アクセシビリティとは、障害のある人々が利用できるように製品やサービスを設計する実践です。最近の統計によると、26%以上の人々が何らかの障害を持っているため、あなたのRobloxゲームをアクセシブルにすることで、より幅広いオーディエンスにリーチすることができます。

テキストサイズ

プレイヤーは小さなテキストを読むのが難しいと感じるかもしれません。以下のゲーム内ショップメニューをぼやけた状態で比較してみてください。これは視力に障害のある人が見るとどう見えるかをシミュレートしています。

ユーザーインターフェース上の小さなテキストの例

小さなフォントラベルのサイズを大きくすると、ほとんどのプレイヤーにとってより明瞭になります。

ユーザーインターフェース上の大きなテキストの例

カラーコントラスト

プレイヤーは明るい背景に対する明るいテキストや、暗い背景に対する暗いテキストを読むのが難しいと感じるかもしれません。アクセシビリティを改善するために、十分なカラーニコントラストを持つテキストと背景の色を選ぶことが推奨されます。

高コントラストのUI要素の例
低コントラストのUI要素の例

カラー非依存

世界中の5%以上の人々が何らかの形の色盲を持っています。誰かが完全に白黒で見ることは稀ですが、グレースケールでゲームを表示することを想像してみてください。

フルカラーで表示されたユーザーインターフェースの例

異なるシンボルを色の横に使用することで、より多くのプレイヤーがゲームプレイやその他のコンテキストでの違いを認識できるようになります:

フルカラーで表示されたユーザーインターフェースの例

音の非依存

音は没入感のあるゲームにとって優れた追加ですが、聴覚障害者や音声をオフにしている誰かにとっては、音のみで伝えられるゲーム内のイベントに混乱するかもしれません。

音のみで通知される電話の鳴る場面と、音視覚的な手助けで通知される場面を考えてみてください。

プレイヤーの好み

Robloxとゲーム内設定メニューから、様々な視覚設定がプレイヤーに提供されます。これには推奨透明度推奨テキストサイズ、および動きの軽減が含まれます。最適なアクセシビリティのために、あなたのユーザーインターフェースはそれぞれに対応すべきです。

推奨透明度

背景透明度設定は、GuiService.PreferredTransparencyプロパティに対応しています。値が1の場合、プレイヤーはデフォルトの背景透明度を好むことを示し、値が0の場合、プレイヤーは読みやすさとコントラストを向上させるために完全に不透明な(非透明)背景透明度を好むことを示します。

UI要素のBackgroundTransparencyPreferredTransparencyで掛け算することが、この設定を使用する推奨の方法です。PreferredTransparency0に近づくと、背景がより不透明になります。

  1. タグ付けシステムを使用して、BackgroundTransparencyを持つすべてのUIアイテムにTransparentBackのタグを適用します。これにはTextLabelsFramesが含まれます。

    さまざまな背景透明度レベルの四つのTextLabel要素
    異なるBackgroundTransparencyレベルを持つ四つのTextLabel要素
  2. 次のコードをLocalScriptに貼り付けます。

    推奨透明度の動的調整

    local GuiService = game:GetService("GuiService")
    local CollectionService = game:GetService("CollectionService")
    local TAG = "TransparentBack"
    local transparentBackObjects = {}
    local function onInstanceAdded(object)
    if object.BackgroundTransparency then
    local defaultTransparency = object.BackgroundTransparency
    transparentBackObjects[object] = defaultTransparency
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end
    local function onInstanceRemoved(object)
    transparentBackObjects[object] = nil
    end
    -- 初期のタグ付けされたインスタンスを格納
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- タグ付けされたインスタンスが追加または削除されたときに検出
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- ゲーム内設定が変更されたとき、タグ付けされたインスタンスを調整
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. ゲームをプレイテストし、設定メニューを開いて背景透明度を調整します。タグ付けされたUI要素は、デフォルトのBackgroundTransparencyと完全に不透明な間で更新されるべきです。

推奨テキストサイズ

テキストサイズ設定は、GuiService.PreferredTextSizeプロパティに対応し、デフォルトはMediumです。プレイヤーはエンジンのフォントレンダリングパイプラインを通じて、テキストサイズをLargeLarger、またはLargestに増やすことができます。

UI要素を操作する際は、以下の動作に注意してください。

動きの軽減

動きの軽減トグルは、GuiService.ReducedMotionEnabledプロパティに対応しています。値がtrueの場合、プレイヤーはUI アニメーション/ツイーンによる動作効果を減らすか完全に取り除くことを望んでいます。

UIツイーンから動きを取り除く基本的なアプローチは、ReducedMotionEnabledtrueの場合にTimeパラメーターを0に設定することです。これにより、UIオブジェクトはターゲットにinstantにスナップします。

動きの軽減のためのUIツイーンスナップ

local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local menuUI = playerGui:WaitForChild("MenuUI")
-- 動きの軽減が有効でない限り、0.75秒のツイーン時間を使用
local TWEEN_TIME = if GuiService.ReducedMotionEnabled then 0 else 0.75
local tweenInfo = TweenInfo.new(TWEEN_TIME, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween = TweenService:Create(menuUI.SettingsFrame, tweenInfo, {Position = UDim2.fromScale(0.5, 0.5)})
tween:Play()

instantスナッピングの代わりに、ReducedMotionEnabledをより明確なtrue/falseロジックで処理することもできます。たとえば、次のLocalScriptはデフォルトで動きのツイーニングを使用しますが、動きの軽減を有効にしたプレイヤーのためにフェードインに切り替わり、位置の移動なしでより優れた移行を実現します。

動きの軽減のためのフェードツイーンへのフォールバック

local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local menuUI = playerGui:WaitForChild("MenuUI")
-- すべての子を均一にトゥイーンするためのキャンバスグループを作成
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- キャンバスグループに子を追加
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- 動きの軽減用のフェーディングツイーンを使用、そうでない場合は動きのツイーンを使用
if GuiService.ReducedMotionEnabled then
-- 最初にキャンバスグループを完全に透明(目に見えない)に設定
canvasGroup.GroupTransparency = 1
-- キャンバスグループをフェードイン
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- 最初にキャンバスグループを画面外に設定
canvasGroup.Position = UDim2.fromScale(0, -1)
-- キャンバスグループを画面に移動
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

音量コントロール

同時に再生される異なる音は圧倒的で、気が散るか、区別するのが難しいことがあります。さまざまな「グループ」の音声、たとえば効果音、音楽、スピーチの音量を調整できるようにすることで、ユーザーは自分のゲームをカスタマイズし、必要なものに集中することができます。

非常に騒がしいゲームの次の例を考えてみてください。ユーザーは音楽と効果音の音量を別々に変更できます。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。