写真を撮ることは、素晴らしい経験を記念するのに最適な方法です。 写真ブース 開発者モジュール は、プレイヤーがエクスペリエンスを表現するための簡単な写真ステージツールで、背景を表現することでプレイヤーがユニークなポーズをストライクできます。
モジュール使用
インストール
エクスペリエンスで フォトブース モジュールを使用するには:
モデル ソートが選択されていることを確認してから、 すべてを表示 ボタンをクリックして、 カテゴリ のための 1>ボタン1> をクリックします。
デバッグモジュール タイルを見つけてクリックします。
撮影ボックス モジュールを見つけ、クリックするか、3D ビューにドラッグアンドドロップします。
In the エクスプローラー ウィンドウ, 全体の 撮影ボックス モデルを ServerScriptService に移動します。エクスペリエンスを実行すると、モジュールはさまざまなサービスに分配され、実行を開始します。
ブースの位置
モジュールには、3D 世界に配置できる 1つの フォトブース モデルが含まれています。このモデルは、プレイヤーが写真を設定するために使用するモデルです。
モジュールのメインフォルダの ワークスペース フォルダ内の フォトブース メッシュを見つけます。
移動する トップレベルの ワークスペース 階層に、それを必要な場所に配置する。
構成
モジュールはほとんどの使用ケースに対応するようにプリコンフィグされていますが、configure 機能を通じて簡単にカスタマイズできます。たとえば、写真の下部にあるデフォルトメッセージを変更するには:
In StarterPlayerScripts で、新しい LocalScript を作成し、 ConfigurePhotoBooth に名前を変更します。
新しいスクリプトに以下のコードを挿入します。
ローカルスクリプト - 写真ブースを構成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 の可視性
デフォルトでは、写真ブースは、写真がステージされるときに ScreenGuis と CoreGuis の両方を隠します。この自動的に隠す挙動をオーバーライドし、プログラマブルでどの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 リファレンス
機能
環境設定
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),})
背景を設定
写真ブースによって提供されるデフォルトの背景をオーバーライドします。背景画像は 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 を隠す
このコールバックは、印刷が表示される直前に実行され、ScreenGuis や画面内の要素を Class.ScreenGui|ScreenGuis または Class.ScreenGui|ScreenGuis 以下のコード序で無効にすることができます。フォトブースの GUI は、1> ShowInPhotoBooth
OtherGuis を表示
このコールバックは、印刷物が閉じた後に実行され、ScreenGuis 全体またはその内の要素を再び有効にすることができます。カメラブースによって使用されるGUIは、 ShowInPhotoBooth 属コードを設定して、 true になります。詳細は、1> GUI 可視