ここではまず、「乗物のタイプ」を定義する。今回は、「llSetVehicleType(VEHICLE_TYPE_CAR)」と指定することで「自動車」タイプの乗物に登場してもらったが、「そり(SLED)」「ボート(BOAT)」「飛行機(AIRPLANE)」「気球(BALOON)」など5種類の乗物のタイプが他にも存在する。
今回選んだ「自動車」タイプは「地上」に沿って移動する。しかし、他の乗物のタイプでは、「水の上」を走ったり、「摩擦」や「偏向」といったあらかじめ設定されている物理力が働かなかったりする場合がある。このように、乗物のタイプを選ぶことによって、あるモードが使えたり、使えなくなったりする(それぞれのタイプに働く「力」については今後、都度説明することにする)。
フラグ | 値 | 説明 |
---|---|---|
VEHICLE_TYPE_NONE | 0 | 乗物の働きをOFFにする |
VEHICLE_TYPE_SLED | 1 | 慣性力が働き、地上に沿って動く簡易的な乗り物 |
VEHICLE_TYPE_CAR | 2 | 外部コントロールやタイマーイベント関数によって操作されたモーターを搭載し、地上に沿って進む乗り物 |
VEHICLE_TYPE_BOAT | 3 | 大きな摩擦と少しの角度偏向が働き、水の上をホバーする |
VEHICLE_TYPE_AIRPLANE | 4 | ホバーも傾斜もせず、揚力を直線偏向で代用して動く |
VEHICLE_TYPE_BALOON | 5 | ホバーや摩擦は働くが、偏向は働かない |
b)「llSetVehicleFlags()」
LSL Portalでの「llSetVehicleFlags()」の定義は次のようになっている。
それぞれの乗物のタイプによって、有効にするフラグが変わってくる。
フラグ | 値 | 説明 |
---|---|---|
垂直方向操作 | ||
VEHICLE_FLAG_NO_DEFLECTION_UP | 0x001 | 垂直方向への直線偏向を無効にする 例えば、地上を走る乗物が空に(垂直プラス方向に)飛び上がりそうになるのを防ぐ |
VEHICLE_FLAG_LIMIT_ROLL_ONLY | 0x002 | 垂直方向への直線速度を無効にする 例えば、乗物が上や下を向いても、垂直方向の移動速度に影響しないようになる →速度のついた上昇および下降時も車体または機体がバランスを戻し、その高さで直進する |
ホバー操作 | ||
VEHICLE_FLAG_HOVER_WATER_ONLY | 0x004 | ホバーの基準として水面のみを使う |
VEHICLE_FLAG_HOVER_TERRAIN_ONLY | 0x008 | ホバーの基準として地面の高さのみを使う(水がある場所では海底をホバーする) |
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT | 0x010 | ホバーの基準としてグローバルの高さ(Z軸の値)を使う |
VEHICLE_FLAG_HOVER_UP_ONLY | 0x020 | ホバーは上昇のみに適用され、下降は重力のみが働く |
モーター操作 | ||
VEHICLE_FLAG_LIMIT_MOTOR_UP | 0x040 | 空中(車がジャンプしたときなど)にいる間はモーターを無効にする |
マウスルック操作 | ||
VEHICLE_FLAG_MOUSELOOK_STEER | 0x080 | マウスルックで下向きへ方向転換しようとする |
VEHICLE_FLAG_MOUSELOOK_BANK | 0x100 | (バンク〈傾斜〉が設定されていれば)マウスルックした向きへバンクしようとする →マウスの方向に曲がる |
カメラ操作 | ||
VEHICLE_FLAG_CAMERA_DECOUPLED | 0x200 | 乗物の方向・回転とカメラ(視点)を分離(decoupled)させる →いくら乗物が回転しても自分の視点は回転しなくなる |