SharedKeyAssignとは主として飛行機においてピッチ・ロールやギア操作、射撃等の基本的な操作について、各人があらかじめ設定ファイルを用意することでどの機体でも一人ひとりが自分にあったキー割り当てで操作できるようにする仕組みである。
まず、前提としてライブラリフォルダを作り、LUA_PATHを設定する必要がある。これの方法についてはライブラリを参照すること。ここで、仮にライブラリフォルダをRigidChips/Lib/とすると、Lib/shared/SharedKeyAssign.luaというファイルを作成し、以下のように
SharedKeyAssign.割り当てる操作 = キー番号
の形でキー割り当てを記述する。 参考用雛形ファイルSharedKeyAssign.lua
SharedKeyAssign = {}; SharedKeyAssign.PitchUp = 1; SharedKeyAssign.PitchDown = 0; SharedKeyAssign.RollLeft = 2; SharedKeyAssign.RollRight = 3; SharedKeyAssign.YawLeft = 4; SharedKeyAssign.YawRight = 6; SharedKeyAssign.PowerUp = 5; SharedKeyAssign.PowerDown = 8; SharedKeyAssign.Gear = 10; SharedKeyAssign.ModeChange = 14; SharedKeyAssign.Fire = 12; SharedKeyAssign.Shift = 16; SharedKeyAssign.Option1 = 9; SharedKeyAssign.Option2 = 10; SharedKeyAssign.Option3 = 11; SharedKeyAssign.Option4 = 15; SharedKeyAssign.UseAnalog = 1; SharedKeyAssign.AnalogPitch = 1; SharedKeyAssign.AnalogRoll = 0; SharedKeyAssign.AnalogYaw = 5; SharedKeyAssign.AnalogPower = 3; SharedKeyAssign.AnalogPitchSign = -1; SharedKeyAssign.AnalogRollSign = -1; SharedKeyAssign.AnalogYawSign = 1; SharedKeyAssign.AnalogPowerSign = 1; SharedKeyAssign.PitchFunc = function() return _ANALOG(1)/-1000; end SharedKeyAssign.RollFunc = function() return _ANALOG(0)/1000; end SharedKeyAssign.YawFunc = function() return _KEY(6) - _KEY(4); end SharedKeyAssign.PowerFunc = function()--出力はキーで十分 return _KEY(SKA.PowerUp) - _KEY(SKA.PowerDown); end SKA = SharedKeyAssign;
ここで、PitchUp〜Option4までが通常のキー操作の割り当てである。
名称 | 役割 |
PitchUp | 機首を上げる |
PitchDown | 機首を下げる |
RollLeft | 左にロールする |
RollRight | 右にロールする |
YawLeft | 左にヨーする |
YawRight | 右にヨーする |
PowerUp | エンジン出力を上げる |
PowerDown | エンジン出力を下げる |
Gear | ギアを出し入れする |
ModeChange | 複数モードを持つ機体でのモード切替 |
Fire | 火器発射 |
Shift | 同時押しで特殊操作を持つ機体での同時押しキー |
Option | あまったキーをとりあえず書く |
!!以下のUseAnalog〜AnalogPowerSignを用いる方法は旧式化し、互換性のためにのみ残されています!!
また、UseAnalog〜AnalogPowerSignまではアナログスティックを使用する場合のキー操作 の割り当てである
名称 | 役割 |
UseAnalog | アナログ操作が可能な機体でアナログスティックを使うなら1,使わないなら0 |
AnalogPitch | ピッチ操作に使うアナログスティックの番号 |
AnalogRoll | ロール操作に使うアナログスティックの番号 |
AnalogYaw | ヨー操作に使うアナログスティックの番号 |
AnalogPower | 出力操作に使うアナログスティックの番号 |
AnalogPitchSign | ピッチ操作のアナログ軸の符号。スティック操作と機体の動きが合うように設定する |
AnalogRollSign | ロール操作のアナログ軸の符号。スティック操作と機体の動きが合うように設定する |
AnalogYawSign | ヨー操作のアナログ軸の符号。スティック操作と機体の動きが合うように設定する |
AnalogPowerSign | 出力操作のアナログ軸の符号。スティック操作と機体の動きが合うように設定する |
!!ここまで旧式化下部分!!
アナログ入力を用いるためには、上記のコードで示されたPitchFunc〜PowerFuncの関数を用います。これらの関数はそれぞれの角速度が正となる方向、すなわち、ピッチアップ、左ロール、右ヨー、出力上昇の方向への入力が正となるように、入力に応じて-1〜1の実数を返すように設定します。モデル側でこれらの関数を_ANALOGと同様に扱うことによって符号や軸の番号にとらわれないアナログ設定が可能となります。