写真を撮ることは、素晴らしい経験を記念する完璧な方法です。 写真ブース の 開発者モジュール は、プレイヤーが自分の経験を反映する背景でユニークなポーズをとることができる簡単に使用できる写真ステージングツールです。
モジュールの使用
インストール
エクスペリエンスで フォトブース モジュールを使用するには:
ビュータブから、ツールボックスを開き、クリエイターストアタブを選択します。
モデル の順序が選択されていることを確認し、 すべて表示 ボタンをクリックして、 カテゴリ を選択します。
ロケートしてクリックして 開発モジュール タイル。
写真ブース モジュールを見つけてクリックするか、3D ビューにドラッグアンドドロップします。
エクスプローラー ウィンドウで、 フォトブース モデル全体を ServerScriptService に移動します。エクスペリエンスを実行すると、モジュールは複数のサービスに分配され、実行を開始します。
ブースの位置を設定
モジュールには、3D 世界に配置できる 1つの フォトブース モデルが付属しています。このモデルは、プレイヤーが写真を設定するために相互作用するものです。
モジュールのメインフォルダの ワークスペース フォルダ内で フォトブース メッシュを見つけます。
トップレベルの ワークスペース 階層に移動し、必要な場所に配置します。
構成
モジュールはほとんどの使用ケースで動作するようプリコンフィグされていますが、configure 関数を通じて簡単にカスタマイズできます。たとえば、写真の下部のデフォルトメッセージを変更するには:
In スタータープレイヤースクリプト , 新しい LocalScript を作成し、名前を カメラブースの設定 に変更します。
新しいスクリプトに次のコードを貼り付けます。
ローカルスクリプト - ConfigurePhotoBoothlocal 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 が表示されるべきかを決定したい場合は、hideOtherGuis および showOtherGuis コールバックを含め、自分のカスタムロジックで応答します。
本地スクリプト
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を非表示にする
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 リファレンス
機能
設定する
環境設定(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 |
ローカルスクリプト - ConfigurePhotoBooth
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 でのみ接続できます。
本地スクリプト' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.countdownStarted:Connect(function()
print("The countdown has started")
end)
印刷したShown
ユーザーに印刷が表示されるときに発火します。このイベントは LocalScript でのみ接続できます。
本地スクリプト' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.printoutShown:Connect(function()
print("The printout is showing")
end)
promptショーン
印刷が閉じられ、カメラボタンが再び表示されるときに発火します。このイベントは LocalScript でのみ接続できます。
本地スクリプト' hightlight='5-7
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotoBooth = require(ReplicatedStorage:WaitForChild("PhotoBooth"))
PhotoBooth.promptShown:Connect(function()
print("The camera prompt is showing")
end)
コールバック
他のGUIを隠す
hideOtherGuis(cb: function )
このコールバックは、印刷が表示される前に即座に実行され、印刷が表示される前に、ScreenGuis またはその内の要素全体を無効にすることができます。写真ブースで使用されるGUIには、 ShowInPhotoBooth 属性が true に設定されています。詳細とサンプルコードは、GUI ビジビリティ を参照してください。
他のGUIを表示
showOtherGuis(cb: function )
このコールバックは、印刷が閉じられた後に実行され、全体の ScreenGuis またはその内の要素を再度有効にすることができます。写真ブースで使用されるGUIには、 ShowInPhotoBooth 属性が true に設定されています。詳細とサンプルコードは、GUI ビジビリティ を参照してください。