「スクリプト作成」の版間の差分

出典: LFS Manual
ナビゲーションに移動検索に移動
(英最新版のコピー&一部翻訳)
M (DeepL で翻訳)
 
4 行 4 行
  
 
一般的に、このシステムはタスクを自動化するのに便利です。
 
一般的に、このシステムはタスクを自動化するのに便利です。
Generally, it allows the automation of common tasks, customisation of options on a per-car basis as well as simple toggles to change the binding of keys (and more). This guide is aimed to give you a general understanding of the LFS script system as well as a few examples for simple scripts.
+
一般的には、一般的なタスクの自動化、車ごとのオプションのカスタマイズ、キーのバインディングを変更する簡単なトグル(その他)などが可能です。このガイドは、LFSスクリプトシステムの一般的な理解と、簡単なスクリプトの例をいくつか紹介することを目的としています。
  
 
== 使用方法 ==
 
== 使用方法 ==
16 行 16 行
 
フォルダ内を整理するために、サブディレクトリ内にスクリプトを保存しておくことも可能です。
 
フォルダ内を整理するために、サブディレクトリ内にスクリプトを保存しておくことも可能です。
  
In general, each line in the script file represents a command that is executed by LFS, going from top to bottom. The only exception are empty lines, and lines that start with "//", which are treated as comments and thus ignored. Basically you can imagine the system as LFS reading each line, writing it into the chat window and hitting return. Of course it is not ''exactly'' like that, but it should give you the general idea.
+
一般に、スクリプトファイルの各行はLFSが実行するコマンドを表し、上から下へと進んでいきます。唯一の例外は空行と"//"で始まる行で、これらはコメントとして扱われ、無視されます。基本的には、LFSが各行を読み、チャットウィンドウに書き込み、リターンを打つというシステムを想像していただければと思います。もちろん、その通りではありませんが、大まかなイメージはつかめるかと思います。
  
 
=== 予約済みのファイル名 ===
 
=== 予約済みのファイル名 ===
While you can generally name new script files however you want, a few names have a special meaning to LFS. All affected files already exist in the script folder when you first install the patch, so as long as you don't move or overwrite any files everything will be fine.
+
新しいスクリプトファイルには通常好きな名前を付けることができますが、いくつかの名前はLFSにとって特別な意味を持ちます。パッチを最初にインストールしたとき、影響を受けるファイルはすべてscriptフォルダにすでに存在していますので、ファイルを移動したり上書きしたりしない限り、すべてうまくいきます。
  
 
* '''autoexec.lfs'''
 
* '''autoexec.lfs'''
: Like the name suggests, this script is executed automatically every time LFS starts and is thus the ideal place to initialize your scripts.
+
: このスクリプトはその名の通り、LFSが起動するたびに自動的に実行されるため、スクリプトの初期化に最適な場所です。
  
 
* '''CAR.lfs'''<br>
 
* '''CAR.lfs'''<br>
: "CAR" being replaced with one of the three-letter car shortcuts (see [[Cars|here]] or below), these scripts are executed everytime the corresponding car is selected in the garage - for example if you select the XR GT Turbo, LFS will execute "XRT.lfs". They are usually used for car specific settings, like a custom FOV or force feedback strength.
+
: "CAR" を3文字の車のショートカット([[Cars|こちら]]または下記参照)に置き換えると、ガレージで対応する車が選択されるたびにこれらのスクリプトが実行されます。例えば、XR GT Turboを選択した場合、LFSは "XRT.lfs "を実行します。通常、FOVやフォースフィードバックの強さなど、車種固有の設定に使用されます。
  
 
* '''road.lfs, sequential.lfs, paddle.lfs'''<br>
 
* '''road.lfs, sequential.lfs, paddle.lfs'''<br>
: Even though these filenames are neither reserved nor automatically executed, they are worth mentioning as by default they are run from inside the ''CAR.lfs'' scripts. Their main purpose are custom settings that should apply to cars with a certain shifter type. ''Road.lfs'' is the equivalent to cars with a H-gate shifter, ''sequential.lfs'' to a sequential stick shifter and ''paddle.lfs'' to having paddles. If you have a wheel that supports such shifter types (like the [[Wheels#Logitech_G25|Logitech G25]] for example), then these script files are handy to automatically change the shifter setup so it fits the currently selected car.
+
: これらのファイル名は予約されているわけでも、自動的に実行されるわけでもありませんが、デフォルトで''CAR.lfs''スクリプトの中から実行されるため、言及する価値があります。主な目的は、特定のシフタータイプの車に適用されるべきカスタム設定です。''Road.lfs'' はHゲートシフター、''sequential.lfs'' はシーケンシャルスティックシフター、''paddle.lfs'' はパドルを持つ車に相当するものです。このようなシフタータイプをサポートするホイール(例えば[[Wheels#Logitech_G25|Logitech G25]])を持っている場合、これらのスクリプトファイルは現在選択されている車に合うようにシフターの設定を自動的に変更するのに便利です。
  
: To match the cars to their gearbox, they should be assigned as following:<br>
+
: 車とギアボックスを一致させるために、以下のように割り当てる必要があります:<br>
 
{| style="margin-left:23px"
 
{| style="margin-left:23px"
 
|Road:||UF1, XFG, XRG, XRT, RB4, FXO, LX4, LX6, FZ5, FZR, UFR, RAC
 
|Road:||UF1, XFG, XRG, XRT, RB4, FXO, LX4, LX6, FZ5, FZR, UFR, RAC
72 行 72 行
 
  /alt  [key]                - ALT + key
 
  /alt  [key]                - ALT + key
  
=== Parameter reference ===
+
=== パラメータ リファレンス ===
  '''Function names for the /button and /key commands'''
+
  '''/button /key コマンドの機能名'''
 
  steer_left, steer_right, steer_fast, steer_slow
 
  steer_left, steer_right, steer_fast, steer_slow
 
  throttle, brake, shift_up, shift_down
 
  throttle, brake, shift_up, shift_down
80 行 80 行
 
  reverse, gear_1 - gear_7, ctrl_f1 - ctrl_f12, ignition
 
  reverse, gear_1 - gear_7, ctrl_f1 - ctrl_f12, ignition
 
  <span style="color:gray">
 
  <span style="color:gray">
  ''To find out the number for a controller button, go to Options > Controls''
+
  ''コントローラーのボタンの番号を調べるには、オプション>コントロール''と進んでください。''
  ''and press the button in question. You will see the button # and currently''
+
  ''そして問題のボタンを押す。画面右上にボタン番号と現在割り当てられている機能が表示されます。''
  ''assigned function in the middle right part of the screen.''
+
  ''画面右中段に割り当てられた機能が表示されます。''
 
  </span>
 
  </span>
  '''Function names for the /axis and /invert commands'''
+
  '''/axis /invert コマンドの機能名'''
 
  steer, combined, throttle, brake
 
  steer, combined, throttle, brake
 
  lookh, lookp, lookr
 
  lookh, lookp, lookr
 
  clutch, handbrake, shiftx, shifty
 
  clutch, handbrake, shiftx, shifty
 
   
 
   
  '''Parameters for the key press commands (press / shift / ctrl / alt)'''
+
  '''キーを押すコマンド(press / shift / ctrl / alt)のパラメータ'''
 
  Letters A to Z
 
  Letters A to Z
 
  Numbers 0 to 9
 
  Numbers 0 to 9
98 行 98 行
  
 
== 例 ==
 
== 例 ==
On a general note: as you might have noticed from the command listing, it is currently impossible to bind other script commands to a button; for example, "/button 1 /say hello" wouldn't work. Luckily we can use the text shortcut keys (Ctrl+F1-F12, Alt+F1-F12) for this, so we can use "/ctrlf 1 /say hello" (which binds "/say hello" to Ctrl+F1) and then "/button 1 ctrl_f1" (binds the press of Ctrl+F1 to button #1). However, this also means that you have to give away a few of your shortcut keys for the scripts, which shouldn't really be a problem, considering there are 32 available shortcuts total (24 bindable via scripts).
+
一般的な注意点として、コマンドリストを見て気づいたかもしれませんが、現在のところ、他のスクリプトコマンドをボタンにバインドすることは不可能です。幸いなことに、テキストのショートカットキー(Ctrl+F1~F12、Alt+F1~F12)が使えるので、''/ctrlf 1 /say hello''(''/say hello'' をCtrl+F1にバインド)と ''/button 1 ctrl_f1'' (Ctrl+F1押下をボタン#1へ)を使えばいいのである。しかし、これはスクリプトのためにショートカットキーのいくつかを手放さなければならないことを意味しますが、利用可能なショートカットが全部で32個(スクリプトでバインドできるのは24個)あることを考えれば、実際には問題ないはずです。
 
=== "F9 > F10 > F11 > F12 > Off" 切り替え ===
 
=== "F9 > F10 > F11 > F12 > Off" 切り替え ===
 
'''Shortcut keys used:''' Ctrl+F12
 
'''Shortcut keys used:''' Ctrl+F12
  
The basic idea of this script is, that we want to have one button (for example on the wheel) cycling through the F9-F12 menus. To accomplish this, we need five scripts plus an entry in ''autoexec.lfs''.
+
このスクリプトの基本的な考え方は、1つのボタン(例えばホイールのボタン)でF9-F12メニューを循環させたいというものです。これを実現するために、5つのスクリプトと ''autoexec.lfs'' のエントリが必要です。
  
For this script we will use the Ctrl+F12 text shortcut for our cycle, and bind button #0 (whichever button that is on your controller) to execute it. The multiple usage of the /press command ensures that the menu is properly displayed, in case a menu was already opened manually beforehand. For example, if the F11 menu is already open and we would run ''viewF11.lfs'' without pressing the F9 key in it, it would just close the F11 menu instead, which is something we definitely don't want to happen in the heat of a race.
+
このスクリプトでは、Ctrl+F12 のショートカットを使い、ボタン #0 (コントローラーのどのボタンでも) をバインドして実行させます。/press コマンドを複数回使用することで、事前に手動でメニューを開いていた場合でも、メニューが正しく表示されるようになります。例えば、F11メニューがすでに開いていて、F9キーを押さずに ''viewF11.lfs'' を実行すると、代わりにF11メニューが閉じてしまいますが、これはレース中に絶対に起こってほしくないことです。
  
It will work like this:<br>
+
次のように動作します:<br>
 
#Button 0 -> Ctrl+F12 -> viewF9 -> press F9 + rebind Ctrl+F12 to run viewF10<br>
 
#Button 0 -> Ctrl+F12 -> viewF9 -> press F9 + rebind Ctrl+F12 to run viewF10<br>
 
#Button 0 -> Ctrl+F12 -> viewF10 -> press F10 + rebind Ctrl+F12 to run viewF11<br>
 
#Button 0 -> Ctrl+F12 -> viewF10 -> press F10 + rebind Ctrl+F12 to run viewF11<br>
147 行 147 行
 
'''Shortcut keys used:''' Ctrl+F10, Ctrl+F11
 
'''Shortcut keys used:''' Ctrl+F10, Ctrl+F11
  
This example shows a simple way to comfortably control the indicators with two buttons. You need three scripts and a few entries to ''autoexec.lfs'', shortcut keys used are Ctrl+F10 and F11. The indicators will work as follows; first press of left button activates left indicator, second press deactivates it. Vice versa for the right button. Switching between left and right is possible. For ease of use, the script will output green arrows indicating the currently selected mode into the chat area.
+
この例では、2つのボタンでインジケータを快適にコントロールする簡単な方法を紹介します。必要なのは3つのスクリプトと ''autoexec.lfs'' へのいくつかの入力、ショートカットキーはCtrl+F10とF11を使用します。インジケータは次のように動作します。左ボタンを1回目に押すと左のインジケータが作動し、2回目に押すと解除されます。右ボタンはその逆です。左と右の切り替えも可能です。使いやすいように、スクリプトは現在選択されているモードを示す緑色の矢印をチャットエリアに出力します。
  
By using the same logic and adding another script, it is also easy to implement the control of the hazards by a third button.
+
同じロジックを使い、別のスクリプトを追加することで、第3のボタンによるハザードの制御も簡単に実装できる。
  
 
'''indicateLeft.lfs'''
 
'''indicateLeft.lfs'''
178 行 178 行
 
'''Shortcut keys used:''' None
 
'''Shortcut keys used:''' None
  
To automatically adjust the controller bindings for the shift mechanism used by the currently selected car, all you have to do is modify the existing ''road.lfs'', ''sequential.lfs'' and ''paddle.lfs'' as shown below.
+
現在選択されている車で使用されているシフトメカニズム用にコントローラのバインディングを自動的に調整するには、以下のように既存の ''road.lfs'', ''sequential.lfs'', ''paddle.lfs'' を変更すればよいのです。
  
''Optionally you can also add re-bindings of whatever you want to use the free shifter/paddle buttons for. For example, when using the shifter unit, my right paddle acts as handbrake and the left one as horn, whereas when using the paddles, pulling the sequential stick is the handbrake and pushing sounds the horn. Doing this maximises the capabilities of the few easy-to-reach buttons on the G25; these re-bindings are not included in the example scripts.''
+
''オプションで、フリーシフター/パドルボタンを使いたいもののリバインドを追加することも可能です。例えば、シフターユニットを使うときは、右のパドルがハンドブレーキ、左のパドルがホーンになり、パドルを使うときは、シーケンシャルスティックを引くとハンドブレーキ、押すとホーンが鳴るという具合です。こうすることで、G25の手の届きやすい数少ないボタンの機能を最大限に活用できます。このリ・バインディングは、サンプルスクリプトには含まれていません''
  
 
'''road.lfs'''
 
'''road.lfs'''

2022年7月30日 (土) 13:26時点における最新版

by AndroidXP

はじめに

2006年12月のパッチVのリリースの際に、LFSの開発者は新しいスクリプトシステムを公開しました。これは、ほとんどのFPSシューティングゲームで実装されているものと非常に似ています。

一般的に、このシステムはタスクを自動化するのに便利です。 一般的には、一般的なタスクの自動化、車ごとのオプションのカスタマイズ、キーのバインディングを変更する簡単なトグル(その他)などが可能です。このガイドは、LFSスクリプトシステムの一般的な理解と、簡単なスクリプトの例をいくつか紹介することを目的としています。

使用方法

基本

スクリプトファイルは拡張子に.lfsおり、LFS\data\scriptフォルダ内に入っています。

これらのファイルを編集するには、まずメモ帳などのテキストエディタで開きます。

もちろん、新しいファイルを作成することもできます。新規作成する際には、正しい拡張子で保存するよう注意してください。

フォルダ内を整理するために、サブディレクトリ内にスクリプトを保存しておくことも可能です。

一般に、スクリプトファイルの各行はLFSが実行するコマンドを表し、上から下へと進んでいきます。唯一の例外は空行と"//"で始まる行で、これらはコメントとして扱われ、無視されます。基本的には、LFSが各行を読み、チャットウィンドウに書き込み、リターンを打つというシステムを想像していただければと思います。もちろん、その通りではありませんが、大まかなイメージはつかめるかと思います。

予約済みのファイル名

新しいスクリプトファイルには通常好きな名前を付けることができますが、いくつかの名前はLFSにとって特別な意味を持ちます。パッチを最初にインストールしたとき、影響を受けるファイルはすべてscriptフォルダにすでに存在していますので、ファイルを移動したり上書きしたりしない限り、すべてうまくいきます。

  • autoexec.lfs
このスクリプトはその名の通り、LFSが起動するたびに自動的に実行されるため、スクリプトの初期化に最適な場所です。
  • CAR.lfs
"CAR" を3文字の車のショートカット(こちらまたは下記参照)に置き換えると、ガレージで対応する車が選択されるたびにこれらのスクリプトが実行されます。例えば、XR GT Turboを選択した場合、LFSは "XRT.lfs "を実行します。通常、FOVやフォースフィードバックの強さなど、車種固有の設定に使用されます。
  • road.lfs, sequential.lfs, paddle.lfs
これらのファイル名は予約されているわけでも、自動的に実行されるわけでもありませんが、デフォルトでCAR.lfsスクリプトの中から実行されるため、言及する価値があります。主な目的は、特定のシフタータイプの車に適用されるべきカスタム設定です。Road.lfs はHゲートシフター、sequential.lfs はシーケンシャルスティックシフター、paddle.lfs はパドルを持つ車に相当するものです。このようなシフタータイプをサポートするホイール(例えばLogitech G25)を持っている場合、これらのスクリプトファイルは現在選択されている車に合うようにシフターの設定を自動的に変更するのに便利です。
車とギアボックスを一致させるために、以下のように割り当てる必要があります:
Road: UF1, XFG, XRG, XRT, RB4, FXO, LX4, LX6, FZ5, FZR, UFR, RAC
Sequential: FBM, FOX, FO8, MRT, XFR, XRR, FXR
Paddle: BF1

コマンド

以下に掲載しているコマンドはよく使われるものの抜粋です。

全てのコマンドのリストは、LFS\docs\Commands.txt で確認できます。

Options & Miscellaneous

/run        [scriptname]    - スクリプトを実行する(data\script\scriptname.lfs),
                              例:"/run myScript", "/run myFolder\myScript"
/say        [message]       - チャットを入力するのと同じです
/echo       [text]          - テキストを表示する(ローカル画面のみ)
/fov        [degrees]       - 視野
/ff         [0-200]         - フォースフィードバックの強度
/wheel_turn [degrees]       - コントローラーの回転角を指定する
/autoclutch [0-1]           - オートクラッチのON/OFF切り替え
/shifter    [auto/sequential/shifter]    - シフターの種類
/view       [fol/heli/cam/driver/custom] - 視点の選択
/view       [save/reload]  - 現在のカスタム視点を保存/リロードする

Binding & Executing Commands

Binding
/axis   [axis]   [function] - e.g. "/axis 2 throttle"   (to unbind, use -1)
/invert [0/1]    [function] - e.g. "/invert 1 brake"    
/button [button] [function] - e.g. "/button 5 shift_up" (to unbind, use -1)
/key    [key]    [function] - e.g. "/key Q handbrake"
/ctrlf  [num]    [text]     - change shortcut text, e.g. "/ctrlf 1 hello"
/altf   [num]    [text]     - change shortcut text, e.g. "/altf 1 bye"

Simulating key presses
/press [key]                - simulate key press
/shift [key]                - SHIFT + key
/ctrl  [key]                - CTRL + key
/alt   [key]                - ALT + key

パラメータ リファレンス

/button と /key コマンドの機能名
steer_left, steer_right, steer_fast, steer_slow
throttle, brake, shift_up, shift_down
clutch, handbrake, left_view, right_view, rear_view
horn, flash, reset, pit_speed, tc_disable, zoom_in, zoom_out
reverse, gear_1 - gear_7, ctrl_f1 - ctrl_f12, ignition

コントローラーのボタンの番号を調べるには、オプション>コントロールと進んでください。
そして問題のボタンを押す。画面右上にボタン番号と現在割り当てられている機能が表示されます。
画面右中段に割り当てられた機能が表示されます。

/axis と /invert コマンドの機能名
steer, combined, throttle, brake
lookh, lookp, lookr
clutch, handbrake, shiftx, shifty

キーを押すコマンド(press / shift / ctrl / alt)のパラメータ
Letters A to Z
Numbers 0 to 9
F1 to F12
up, down, left, right
space, enter, esc, tab
less, more (< >) or (, .) depending on your locale

一般的な注意点として、コマンドリストを見て気づいたかもしれませんが、現在のところ、他のスクリプトコマンドをボタンにバインドすることは不可能です。幸いなことに、テキストのショートカットキー(Ctrl+F1~F12、Alt+F1~F12)が使えるので、/ctrlf 1 /say hello/say hello をCtrl+F1にバインド)と /button 1 ctrl_f1 (Ctrl+F1押下をボタン#1へ)を使えばいいのである。しかし、これはスクリプトのためにショートカットキーのいくつかを手放さなければならないことを意味しますが、利用可能なショートカットが全部で32個(スクリプトでバインドできるのは24個)あることを考えれば、実際には問題ないはずです。

"F9 > F10 > F11 > F12 > Off" 切り替え

Shortcut keys used: Ctrl+F12

このスクリプトの基本的な考え方は、1つのボタン(例えばホイールのボタン)でF9-F12メニューを循環させたいというものです。これを実現するために、5つのスクリプトと autoexec.lfs のエントリが必要です。

このスクリプトでは、Ctrl+F12 のショートカットを使い、ボタン #0 (コントローラーのどのボタンでも) をバインドして実行させます。/press コマンドを複数回使用することで、事前に手動でメニューを開いていた場合でも、メニューが正しく表示されるようになります。例えば、F11メニューがすでに開いていて、F9キーを押さずに viewF11.lfs を実行すると、代わりにF11メニューが閉じてしまいますが、これはレース中に絶対に起こってほしくないことです。

次のように動作します:

  1. Button 0 -> Ctrl+F12 -> viewF9 -> press F9 + rebind Ctrl+F12 to run viewF10
  2. Button 0 -> Ctrl+F12 -> viewF10 -> press F10 + rebind Ctrl+F12 to run viewF11
  3. Button 0 -> Ctrl+F12 -> viewF11 -> press F11 + rebind Ctrl+F12 to run viewF12
  4. Button 0 -> Ctrl+F12 -> viewF12 -> press F12 + rebind Ctrl+F12 to run viewOff
  5. Button 0 -> Ctrl+F12 -> viewOff -> turn off menu + rebind Ctrl+F12 to run viewF9
...

viewF9.lfs

/press F10
/press F9
/ctrlf 12 /run viewF10

viewF10.lfs

/press F9
/press F10
/ctrlf 12 /run viewF11

viewF11.lfs

/press F9
/press F11
/ctrlf 12 /run viewF12

viewF12.lfs

/press F9
/press F12
/ctrlf 12 /run viewOff

viewOff.lfs

/press F10
/press F9
/press F9
/ctrlf 12 /run viewF9

autoexec.lfs

/button 0 ctrl_f12
/ctrlf 12 /run viewF9

Indicator Control

Shortcut keys used: Ctrl+F10, Ctrl+F11

この例では、2つのボタンでインジケータを快適にコントロールする簡単な方法を紹介します。必要なのは3つのスクリプトと autoexec.lfs へのいくつかの入力、ショートカットキーはCtrl+F10とF11を使用します。インジケータは次のように動作します。左ボタンを1回目に押すと左のインジケータが作動し、2回目に押すと解除されます。右ボタンはその逆です。左と右の切り替えも可能です。使いやすいように、スクリプトは現在選択されているモードを示す緑色の矢印をチャットエリアに出力します。

同じロジックを使い、別のスクリプトを追加することで、第3のボタンによるハザードの制御も簡単に実装できる。

indicateLeft.lfs

/press 7
/ctrlf 11 /run indicateStop
/ctrlf 10 /run indicateRight
/echo ^2‹ ‹ ‹

indicateRight.lfs

/press 8
/ctrlf 10 /run indicateStop
/ctrlf 11 /run indicateLeft
/echo ^2› › ›

indicateStop.lfs

/press 0
/ctrlf 10 /run indicateRight
/ctrlf 11 /run indicateLeft
/echo ^8Off

autoexec.lfs

/button 16 ctrl_f11
/button 18 ctrl_f10 
/ctrlf 10 /run indicateRight
/ctrlf 11 /run indicateLeft

オートシフター設定 (Logitech G25/G27 ユーザー向け)

Shortcut keys used: None

現在選択されている車で使用されているシフトメカニズム用にコントローラのバインディングを自動的に調整するには、以下のように既存の road.lfs, sequential.lfs, paddle.lfs を変更すればよいのです。

オプションで、フリーシフター/パドルボタンを使いたいもののリバインドを追加することも可能です。例えば、シフターユニットを使うときは、右のパドルがハンドブレーキ、左のパドルがホーンになり、パドルを使うときは、シーケンシャルスティックを引くとハンドブレーキ、押すとホーンが鳴るという具合です。こうすることで、G25の手の届きやすい数少ないボタンの機能を最大限に活用できます。このリ・バインディングは、サンプルスクリプトには含まれていません

road.lfs

/button 8 gear_1
/button 9 gear_2
/button 10 gear_3
/button 11 gear_4
/button 12 gear_5
/button 13 gear_6
/button 14 reverse

/shifter shifter
/autoclutch 0

/echo Shiftmode: H-Gate

sequential.lfs

/button 9 shift_up
/button 8 shift_down

/shifter sequential
/autoclutch 0

/echo Shiftmode: Sequential

paddle.lfs

/button 4 shift_up
/button 5 shift_down

/shifter sequential
/autoclutch 1

/echo Shiftmode: Paddles