撮影ボックス

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

写真を撮ることは、素晴らしい経験を記念するのに最適な方法です。 写真ブース 開発者モジュール は、プレイヤーがエクスペリエンスを表現するための簡単な写真ステージツールで、背景を表現することでプレイヤーがユニークなポーズをストライクできます。

モジュール使用

インストール

エクスペリエンスで フォトブース モジュールを使用するには:

  1. 从 the ビュー タブで、ツールボックスを開き、 クリエイターストア タブを選択します。

    Toolbox toggle button in Studio
  2. モデル ソートが選択されていることを確認してから、 すべてを表示 ボタンをクリックして、 カテゴリ のための 1>ボタン1> をクリックします。

  3. デバッグモジュール タイルを見つけてクリックします。

  4. 撮影ボックス モジュールを見つけ、クリックするか、3D ビューにドラッグアンドドロップします。

  5. In the エクスプローラー ウィンドウ, 全体の 撮影ボックス モデルを ServerScriptService に移動します。エクスペリエンスを実行すると、モジュールはさまざまなサービスに分配され、実行を開始します。

ブースの位置

モジュールには、3D 世界に配置できる 1つの フォトブース モデルが含まれています。このモデルは、プレイヤーが写真を設定するために使用するモデルです。

  1. モジュールのメインフォルダの ワークスペース フォルダ内の フォトブース メッシュを見つけます。

  2. 移動する トップレベルの ワークスペース 階層に、それを必要な場所に配置する。

構成

モジュールはほとんどの使用ケースに対応するようにプリコンフィグされていますが、configure 機能を通じて簡単にカスタマイズできます。たとえば、写真の下部にあるデフォルトメッセージを変更するには:

  1. In StarterPlayerScripts で、新しい LocalScript を作成し、 ConfigurePhotoBooth に名前を変更します。

  2. 新しいスクリプトに以下のコードを挿入します。

    ローカルスクリプト - 写真ブースを構成

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
    PhotoBooth.configure({
    frameMessage = "First Photo Booth Capture!",
    })

イベントに接続する

毎回、フォトブースがローカルクライアントに新しい画面を表示すると、対応するイベントが発生します。これらのイベントは、LocalScript に接続されて、自分のカスタムロジックに応答できます。

ローカルスクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

GUI の可視性

デフォルトでは、写真ブースは、写真がステージされるときに ScreenGuisCoreGuis の両方を隠します。この自動的に隠す挙動をオーバーライドし、プログラマブルでどのGUIが表示されるべ

ローカルスクリプト

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local hiddenInstances = {}
-- 隠されないような画面GUIを作成
local specialGuiInstance = Instance.new("ScreenGui")
-- フォトブースGUI の上の画面GUIをドロー
specialGuiInstance.DisplayOrder = 1
specialGuiInstance.Parent = playerGui
-- 画面GUI のアトリビュートを設定して隠す
specialGuiInstance:SetAttribute("ShowInPhotoBooth", true)
-- GUI にテキストラベルを追加する
local specialLabel = Instance.new("TextLabel")
specialLabel.Size = UDim2.fromScale(1, 0.1)
specialLabel.Text = "Remains visible when taking a photo"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- 特徴を持つアトリビュートされた GUI を除き、すべての開発者が定義した画面GUIを隠す
local instances = playerGui:GetChildren()
for _, instance in instances do
if instance:IsA("ScreenGui") and not instance:GetAttribute("ShowInPhotoBooth") and instance.Enabled then
instance.Enabled = false
table.insert(hiddenInstances, instance)
end
end
-- 特定のコアGUIを隠す
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
end)
PhotoBooth.showOtherGuis(function()
-- 隠されていたすべての開発者が定義した画面GUIを表示
for _, instance in hiddenInstances do
instance.Enabled = true
end
hiddenInstances = {}
-- 隠されていた特定のコアGUIを表示
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
end)

API リファレンス

機能

環境設定

require(require: table )

Class.LocalScript テーブルの次のキー/値を通じて、デフォルトの設定オプションをオーバーライドします。この関数は LocalScript からのみ呼び出すことができます。

キー説明デフォルト
frameMessage写真の下に表示されるメッセージ。その期間は、fadeUiDelay プロパティを通じて制御できます。「デバイスを使用してスクリーンショットを取ってシェア有してください!」
fadeUiDelayフレームメッセージが消える前に、フレームメッセージを表示する時間。 ネガティブに設定して、フレームメッセージを永久に消す。3
closeButtonImage画像を使用して、閉じる写真ボタンの上に置かれた closeButtonBackgroundImage 画像の上に配置します。「rbxassetid://7027440823」
closeButtonBackgroundImage閉じる写真ボタンに使用する背景画像。「rbxassetid://7027440891」
cameraLandscapePositionキャラクターの前方と上方のカメラの距離、Vector2 で、景観モードで写真を撮影する場合。(5、2)
cameraPortraitPositionポートレートモードで写真を撮影するとき、キャラクターから正面と上に、写真ブースのカメラの距離、Vector2(10、1)
countdownFontカウントダウンの数字に使用するフォント ( Enum.Font )。GothamBlack
countdownTextColorカウントダウンでの数の色 ( Color3 )。[255, 255, 255]
printoutCharacterPosition印刷アウトが表示されるときのキャラクターの位置 ( UDim2 )。(0.5、0、0.5、0)
printoutCharacterSize印刷出力のスクリーンスペース ( UDim2 ) に必要なキャラクターのサイズ。(1、0、1、0)
characterAnimation開始フレームで停止されたアニメーションのアセット ID。「rbxassetid://6899663224」
filterImage写真をフィルターとして適用する画像を指定します。nil がデフォルトのフィルターで、画像の端を暗くするフィルターが使用されます。nil
ローカルスクリプト - 写真ブースを構成

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.configure({
frameMessage = "What a cool pose!",
fadeUiDelay = 5,
maxActivationDistance = 5,
printoutCharacterSize = UDim2.fromScale(1.5, 1.5),
})

背景を設定

setBackgrounds(背景: table )

写真ブースによって提供されるデフォルトの背景をオーバーライドします。背景画像は 16:9 アスペクト比率 (1024×768) で最適なエクスペリエンスを提供する必要があり、アセット ID は背景アレイに含まれる必要があります。1-4 (含まれる) の背景が提供できます。

ローカルスクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.setBackgrounds({
"rbxassetid://7018713114",
"rbxassetid://950538356",
})

イベント

カウントダウン開始

カウントダウンが開始すると、ファイアが発生します。このイベントは、LocalScript 内のみに接続できます。

ローカルスクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)

printoutShown

印刷物がユーザーに表示されるときに発動します。このイベントは、LocalScript 内のみに接続できます。

ローカルスクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)

プロンプトが表示されます

印刷が完了し、カメラボタンが再び表示されるときに発動します。このイベントは、LocalScript 内のみで接続できます。

ローカルスクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)

コールバック

OtherGuis を隠す

OtherGuis(呼び出し機能: function )を非表示にする

このコールバックは、印刷が表示される直前に実行され、ScreenGuis や画面内の要素を Class.ScreenGui|ScreenGuis または Class.ScreenGui|ScreenGuis 以下のコード序で無効にすることができます。フォトブースの GUI は、1> ShowInPhotoBooth

OtherGuis を表示

showOtherGuis(呼び出し: function )

このコールバックは、印刷物が閉じた後に実行され、ScreenGuis 全体またはその内の要素を再び有効にすることができます。カメラブースによって使用されるGUIは、 ShowInPhotoBooth 属コードを設定して、 true になります。詳細は、1> GUI 可視