写真を撮ることは素晴らしい体験を記念するのに最適な方法です。PhotoBooth 開発者モジュールは、プレイヤーが独自のポーズをとり、その体験を表現する背景を用意する、使いやすい写真ステージングツールです。
モジュールの使用法
インストール
PhotoBooth モジュールを体験に使用するには:
スタジオの ウィンドウ メニューまたは ホーム タブのツールバーから、ツールボックスを開き、クリエイターストア タブを選択します。

モデル ソートが選択されていることを確認し、カテゴリ の すべて表示 ボタンをクリックします。

パッケージ タイルを探してクリックします。
Photo Booth モジュールを見つけてクリックするか、3Dビューにドラッグアンドドロップします。

エクスプローラーウィンドウで、PhotoBooth モデル全体を ReplicatedStorage に移動します。体験を実行するとモジュールが実行を開始します。
ブースの配置
このモジュールには、3D世界に配置できる PhotoBooth モデルが1つ付属しています。このモデルは、プレイヤーが写真を設定するために対話する対象です。
モジュールのメインフォルダー内の Workspace フォルダー内で PhotoBooth メッシュを見つけます。

それを最上位の Workspace 階層に移動させ、所望の位置に配置します。

設定
このモジュールは、ほとんどのユースケースで動作するように予め設定されていますが、configure 関数を通じて簡単にカスタマイズできます。たとえば、写真の下部にあるデフォルトメッセージを変更するには:
StarterPlayerScripts 内に新しい LocalScript を作成し、名前を ConfigurePhotoBooth に変更します。

新しいスクリプトに次のコードを貼り付けます。
LocalScript - ConfigurePhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage.PhotoBooth)PhotoBooth.configure({frameMessage = "最初のフォトブースキャプチャ!",})
イベントへの接続
フォトブースがローカルクライアントに新しい画面を表示するたびに、対応するイベントが発生します。このイベントは LocalScript 内で接続でき、独自のカスタムロジックに応じて反応できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("カウントダウンが始まりました")
end)
PhotoBooth.printoutShown:Connect(function()
print("印刷物が表示されています")
end)
PhotoBooth.promptShown:Connect(function()
print("カメラのプロンプトが表示されています")
end)
GUIの可視性
デフォルトでは、フォトブースが写真をステージする際に、すべての ScreenGuis および CoreGuis を非表示にします。この自動非表示動作をオーバーライドし、どのGUIsを表示したままにするかをプログラム的に決定したい場合は、hideOtherGuis および showOtherGuis コールバックを含めて、独自のカスタムロジックに応じて応答してください。
LocalScript
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local PhotoBooth = require(ReplicatedStorage.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 = "写真を撮るときには表示されます"
specialLabel.Font = Enum.Font.GothamMedium
specialLabel.TextSize = 24
specialLabel.Parent = specialGuiInstance
PhotoBooth.hideOtherGuis(function()
-- 属性でマークされていない開発者定義のすべての画面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リファレンス
関数
configure
configure(config: table)
config テーブル内の次のキー/値を介してデフォルトの設定オプションを上書きします。この関数は 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 |
LocalScript - ConfigurePhotoBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage.PhotoBooth)PhotoBooth.configure({frameMessage = "かっこいいポーズですね!",fadeUiDelay = 5,maxActivationDistance = 5,printoutCharacterSize = UDim2.fromScale(1.5, 1.5),})
setBackgrounds
setBackgrounds(backgrounds: table)
フォトブースが提供するデフォルトの背景を上書きします。背景画像は、最適な体験のために16:9アスペクト比(1024×576)である必要があり、背景配列にはそのアセットIDを含める必要があります。1~4 (含む) の背景を提供できます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local PhotoBooth = require(ReplicatedStorage.PhotoBooth)PhotoBooth.setBackgrounds({"rbxassetid://7018713114","rbxassetid://950538356",})
イベント
countdownStarted
カウントダウンが始まると発生します。このイベントは LocalScript 内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.countdownStarted:Connect(function()
print("カウントダウンが始まりました")
end)
printoutShown
印刷物がユーザーに表示されると発生します。このイベントは LocalScript 内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.printoutShown:Connect(function()
print("印刷物が表示されています")
end)
promptShown
印刷物が閉じられ、カメラボタンが再度表示されると発生します。このイベントは LocalScript 内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage.PhotoBooth)
PhotoBooth.promptShown:Connect(function()
print("カメラのプロンプトが表示されています")
end)
コールバック
hideOtherGuis
hideOtherGuis(callback: function)
このコールバックは、印刷物が表示される直前に実行され、印刷物が表示される前に完全な ScreenGuis またはその中の要素を無効にすることができます。フォトブースで使用されるGUIは ShowInPhotoBooth 属性が true に設定されています。GUIの可視性 の詳細とサンプルコードを参照してください。
showOtherGuis
showOtherGuis(callback: function)
このコールバックは、印刷物が閉じられた後に実行され、完全な ScreenGuis またはその中の要素を再度有効にすることができます。フォトブースで使用されるGUIは ShowInPhotoBooth 属性が true に設定されています。GUIの可視性 の詳細とサンプルコードを参照してください。