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

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

インエクスペリエンス Tools は、剣、ロケットランチャー、魔法の杖など、ユーザーがセッションで装備できる対話型ツールです。カスタマイズされたインエクスペリエンスツールを作成し、エクスペリエンス階層に配置し、ユーザーに実装するスクリプトを書くことができます。

エクスペリエンス内ツールを作成する

エクスペリエンス内のツールを作成する最初のステップでは、ツールを構成するすべての要素を含む ツールオブジェクトを作成 する必要があります。次に、パーツとメッシュ、サウンド効果、機能を提供するスクリプトを含むツールオブジェクトに他のインスタンスを追加できます。また、ツールハンドルを設定ツールグリップを調整、およびツールアイコンをカスタマイズして、ユーザーエクスペリエンスを向上させることもできます。

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

次の手順で新しいツールオブジェクトを作成できます:

  1. エクスプローラー ウィンドウ で、 ワークスペース をホバーし、 ボタンをクリックしてオブジェクトのリストを表示

  2. Select ツールインタラクション カテゴリーの下で選択します。

パーツやメッシュを追加

ツールオブジェクトを作成した後、 または をツールモデルに追加するか、パーツとメッシュなしでツールをインベントリアイテムとして作成する必要があります。他のモデルと同様、インエクスペリエンスツールは、複数の Parts から構成でき、そのため、Weld 制約を使用してツールのすべての部分を接続する必要があります。

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

ツールハンドルを設定

ユーザーがツールを持ち運べるようにするには、Part を設定し、名前を Handle としてユーザーの手に付ける必要があります。次の例では、輝くチップ、メインボディ、そして赤いハンドルの 3 部分を持つ魔法の杖を示しています。ユーザーが杖を装備すると、Part という名前の Handle に保持されます。

Make sure to have only one Part 名付けられた Handle のみを持っていること。複数の を名前として指定すると、ツールはランダムにそのうちの 1つをハンド付属点として選択し、ユーザーが剣の刃ではなく槍を持っている可能性のある問題を引き起こす可能性があります。

ツールグリップの向きを調整する

ツールのグリップオリエンテーションが正しくない場合、地面をドラッグするか、後ろ向きに向かうなど、 グリップ プロパティを調整して、 外観 カテゴリの プロパティ ウィンドウで修正できます。

各ツールの理想的なグリップ方向は異なるため、ツールのグリップが正しく見えるまで、 グリップフォワードグリップライト 、および グリップアップ プロパティの値を変更して試す必要があります。次の例では、魔法の杖のための可能な間違ったグリップと正しいグリップを示しています:

地面でツールドラッグ
>

ツールが後ろ向きになっている
>

ツールが正しく向き合っている
>

ユーザーキャラクターを有効にして、 GripPos プロパティでツールを手からオフセットできます。これは、ユーザーの肩に置かれるはずのツールを作成するときに役立つかもしれません。

デフォルトオフセット (0,0,0)
>

ツールオフセットを肩に
>

ツールアイコンをカスタマイズする

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

ツールの プロパティ ウィンドウで、次のプロパティを使用して、アクションバーでツールの外観をカスタマイズします:

  • テクスチャID — ツールアイコン。このプロパティの画像IDを、デカールと画像ボタンと同じように設定します。
  • ツールチップ — ホバー中のツールチップ名。

ツールをドロップするユーザーを有効化および無効化

デフォルトでは、ユーザーは Windows で バックスペース キーを押してツールをドロップしたり、Mac で 削除 したりできます。ツールの CanBeDropped プロパティを false に設定して、このオプションを無効にすることができます。If CanBeDroppedfalse である場合、 バックスペース または 削除 を押すと、ツールがユーザーのバックパックに返されます。

在庫アイテムとしてツールを作成

パーツやメッシュがない体験ツールをインベントリアイテムとして作成し、ユーザーがクリックしたり、画面にタッチしたりして魔法の呪文をキャストできるように、ユーザーキャラクターが他の人をクリックしたり、画面にタッチしたりすることを待つこともできます。インベントリアイテムツールにはハンドルは必要ないので、ツールの ハンドルが必要かどうか プロパティを プロパティ ウィンドウで無効にする必要があります。

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

エクスペリエンス内のツールの設定を完了したら、エクスペリエンスのオブジェクト階層の適切な領域に配置する必要があります。ツールをエクスペリエンスのオブジェクト階層内に配置する場所は、その使用目的によって異なります。

デフォルトの開始ツール

すべてのユーザーがインベントリ持ち物リストツールを持って始めることを望む場合は、 スターターパック フォルダに入れます。ユーザーがスポーンすると、システムはツールをバックパックにコピーします。

コレクションツール

ユーザーが移動中にツールを収集できるようにするには、ツールを ワークスペースエクスプローラー 階層に配置することができます。たとえば、エクスペリエンスワールドの届きにくいエリアに超小型ロケットランチャーを置きたいかもしれません。

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

ユーザーが特別なことをしたり、経験ストアで販売したりするときにツールを賞品として設定したい場合は、ツールを サーバーストレージ 内の エクスプローラー 階層に配置し、適切な時にツールをユーザーのバックパックにクローンできるようにします。

ツール効果を追加

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

ツール固有のイベント

ツールスクリプトで、ツールの状態とユーザーの入力を指定する次の 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 リモートイベントとコールバック .