プレイヤーはすでに体験の楽しい瞬間を記念するためにスクリーンショットを撮影しています。SelfieMode デベロッパーモジュールは、チャットウィンドウやプレイヤーリストなしでその瞬間のクリーンな記憶をキャプチャできるようにし、フィルターエフェクトのサポート、他のキャラクターの隠蔽、ポージングを提供します。
モジュールの使用
インストール
体験内でSelfieModeモジュールを使用するには:
スタジオのウィンドウメニューまたはホームタブのツールバーから、ツールボックスを開き、クリエイターストアタブを選択します。

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

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

Explorerウィンドウで、SelfieModeパッケージ全体をReplicatedStorageに移動します。体験を実行すると、モジュールが動作を始めます。
設定
モジュールはほとんどの使用ケースに対して事前に設定されていますが、configure関数を通じて簡単にカスタマイズできます。
StarterPlayerScripts内に新しいLocalScriptを作成し、ConfigureSelfieModeに名前を変更します。
新しいスクリプトに以下のコードを貼り付けます。
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
キャラクターの移動
セルフィーモード中にプレイヤーのキャラクターの動きを防ぐことは有利です。これをconfigure呼び出しでdisableCharacterMovementをtrueに設定することで実現できます。
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
セルフィーモードのアクション
SelfieModeには以下のアクションが付属しており、各アクションはactivateAction、deactivateAction、およびtoggleAction関数で使用することができ、またactionActivatedおよびactionDeactivatedイベントを通じて検出することができます。
被写界深度
デフォルトで、SelfieModeはプレイヤーがアクションを切り替えたときに一般的な被写界深度効果(背景の微妙なぼかし)を表示します。

デフォルトの被写界深度効果を変更するには、configure呼び出しでdepthOfFieldEffectを独自のDepthOfFieldEffectインスタンスに設定します。
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
視線を固定
視線を固定のトグルは、プレイヤーのキャラクターがセルフィーポーズを設定する際にカメラを見つめるようにします。この時、首の回転範囲内で現実的な距離に制限されます。
その他を隠す
デフォルトでは、他のキャラクターはプレイヤーのキャラクターと一緒に表示されます。プレイヤーはその他を隠すボタンをクリックすることで、完璧なソロショットを取得できます。トグルがオンになると、他のキャラクターは視界から消え、そのアクションがオフになるまで非表示のままとなります。
フィルター
フィルターアクションでは、プレイヤーがポップ、ソフト、アンティーク、キュート、ドラマティック、モノクロームのオプションからプリセットフィルターを適用できます。

ポーズ
ポーズアクションでは、プレイヤーが応援、拍手、イルカ、フロス、ギター、ジャンプ ウェーブ、ラウダー、トップ ロック、ツイール、およびウェーブのオプションからプリセットポーズを選択できます。

API 参照
タイプ
アクション
各アクションは以下のキーと値のペアを持つ辞書によって表されます。
| キー | タイプ | 説明 |
|---|---|---|
| name | string | アクションの名前で、ツールチップ内で最初に表示されます。 |
| description | string | アクションの説明で、ツールチップ内でnameの後に表示されます。 |
| icon | string | アクションのアイコンのアセットID。 |
| activeIcon | string | アクションが「アクティブ」状態のときのアイコンのアセットID。親アクションでのみ使用できます。 |
| actions | table | オプションのサブアクションのリスト。この機能を使用することでさまざまな他のアクションのサブメニューを作成できます。 |
| parent | Action | アクションの親。この設定はサブアクションにのみ適用され、そのコンテナとなるアクションを指します。 |
| onActivated | function | オプションのコールバック関数で、プレイヤーがアクションまたはサブアクションをアクティブにしたときに実行されます。通常、アクションにサブアクションが含まれている場合は、サブアクションにコールバックを定義するのが一般的です。これはプレイヤーがサブアクションをアクティブにしたか、単に親アクションを「展開」したかを知る手段です。 |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
列挙型
SelfieMode.Action
SelfieModeにはいくつかのアクションが含まれています。この列挙型をactivateAction、deactivateAction、およびtoggleAction関数と一緒に使用できます。
| 名前 | 概要 |
|---|---|
| DepthOfField | Depth‑of‑Fieldアクションへの参照。 |
| LockGaze | 視線を固定アクションへの参照。 |
| HideOthers | その他を隠すアクションへの参照。 |
| Filter | フィルターアクションへの参照。 |
| Pose | ポーズアクションへの参照。 |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- "フィルター"アクションをアクティブにするSelfieMode.activateAction(SelfieMode.Action.Filter)
関数
configure
configure(config: table)
configテーブル内の以下のキー/値により、デフォルトの設定オプションをオーバーライドします。この関数はLocalScript内からのみ呼び出すことができます。
| キー | 説明 | デフォルト |
|---|---|---|
| disableCharacterMovement | trueの場合、セルフィーモードがオープンしている間、キャラクターの移動を防ぎます。 | false |
| depthOfFieldEffect | プレイヤーが被写界深度アクションをトグルしたときに表示されるオプションのカスタムDepthOfFieldEffectインスタンス。 |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
プレイヤーは通常、画面右側の「カメラ」ボタンでセルフィーモードを開きますが、この関数を使うことでコードを通じて開くことができます。以下に示すようにカスタムボタンを実装する際には、setHudButtonEnabledを通じてデフォルトのボタンを無効にする必要があります。この関数はLocalScript内からのみ呼び出すことができます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- デフォルトボタンを取り除く
SelfieMode.setHudButtonEnabled(false)
-- カスタムボタンを接続
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
プレイヤーは通常、画面下部の**⊗**ボタンでセルフィーモードを閉じますが、この関数を使うことでコードを通じて閉じることができます。この関数はLocalScript内からのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
プレイヤーのアクションやopenSelfieMode経由でセルフィーモードがオープンしている場合にtrueを返します。この関数はLocalScript内からのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
セルフィーモードに入るためのデフォルトボタンが表示されるかどうかを設定します。カスタムUIボタンからopenSelfieModeを実装する場合に便利です。この関数はLocalScript内からのみ呼び出すことができます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- デフォルトボタンを取り除く
SelfieMode.setHudButtonEnabled(false)
-- カスタムボタンを接続
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
SelfieMode.Action列挙型を通じてActionタイプを取得します。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
デフォルトのアクションの1つをプログラムからアクティブにします。これは、プレイヤーがアクションバーからアクションをオンにしたときと同じです。この関数はLocalScript内からのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- "フィルター"アクションをアクティブにするSelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
デフォルトのアクションの1つをプログラムから無効にします。これは、プレイヤーがアクションバーからアクションをオフにしたときと同じです。この関数はLocalScript内からのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- "フィルター"アクションを無効にするSelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
アクションがオフであればオンに切り替え、オンであればオフに切り替えます。これは、プレイヤーがアクションバーからアクションをクリックしたときと同じです。新しい「オンにトグルされた」状態をbooleanとして返します。この関数はLocalScript内からのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("アクティブ化", lockGazeAction.name)elseprint("無効化", lockGazeAction.name)end
setTheme
setTheme(theme: table)
セルフィーモードテーマを設定します。これには、テキストサイズ、フォント、ボタン/ツールチップの色などが含まれます。この関数はLocalScript内からのみ呼び出すことができます。
| キー | 説明 | デフォルト |
|---|---|---|
| textSize | すべてのテキストのサイズ。 | 16 |
| font | すべてのUIで使用されるフォント(Enum.Font)。 | GothamMedium |
| padding | UI要素のレイアウトに使用されるメインパディング(UDim)。 | (0, 12) |
| paddingSmall | 要素間に微妙なマージンを適用するために使用される小さいパディング(UDim)。 | (0, 6) |
| paddingScreen | セルフィーモードに余裕を持たせるために画面の端に使用されるパディング(UDim)。 | (0, 24) |
| backgroundColor | アクションを表示するバーの背景色(Color3)。 | [0, 0, 0] |
| scrollBarColor | モジュール内のScrollingFrame要素で使用されるスクロールバーの色(Color3)。 | [255, 255, 255] |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
setEnabled
setEnabled(isEnabled: boolean)
セルフィーモードが有効か無効かを設定します。無効にすると、モジュールのすべてのUIが削除され、すべてのイベントが切断されます。この関数はLocalScript内からのみ呼び出すことができます。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
イベント
selfieModeOpened
プレイヤーがセルフィーモードを開いたときやopenSelfieModeが呼び出されたときに発火します。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("セルフィーモードオープン")
end)
selfieModeClosed
プレイヤーがセルフィーモードを閉じたときやcloseSelfieModeが呼び出されたときに発火します。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("セルフィーモードクローズ")
end)
actionActivated
| パラメータ | |
|---|---|
| action: SelfieMode.Action | アクティブ化されたアクション。 |
アクションがアクティブ化されたときに発火します;これには、Depth of Field、Lock Gaze、またはHide Othersのような主要アクションが含まれる可能性があります。あるいは、filterやposeのようなサブアクションである可能性もあります。接続された関数はアクティブ化されたアクションを受け取ります。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
actionDeactivated
| パラメータ | |
|---|---|
| action: SelfieMode.Action | 非アクティブ化されたアクション。 |
主要アクションまたはサブアクションが非アクティブ化されたときに発火します。接続された関数は非アクティブ化されたアクションを受け取ります。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
filterChanged
フィルターが適用または削除されたときに発火します。接続された関数は新しいフィルター名と古いフィルター名を受け取ります。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("フィルターが変更されました", oldFilter, "から", newFilter, "に")
end)
poseChanged
ポーズが適用または削除されたときに発火します。接続された関数は新しいポーズ名と古いポーズ名を受け取ります。このイベントはLocalScript内でのみ接続できます。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("ポーズが変更されました", oldPose, "から", newPose, "に")
end)