Studioのスクリプトエディタは、Robloxでのスクリプティングのための主要なツールです。これは自己改善型の環境であり、高い影響力のあるコードを書く手助けをし、開発時間を短縮し、体験の反復を行うことができます。以下の方法でスクリプト体験を向上させることができます。
- コード内の構文をフォーマットし、ハイライトします。
- タイプするときにコード内のフレーズをオートコンプリートする方法を提供します。
- 変数や関数の宣言にジャンプすることで、コードをナビゲートするのを助けます。
- 開いているスクリプトやすべてのスクリプト内でコードを検索と置換するのを助けます。
- コードの質やパフォーマンスに関するリアルタイムフィードバックを提供します。
スクリプトエディタはすべてのタイプのスクリプトをサポートしており、新しいスクリプトを作成したり、エクスプローラーウィンドウ内の既存のスクリプトをダブルクリックすると自動的に開きます。
オートコンプリート機能
スクリプトエディタのオートコンプリート機能は、プログラミングの効率を向上させるためのコード関連情報を生成します。以下のことが可能です。
宣言した変数や関数の名前の自動補完を提供し、面倒なタイプミスを避けることができます。

APIの使用状況に関する文脈を提供するドキュメントポップアップとともに、エンジンAPIリファレンスと似たコードサンプルを表示します。

独自に定義したドキュメントでカスタマイズできるオンホバーのツールチップを提供します。

エラーをトラブルシューティングするために使用できる情報を含むオンホバーのスクリプト分析診断を提供します。

引数を入力すると関数のシグネチャを表示し、そのパラメータと戻り値の参照を提供します。

コードナビゲーション
定義に移動
関数や変数の定義にジャンプするには、WindowsではCtrlを、Macでは⌘を押しながら呼び出し元をクリックするか、呼び出し元を右クリックして宣言に移動をクリックします。

スクリプト関数フィルタ
スクリプト関数フィルタは、スクリプト内で宣言されたすべての関数のリストを表示します。これを開くには、WindowsではAltFを、Macでは⌥Fを押します。リストが開かれると、各関数のシグネチャをブラウズし、名前でフィルタリングし、ダブルクリックしてその宣言にジャンプすることができます。

検索と置換
検索/置換ウィジェットを使用すると、開いているスクリプト内のコードを検索および置換できます。このウィジェットは、大文字と小文字の一致、完全な単語の一致、および正規表現による検索をサポートしています。ウィジェットを開くには、WindowsではCtrlFを、Macでは⌘Fを押します。

リアルタイムフィードバック
スクリプト分析
スクリプト分析ウィンドウは、Studioのスクリプトタブツールバー内の分析ボタンからアクセス可能で、あなたのスクリプトに対して静的分析を行い、アクティブなエラーと警告を表示します。エラーと警告に関する詳細については、Luauリントのドキュメンテーションを参照してください。


出力
出力ウィンドウは、スクリプトを実行する際にキャプチャされたエラー、Robloxエンジンからのメッセージ、print()への呼び出しからのメッセージ、およびwarn()への呼び出しからのエラーを表示します。

コードアシスト
コードアシストは、コードをタイプする際に行や関数を提案する機能で、より効率的にコーディングし、集中力を維持するのに役立ちます。コメントやコードからの文脈に基づいて、提案が2つの方法でトリガーされます。
- 自動的に、数秒間行を一時停止すると、AIモデルが提案のための十分なコンテキストを持つ場合に提案が表示されます。
- 手動で、WindowsではショートカットAlt∖、Macでは⌥∖を使用します。
提案を受け入れるにはTabを押すか、無視するにはそのままタイプを続けます。現在のところ、あなたのスクリプトには提案をトリガーするために、少なくとも数行のコードが含まれている必要があります。
提案を改善する
より正確で関連性の高い提案を得るためには、支援があってもクリーンなコーディングの原則に従った方が良いです。また、次のことをお勧めします。
- コードを小さな関数に分解します。
- 各スクリプトの全体的な意図を捉えるような記述的なスクリプト名を使用します。たとえば、スクリプトをSyncCustomSoundsと名付ける代わりに、単にSoundsと名付けてはいけません。
- パラメータ、関数、スクリプトに対して記述的な名前を付けます。たとえば、部品をGreenSphereと名付ける代わりに単にgrsと名付けたり、関数をgenerateSphere()と名付ける代わりにgen()と名付けることを避けてください。名前付き関数を使用することで、匿名関数よりもより良いヒントが得られることがあります。
- 実装しているタスクとその入力/出力を説明する良く書かれたコメントを一貫して含めます。
- 期待される結果が含まれたサンプル呼び出しをコメントに含めることを検討してください。
- 問題の解決方法を提案してください、例えば-- Use raycast。
- 定義した正確な関数名または変数名を使用してください、例えば-- Create 10 greenSphere objectsではなく-- Create 10 spheres。
- 初心者のスクリプターであれば、「プレイヤーがその部品に触れるとジャンプする」などの基本的なプロジェクトから始めたり、知識が増えるにつれて拡張できる小さなコードスニペットを生成するためにツールを使用してください。
制限事項
このツールは基本的なコーディングタスクの自動化を手助けしますが、常に完璧なコードを提案するわけではありません。既知の制限には以下が含まれます。
- 手動トリガーは常に提案を強制生成するわけではありません。
- 提案は、コードのコーパスから機械学習されたものであり、それにより彼らがトレーニングされたコードのいくつかの制限を反映する可能性があります。たとえば、提案は新しいAPIではなく古いAPIを使用することがあるか、LuaではなくLuauを使用することがあります。
- ツールが生成する情報が不正確または誤解を招く可能性があり、目的にとって役に立たないことがあります。
- 内部フィルターは攻撃的な言語をブロックしようとしますが、完全ではなく、ツールが攻撃的または偏った情報を生成する可能性があります。
- 提案は、同じプロンプトであっても、ユーザーごとに同じ、類似、または異なる場合があります。ただし、あなたのコードは他の人と共有されることはありません。
- 提案は、学習モデルの出力の長さが制限されているため、不完全である可能性があります。
- 提案の数に対して日々の上限があり、その上限に達した場合、翌日まで提案を受けることはできません。
コードプライバシー
現在、Robloxは学習モデルのトレーニングに非公開データを使用していません。このツールは、大規模言語モデルを調整するために無料のマーケットプレイスアセットの小さなサブセットのみを使用し、そのサブセットは品質および安全フィルターチェックを通過しています。
さらに、すべての提案はAIモデルによって生成され、ユーザー間で転送されることはありません。あなたのコードはモデルのトレーニングには使用されず、他のコードアシストのユーザーに提案されることはありませんが、無料のマーケットプレイスアイテムにコードが投稿された場合は例外です。
マルチカーソル
スクリプトエディタは、同時に編集を行うために複数のカーソルの使用をサポートしています。マウスクリックやキーボードショートカットによって、必要に応じてカーソルを追加できます。最初のカーソルはプライマリーカーソルと呼ばれ、追加のカーソルはセカンダリーカーソルと呼ばれます。
- プライマリーカーソルで行った編集は、セカンダリーカーソルにコピーされます。各編集は1つのアクションとしてカウントされるため、編集の元に戻したりやり直したりする際は全てのカーソルに適用されます。
- オートコンプリートなどのウィジェットはプライマリーカーソルに表示されますが、セカンダリーカーソルには表示されません。
- スクリプト編集のためのすべての標準キーボードショートカットはマルチカーソル編集でも機能します。これには、コードのインデント、コメントのトグル、行の削除が含まれます。
以下の表は、マルチカーソルのワークフローとそのショートカットを要約しています。
| コマンド | Windows | Mac |
|---|---|---|
| マウス位置でカーソルの追加/削除 | Alt + クリック | ⌥ + クリック |
| 最近追加されたカーソルの削除 | CtrlU | ⌘U |
| マウスドラッグ中のカーソルの追加/変更 | Alt + ドラッグ | ⌥ + ドラッグ |
| 上または下のカーソルの追加 | CtrlAlt↑ / CtrlAlt↓ | ⌘⌥↑ / ⌘⌥↓ |
| 次の一致する選択へのカーソルの追加 | CtrlD | ⌘D |
| すべての一致する選択へのカーソルの追加 | ShiftAltL | Shift⌥L |
| 列/ブロック選択 | ShiftAlt + ドラッグ | Shift⌥ + ドラッグ |
| 選択を行に分割 | ShiftAltI | Shift⌥I |
カーソルの追加
キーボードショートカットとマウスマヌーバの組み合わせでカーソルを追加できます。カーソルが同じ空間を占める場合、それらはマージされます。たとえば、カーソルを矢印キーで追加したり、カーソルの間のすべての文字を削除すると、カーソルはマージされます。
マウス位置で
マウスカーソルの位置にカーソルを追加するには:
WindowsではAltを、Macでは⌥を押し続けます。
カーソルを追加したい位置をクリックします。
マウスドラッグで
コーディングの選択にカーソルを追加するためにマウスをドラッグしたり、マルチライン選択を行に分割したり、列やコード/空白のブロックを選択することができます。
コードの選択にカーソルを追加するには、ドラッグして次のようにします:
WindowsではAltを、Macでは⌥を押し続けます。
コードの選択をドラッグします。
プライマリーカーソルの上または下
プライマリーカーソルのすぐ上または下にカーソルを追加するには:
WindowsではCtrlAltを押し続け、Macでは⌘⌥を押し続けます。
↑または↓矢印を押します。
一致する選択へのカーソル
選択のすべての一致にカーソルを追加したり、次/前の一致にカーソルを追加したり、オプションでケースを区別するか完全な単語一致を切り替えることができます。
選択した部分のすべての一致にカーソルを追加するには:
一致を検索したいコードを選択します。
WindowsではShiftAltLを、MacではShift⌥Lを押します。
カーソルの削除
次のキーボードショートカットやマウスマヌーバでカーソルを削除できます。あるいは、Escを押すことでマルチカーソル編集を終了することができます。
マウス位置で
カーソルを削除するには:
WindowsではAltを、Macでは⌥を押し続けます。
削除したいカーソルをクリックします。
最近追加されたカーソル
最近追加されたカーソルを削除するには、WindowsではCtrlUを、Macでは⌘Uを押します。
カーソルのコピーとペースト
コードの選択をコピーすると、その中のカーソルも含まれます。ペーストの動作は、ソースのカーソルの数と宛先のカーソルの数によって異なります。
- カーソルの数が同じであれば、各コピーされたカーソルが対応する宛先カーソルにペーストされます。
- カーソルの数が異なる場合、宛先の各カーソルには、各コピーされたカーソルが新しい行としてペーストされます。
タイプ時フォーマット
エンター/リターンを押すと、各カーソルが前の行に対して新しい行で自動的にインデントされます。前の行が不完全なブロックで始まる場合、フォーマッターはそれを完成させようとします。
エディタ設定
多くのカスタマイズオプションは、スタジオ設定のスクリプトエディタタブからアクセスできます。一般的に変更されるオプションには以下が含まれます。
| オプション | 説明 |
|---|---|
| フォント | エディタ内のコードのフォントファミリーとサイズ。 |
| タブ幅 | Tabインデントを示すスペースの数。 |
| スペースを使用してインデント | 有効にすると、Tabを押すとタブ幅に等しいスペースが挿入されます。 |
| テキストの折り返し | 有効にすると、長いコードの行が次の行に折り返されます。 |
| スクリプトエディタのカラープリセット | コード要素、選択色などのカラープリセット。プリセットを選択した後、選択色やコメント色などのオプションに特定の色を設定できます。 |
キーボードショートカット
スクリプトエディタには次のキーボードショートカットがあります。
| コマンド | Windows | Mac |
|---|---|---|
| スクリプトを閉じる | CtrlW | ⌘W |
| 最後に閉じたスクリプトを再オープン | CtrlShiftT | ⌘ShiftT |
| クイックオープン | CtrlP | ⌘P |
| エクスプローラーでスクリプトを表示 | CtrlAltK | ⌘⌥K |
| ズームイン | Ctrl= | ⌘= |
| ズームアウト | Ctrl- | ⌘- |
| スクリプトズームをリセット | Ctrl0 | ⌘0 |
