インエクスペリエンスツール

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

In-experience Tools は、ユーザーがセッションで装備できるインタラクティブツールで、剣、ロケットランチャー、魔法の杖などがあります。ユーザーがカスタマイズできるインエクスペリエンスツール、エクスペリエンスヒエラークリエーション、スクリプトを作成してユーザーに実装することができます。

インエクスペリエンスツールの作成

任意のインエクスペリエンスツールを作成する第1ステップとして、ツールオブジェクトを作成する必要があります。ツールオブジェクトには、パーツ、メッシュ、サウンドエフェクト、およびスクリ

ツールオブジェクトを作成する

次のステップを使用して、新しいツールオブジェクトを作成できます:

  1. In the Explorer ウィンドウ, hover over Workspace and click the ボタン to show the list of objects.

  2. Select ツール under the インタラクション categorカテゴリ.

パーツやメッシュを追加する

ツールオブジェクトを作成した後、ツールモデルに Parts または MeshParts を追加する必要があります。ツールとメッシュの両方を Class.Weld 制限を使用して接続

パーツやメッシュを追加せずにツールを作成したい場合は、インベントリアイテムとして作成できます。

ツールハンドルを設定する

ユーザーがツールを運ぶことを有効にするには、Part を設定し、Handle を付ける必要があります。次の例では、魔法の杖の 3つの部分である、輝く先、メインボディ、赤いハンドルを示しています。ユーザーが魔

Make sure to have only one Part named Handle . If you name multiple Parts as 1> Handle1> , the toolRandomlyPicksOneOfThemAsTheHandAttachmentPointWhichMayCauseIssuesSuchAsUsersHoldingSwordsInsteadOfHilts.

ツールグリップのオリエンテーション調整

ツールのグリップ方向が正しくありません。たとえば、地面をドラッグしたり、後ろ向きに面したりするなど、グリップ プロパティを調整することで、見た目 カテゴリの グリップ プロパティの下で 2>グリップ2> を修正できます。

各ツールの理想的なグリップオリエンテーションは異なるので、 グリップフォードグリップライト 、および グリップアップ プロパティの隣にある値を変更して、ツールのグリップが正しく見えるようにします。次の例では、魔法の杖のグリップに可能な不正しいグリップと正

地面でツールドラッグ
ツールの向きを後ろにする
ツールの方向を正しく変更しました

また、ユーザーキャラクターがツールをユーザーの手からオフセットするための GripPos プロパティを有効にすることもできます。これは、ユーザーの肩に表示されるツールを作成するときに便利です。

デフォルトオフセット (0,0,0)
肩のツールオフセット

ツールアイコンのカスタマイズ

ユーザーが所有するツールは、そのユーザーの Backpack に保存されます。ユーザーは、アクションバーでバックパックの中の各ツールのアイコンを表示できます:

ツールの プロパティ ウィンドウで、ツールの外観をカスタマイズするために次のプロパティを使用してください:

  • TexturabilityID — ツールアイコン。このプロパティの画像 ID をデカールや画像ボタンと同じ方法で設定します。
  • ツールヒント — オンホバーツールヒント名。

ユーザーがツールをドロップするのを有効化/無効化

デフォルトでは、ユーザーは Windows の バックスペース キーを押すか、Mac の 削除 を押すと、ツールをドロップできます。このオプションを無効にするには、ツ

インベントリアイテムとしてツールを作成する

部品やメッシュなしで、ユーザーの入力を待つインベントリアイテムとして、マジック・スペルなどのユーザーキャラクターが他のユーザーにクリックまたはタッチすることでキャストするインベントリアイテムツールを作成できます。ツールの プロパティ ウィンドウで ハンドル プ

エクスペリエンスにツールを追加する

エクスペリエンスツールを設定した後、エクスペリエンスのオブジェクトの階層に配置する必要があります。ツールをエクスペリエンスのオブジェクトの階層に配置する方法は、ツールの使用目的によります。

デフォルトのスタートツール

すべてのユーザーがインベント持ち物リストにあるツールで開始したい場合は、 StarterPack フォルダ内に置きます。ユーザーがスポーンすると、システムはツールをバックパックにコピーします。

コレクタブルツール

ユーザーがツールを移動させるのを許可したい場合は、ツールを ワークスペース に配置し、 エクスプローラー 階層の ワークスペース に配置することができます。たとえば、ユーザーのワールドの届きにくいエリアにスーパーロケットランチャーを配置したい場合は、 2>エクスプローラー</

獲得したツールと購入ツール

ユーザーが特別なことをするときにツールをアワードとして設定したり、エクスペリエンスストアでツールを販売するために、ツールを サーバーストレージ の中に入れ、 エクスペリエンス 階層の バックパック にツールをクローンしてユーザーのバックパックに提供できます。

ツールエフェクトを追加する

エクスペリエンスにツールを追加した後、スクリプトを追加してユーザーがツールを使用して特殊効果を実行できるようにします。

ツール関連イベント

ツールスクリプトにツールの状態とユーザーの入力を指定する 4つのツール専用コンディションを使用して、ツールのステートを表示し、ユーザーの入力を含めてツールのスクリプトを構成できます:

  • Tool:Equipped() : ユーザーがバックパックからツールを選択したときに発生します。

  • Tool:Unequipped() : ユーザーがツールをドロップするか、ツールを切り替えると発生します。

  • Tool:Activated() : ユーザーがツールを有効化し始めると、ツールが有効化されます (ゲームパッドの「A」をクリック、タップ、または押す)。

  • Tool:Deactivated() : ユーザーがアクティブ入力を停止すると発生します (ボタンまたはタッチを解放します)。

ツールを設計するときに、4つの条件をすべて必要としない場合でも、次のコードスクリプトを基本のツールスクリプトのテンプレートとして使用できます:


local tool = script.Parent
local function onEquip()
print("The tool is now equipped.")
end
local function onUnequip()
print("The tool is now unequipped.")
end
local function onActivate()
print("The tool is now activated.")
end
local function onDeactivate()
print("The tool is now deactivated.")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

このコードサンプルは、スクリプトがツールオブジェクトの最上位レベルの子であることを仮定します。スクリプトが別の場所にある場合は、1行目のパス (tool の値) を調整して、コアツールオブジェクトにポイントを指定します。

基本スクリプトの追加

次の例では、ユーザーが画面をクリックすることで昼と夜を入れ替える魔法の杖を装備できるようにするサーバー上の Script の追加方法を示しています:

  1. エクスプローラ ウィンドウで、ツールオブジェクトの上にマウスポインタを置き、⊕ ボタンをクリックして Script を挿入します。

  2. 次のコードをコピーし、Script に貼り付けてください。


    local Lighting = game:GetService("Lighting")
    local tool = script.Parent
    local function onActivate()
    if Lighting.ClockTime >= 8 and Lighting.ClockTime < 16 then
    Lighting.ClockTime = 20
    else
    Lighting.ClockTime = 8
    end
    end
    tool.Activated:Connect(onActivate)
  3. ツールを拾ってから、エクスペリエンスの画面上の任意の場所をクリックして、昼と夜の間を切り替える:

ツールの実装のためのスクリプトの種類

一部のツールには、Script サーバーにのみ実装する必要があります。一部のツールは、以前の例のように、サーバーにのみ Script が必要ですが、ほとんどのツールは、クライアントにのみ LocalScript が必要です。ツールの挙動の特定のアセプトについては、そ

スクリプトを追加する前に、各スクリプトタイプのコアの違いを理解してください:

  • スクリプト は、すべてのユーザーに見えるオープンワールドの変更を管理します。たとえ、ドアをアンロックしたり、矢印を撃つなどして、世界全体の変更を更新します。
  • ローカルスクリプト は、ユーザーのデバイスでのみ発生するものを管理します。たとえば、画面をタップまたはクリックする場所を検出するなどです。

ここにいくつかの例のツールとその動作が管理されるローカルスクリプトまたはサーバースクリプトのツールがあります:

ツールローカルスクリプトサーバースクリプト
クリエイターの杖プレイヤーが画面にタッチするかクリックする場所を検出します。プレイヤーがタッチまたはクリックした場所のゲームワールド内の新しいパーツを作成します。
透明化マントマントを装備している間、プレイヤーを他のユーザーに見えなくします。
メガ-ボウプレイヤーがツールを有効にする時間 (有効化から非作用までの時間) を検出します。検出されたアクティブ時間に応じて、魔法の矢印を大きくまたは小さく発射します。

さまざまなスクリプトタイプに関する詳細は、スクリプト を参照してください。

トラブルシューティングのヒント

Studio ではツールは機能しますが、ライブ Roblox エクスペリエンスでは機能しません。この場合は、次のヒントを使用してトラブルシューティングを処理してください:

  • LocalScriptsScripts は互いに直接聞くことはできませんので、2つのスクリプト間のメッセージを送信するために RemoteEvent を追加する必要があります。
  • それぞれの ScriptLocalScript がそれぞれの役割を果たしていることを確認してください。

For more information on RemoteEvents, see リモートイベントとコールバック .