プラグイン

プラグインは、Studio に追加の機能や操作性を追加する拡張機能です。 クリエーターマーケットプレースからコミュニティで作成されたプラグインを検索、インストール、管理するか、独自のプラグインを作成してツールボックス公開し、バーチャル空間で利用することができます。 さらに、クリエーターがそれぞれの開発プロセスで使用できるよう、クリエーターマーケットプレースに自分のプラグインを公開する場合は、無償で提供するか、Robuxで販売することができます。

新しいプラグインの作成

Studio でのワークフローを向上するために、独自のプラグインを作成できます。 次のコードの例は、EmptyScriptAdderというプラグインで、空のスクリプトをオブジェクトの子として、またはServerScriptServiceに挿入します。 以下のセクションでは、このプラグインを作成するための主要な手順を説明します。

EmptyScriptAdder Plugin

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- Create a new toolbar section titled "Custom Script Tools"
local toolbar = plugin:CreateToolbar("Custom Script Tools")
-- Add a toolbar button named "Create Empty Script"
local newScriptButton = toolbar:CreateButton("Create Empty Script", "Create an empty script", "rbxassetid://4458901886")
-- Make button clickable even if 3D viewport is hidden
newScriptButton.ClickableWhenViewportHidden = true
local function onNewScriptButtonClicked()
local selectedObjects = Selection:Get()
local parent = game:GetService("ServerScriptService")
if #selectedObjects > 0 then
parent = selectedObjects[1]
end
local newScript = Instance.new("Script")
newScript.Source = ""
newScript.Parent = parent
ChangeHistoryService:SetWaypoint("Added new empty script")
end
newScriptButton.Click:Connect(onNewScriptButtonClicked)

プラグインスクリプトの保存

プラグインは、スクリプトから始まります。 プラグインを作成するには、Scriptを作成し、エクスプローラを使用してプラグインとして保存します。 例えば、EmptyScriptAdder プラグインを作成するには、次の手順に従います。

  1. ServerStorage内に新しいScriptを挿入し、EmptyScriptAdderに名前を変更します。

  2. この新しいスクリプトにEmptyScriptAdder プラグインのコードをコピーして貼り付けます。

  3. エクスプローラでスクリプトを右クリックし、ローカルプラグインとして保存を選択します。

  4. ポップアップウィンドウで保存をクリックし、Studio インストレーションのローカルのPluginsフォルダにプラグインスクリプトを挿入します。 出力ウィンドウにプラグインが正常に保存されたことが表示され、保存後にプラグインが初めて実行されます。

ツールバーボタンの追加

Studio ツールバーのプラグインタブに、プラグインのボタンを追加するには、PluginToolbar:CreateButton()およびPlugin:CreateToolbar()メソッドを使用します。 EmptyScriptAdderのコードでは、5 行目でツールバーにカスタムスクリプトツールという名前の新しいセクションを作成し、8 行目で空のスクリプトの作成というボタンを作成します。

クリックによるコードの実行

ユーザーがツールバーボタンをクリックしたときにプラグインにコードを実行させるには、ボタンのPluginToolbarButton.Clickイベントに関数を接続します。 EmptyScriptAdderのコードでは、接続する関数はonNewScriptButtonClickedです。

ユーザー選択内容の確認

ユーザーが選択した内容に基づいてプラグインの動作を変更するには、Selectionサービスを使用します。 onNewScriptButtonClicked関数は、ユーザーが選択したものがあるかどうかを確認し、ServerScriptService内ではなく子として新しいスクリプトを作成します。 ユーザーが何も選択していない場合には、ServerScriptService内に新しいスクリプトが作成されます。

取り消しとやり直しへの対応

ChangeHistoryService を使用すると、ユーザーはバーチャル空間内でプラグインで行われた変更を取り消し、やり直すことができます。 スクリプトで、 ChangeHistoryService:TryBeginRecording() を呼び出すようにプラグインを設定し、変更を行う前に API コールに割り当てられた識別子を保存します。 そして、変更を行った後にChangeHistoryService:FinishRecording()を呼び出すようにプラグインを設定します。そうすることで、元に戻したりやり直したりするために、録画セッション中に行われたすべての変更をキャプチャします。

次のコードサンプルは、ネオン素材を選択したパーツに適用できる例のプラグインを作成します。 ChangeHistoryService を使用して、プラグインによって行われた変更を記録し、管理します:

Example Material Plugin with Recordings for Undo and Redo

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
-- プラグインの例を作成
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
-- クリックイベントに関数を紐付け
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
-- 特定の識別子で記録を開始してみる
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
-- 記録が開始したかをチェック
if not recording then
-- エラーをここで処理。 これは、あなたのプラグインが以前の
-- 記録で開始し、完了しなかったことをを表します。 録画は一件しかできません
-- 一つの使用中プラグインにつき
return
end
-- 選択済みパーツを通して反復
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon -- Set the material of the part to Neon
end
-- 変更内容を履歴にコミットして、録画を終了
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

プラグインの公開

モデルメッシュ画像アニメーションと同様に、プラグインを Roblox(ロブロックス)に公開してツールボックスから再利用しやすいようにすることができます。 さらに、プラグインの機能について視覚的に情報を提供する追加サムネイルを付けてクリエーターマーケットプレースにプラグインを公開することで、ほかのクリエーターがプラグインを購入したりインストールしたりできるようにすることも可能です。 プラグインを販売する際の最低料金は 100Robux です。

プラグインを公開するには、次の手順に従います。

  1. エクスプローラウィンドウで、Roblox に公開したいプラグインスクリプトを右クリックします。 コンテキストメニューが表示されます。

  2. プラグインとして公開を選択します。 Asset Configurationウィンドウが開きます。

  3. **(オプション)**ウィンドウの左上にある画像をクリックすると、512×512 の画像をアップロードできます。

  4. 以下のフィールドを入力します。

    • 題名:プラグインのタイトル。
    • 詳細:利用を考えているユーザーがプラグインから何を期待できるかを説明する詳細情報。
    • クリエーター:プラグインのクリエーターとして紐づけたいクリエーター。 チームクリエイトを使用している場合、すべてのクリエーターが表示されます。 そうでない場合は、「自分」が唯一の選択肢です。
  5. (オプション)身分証明書や携帯端末認証済みの場合、ボタンをクリックしてプラグインの追加のサムネイルを5つまで作成することができます。

  6. **(オプション)**マーケットプレースにプラグインを公開するには、マーケットプレースで流通させるの切り換えをオンにします。 すでにアカウントを認証済みの場合は、価格のフィールドを設定できます。

  7. (オプション)**価格**フィールドに、プラグインで課金したい Robux の金額を入力します。 デフォルト設定の0のままにしていると、プラグインはすべてのクリエーターに無償で提供されます。

  8. 送信ボタンをクリックします。 これでプラグインをツールボックスで利用できるようになりました。

プラグインの管理

プラグインを公開するには、次の手順に従います。

  1. プラグインタブのプラグイン管理ボタンをクリックし、プラグイン管理ウィンドウを開きます。

  2. 管理したいプラグインについて、次のオプションを利用します。

    1. アップデート – プラグインを最新の公開バージョンにアップデートします。 このボタンが表示されない場合、プラグインは最新です。
    2. 有効 – プラグインが有効か無効かを切り換えます。
    3. 詳細/アンインストール – プラグインの詳細を表示またはアンインストールするためのメニューを開きます。