Difference between revisions of "LlCreateCharacter/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 8: Line 8:
|p1_name=options
|p1_name=options
|p1_desc=Character configuration options.
|p1_desc=Character configuration options.
|constants={{LSL_Constants/llCreateCharacter}}
|constants={{LSL_Constants/llCreateCharacter/ja}}
|caveats=(subject to change)
|caveats=(subject to change)
*オブジェクトごとに llCreateCharacter を1回だけ使用する必要があり、複数回呼び出しても効果はありません。
*オブジェクトごとに llCreateCharacter を1回だけ使用する必要があり、複数回呼び出しても効果はありません。

Revision as of 10:37, 22 November 2023

要約

関数: llCreateCharacter( list options );

オブジェクトに含まれるスクリプトから、パスファインディング エンティティ(「キャラクター」と呼ばれる)を作成します。パスファインディング関数の使用を有効にするために必要です。

• list options Character configuration options.

デフォルトでは、キャラクターの形状は、リンクセットのサイズにほぼ一致する垂直なカプセルになります。このサイズはオプションリストを介して調整できます。リンクセットはメッシュプロジェクトで導入されたランドインパクトの計算システムを使用する必要があります。 既存のキャラクターで呼び出された場合、キャラクターサイズ以外の未指定のパラメータはデフォルトに戻ります(指定されていない場合、キャラクターサイズは変更されません)。これは、[llDeleteCharacter] を呼び出してから [llCreateCharacter] を呼び出す代わりに非常に強く推奨されます。サーバーへの負荷がはるかに少ないためです。

オプション デフォルト Range / Values 説明
CHARACTER_DESIRED_SPEED 1 6 [0.2, 40.0] 追跡速度(メートル毎秒)
CHARACTER_RADIUS 2 [0.125, 5.0] 衝突カプセルの半径を設定します。
CHARACTER_LENGTH 3 (0.0, 10.0] 衝突カプセルの長さを設定します。

値が半径の2倍に0.1mを加えたものより小さい場合、それは半径の2倍に0.1mに設定されます。

CHARACTER_ORIENTATION 4 VERTICAL VERTICAL, HORIZONTAL キャラクターの向きを設定します。
TRAVERSAL_TYPE 7 TRAVERSAL_TYPE_SLOW TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, TRAVERSAL_TYPE_NONE 100%歩行可能でない地形でのキャラクターの移動速度を制御します。速く移動する(例:道路を横断する猫)か遅く移動する(例:沼地を走る車)かを指定します。

_FASTまたは_SLOWを使用するには、CHARACTER_TYPEを指定する必要があります。

CHARACTER_TYPE 6 CHARACTER_TYPE_NONE CHARACTER_TYPE_A, CHARACTER_TYPE_B, CHARACTER_TYPE_C, CHARACTER_TYPE_D, CHARACTER_TYPE_NONE このキャラクターで使用される歩行可能係数を指定します。
CHARACTER_AVOIDANCE_MODE 5 AVOID_CHARACTERS | AVOID_DYNAMIC_OBSTACLES 組み合わせ可能なフラグ: AVOID_CHARACTERS, AVOID_DYNAMIC_OBSTACLES, AVOID_NONE キャラクターが他のキャラクターを避けないように、動的な障害物(比較的速い移動オブジェクトおよびアバター)を避けないように、またはその両方を指定できます。これは肯定的な意味でフレーム化されています([CHARACTER_AVOIDANCE_MODE, AVOID_CHARACTERS]は他のキャラクターを避けるがエージェントや動く車両を避けないキャラクターを作成します)。このパラメータをAVOID_NONEに設定すると、キャラクターはいずれのカテゴリも避けません。
CHARACTER_MAX_ACCEL 8 20 [0.5, 40.0] キャラクターの最大加速度。
CHARACTER_MAX_DECEL 9 30 [0.5, 60.0] キャラクターの最大減速度。
CHARACTER_DESIRED_TURN_SPEED 12 6 [0.02, 40.0] キャラクターの旋回時の最大速度--注意:これは緩く制約されています(つまり、特定の条件下でキャラクターはより高い速度で旋回する可能性があります)
CHARACTER_MAX_TURN_RADIUS 10 1.25 [0.1, 10.0] CHARACTER_DESIRED_TURN_SPEEDで移動する際のキャラクターの旋回半径
CHARACTER_MAX_SPEED 13 20 [1, 40.0] キャラクターの最大速度。動的な障害物を回避するときやTRAVERSAL_TYPE_FASTモードで低い歩行可能なオブジェクトを通過するときの速度に影響します。
CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES 14 TRUE TRUE or FALSE TRUEは既存の動作に一致します。FALSEに設定すると、パスファインディングのパフォーマンスが低い場合にキャラクターは失われた時間を取り戻そうとはしません。これにより、より信頼性のある移動が提供されるかもしれません(ただし、よりスタッタリーに見えるかもしれません)。
CHARACTER_STAY_WITHIN_PARCEL 15 Depends* TRUE or FALSE FALSEは従来の動作に一致します。TRUEに設定すると、パーセルの境界を片側の障害物として扱います(再入ることはできますが、自分自身では出られません)。

警告

(subject to change)

  • オブジェクトごとに llCreateCharacter を1回だけ使用する必要があり、複数回呼び出しても効果はありません。
  • 1つのスクリプトには llCreateCharacter 呼び出しが含まれ、他のスクリプトがそれを使用して他のパス関数を利用できます。
  • llCreateCharacter の状態は、ステートの変更、スクリプトのリセット、および再配置にも生存します。
  • llCreateCharacter は常にすべてのパス関数で必要です。
  • オブジェクトがキャラクターになると、その 物理ウェイト は固定され、15になります。
  • 同じオブジェクトに複数のスクリプトが含まれている場合、特に問題は発生しません。
  • 複数のスクリプトが同じオブジェクト(異なるプリムまたは同じプリム)で競合するパス関数を使用する場合、ランダムに優先されます(明らかに)。
  • CHARACTER_MAX_SPEED - PATHBUG-42を参照 - テストでは、10m/sの所望の速度がほとんどの用途に十分であり、より高い速度は予期しない結果を生む可能性があります(特に狭い空間を移動したり、急なターンをしたりする場合)。 2012年3月15日
  • CHARACTER_MAX_ANGULAR_ACCEL min = 1.5708
  • キャラクターの形状はカプセル(球形の両端がある円柱)で、長さ(先端から先端まで)と円形の断面の半径があります。これら2つのサイズパラメータはそれぞれ CHARACTER_LENGTH および CHARACTER_RADIUS で制御されます。
  • キャラクターの実際の「長さ」は、半径の2倍に0.1mを加えたものより小さくすることはできませんが、それより低い値を指定することは歓迎されます(ただし0より大きい)。 スクリプトはクレームを言うべきではありません。
  • 通常、カプセルは垂直に向けられています。キャラクターを水平にしたい場合は、[CHARACTER_ORIENTATION, HORIZONTAL] を使用してください。
    • 可能な限り垂直のカプセルを使用してください。水平のカプセルは垂直のカプセルよりも簡単に動かなくなることがあります。
  • プリムからスクリプトを削除しても、パス動作は停止しません。ただし、キャラクターがエラー状態に遭遇すると、エラー処理を取得する元のスクリプトがないため、回復できません。アクティブに使用されているキャラクターからスクリプトを削除することはお勧めしません。 パスコ*マンドを停止するには、llExecCharacterCmd(CHARACTER_CMD_STOP, [])を使用してください。
  • ルートプリムの位置は、キャラクターの表面上の高さを決定します。キャラクターが表面の下に沈んだり、表面から高すぎたりする場合は、ルートプリムの相対位置をリンクセットの残りに調整します(またはキャラクターの見かけの高さを制御するために不可視の新しいルートプリムを作成します)。
  • CHARACTER_STAY_WITHIN_PARCEL のデフォルト値は CHARACTER_TYPE に依存します。

サンプル

create_character()
{
//  Clear any previous character behaviors
    llDeleteCharacter();

//  MAX_SPEED is @ 20 by default
    llCreateCharacter([ CHARACTER_MAX_SPEED, 25,
                        CHARACTER_DESIRED_SPEED, 15.0]);
}

patrol_around(vector targetPos)
{
    list points = [targetPos + <5, 0, 0>, targetPos - <5, 0, 0>];
    llPatrolPoints(points, []);
}

default
{
    on_rez(integer start_param)
    {
        llResetScript();
    }

    state_entry()
    {
        create_character();
    }
 
    touch_start(integer num_detected)
    {
        patrol_around(llGetPos());
    }
}

特記事項

経緯

Date of Release 31/07/2012

Search JIRA for related Issues

脚注

  1. ^ 記事中の範囲は、 実数空間 に記載されているものです。

Signature

function void llCreateCharacter( list options );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。