ヒエラルキーの右クリックメニューから RPG -> NPC をクリックしてください
NPCオブジェクトは必ず Rpg/NPC オブジェクトの直下に配置してください
NPCオブジェクトの名前はスクリプト制御のIDとして使用されます
そのため重複しないオブジェクト名を設定してください
RpgCharacterImage コンポーネントの Chipset プロパティにキャラのチップセットをドラッグ&ドロップして設定してください
チップセットの作り方に関しては『チップセット』のページをご覧ください
チップセットを設定後、必要に応じて各プロパティを調整して表示するチップの設定を行ってください
エディタ上で設定した位置と向きが初期設定となります
方向を設定するには RpgCharacterImage コンポーネントの Direction プロパティを調整してください
DeveloperMemo | 開発者用メモ (製品版では無視されます) |
---|---|
CharaImage | キャラのイメージ オブジェクトの参照 |
Baloon | バルーン オブジェクトの参照 |
Floor | 所属フロア |
Depth | 深度 |
IsForceStepping | 停止時でも歩行アニメーションを再生する |
Behaviour | NPCの挙動タイプ |
MoveRadius | 初期位置を中心とする移動半径 (セル単位) |
MoveSpeed | 移動速度 (秒間移動セル数) |
StopTime | 移動、又は、回転後の待ち時間。min ~ max の間のランダムな秒数で待機する |
SearchDistance | プレーヤーを発見する距離 (セル単位) |
MoveSpeedAtFound | プレーヤーを発見した時の移動速度 (秒間移動セル数) |
StopTimeAtFound | プレーヤーを発見した時の移動後の待ち時間。min ~ max の間のランダムな秒数で待機する |
ForeverUpdate | 会話中 (スクリプト実行中) でも行動を続行させる |
DisplayName | スクリプトの \B[] エスケープコマンドに対応するキャラの表示名 |
ActionScript | プレーヤーがNPCに向かってアクションボタンを押したときに実行するスクリプトのパス |
TouchedScript | プレーヤーとNPCが接触したときに実行するスクリプトのパス |
StopTimeOnTouched | 接触イベント終了後の待機時間。マイナス値を設定すると無視されます |
OnedariScript | おねだりのときに実行するスクリプトのパス |
BaishunScript | 売春のときに実行するスクリプトのパス |
NPCオブジェクトの Behaviour プロパティからNCPの挙動を設定することができます
各挙動タイプの動きは以下のとおりです
RandomMove | ランダムに移動します |
---|---|
ApproachPlayer |
プレーヤーとの距離が近くなるとプレーヤーを追跡しようとします プレーヤーとの距離が離れているときはランダムに移動します 但し、RandomMove と違い移動可能半径は指定できず、移動可能な場所なら何処へでも移動します 追跡時はプレーヤーに向かって直線で移動しようとします 障害物は考慮せずに動くため地形によっては障害物に嵌る事があります |
LeavePlayer |
プレーヤーとの距離が近くなるとプレーヤーから逃げようとします プレーヤーとの距離が離れているときはランダムに移動します 但し、RandomMove と違い移動可能半径は指定できず、移動可能な場所なら何処へでも移動します 追跡時はプレーヤーに向かって直線で移動しようとします 障害物は考慮せずに動くため地形によっては障害物に嵌る事があります |
TurnCW | その場で時計回りに回転します |
TurnCCW | その場で反時計回りに回転します |
TurnHorizontal | その場で左右に方向転換を繰り返します |
TurnVertical | その場で前後に方向転換を繰り返します |
Stay | その場で待機し何もしません |
RestoreDirection | その場で待機し何もしません。Stay とは違いプレーヤーが話しかけるとプレーヤーの方向を向きますが、会話が終わると初期方向へ向きを戻します |
FixedDirection | その場で待機し何もしません。プレーヤが話しかけてもプレーヤーの方向を向きません |
挙動ごとに使用するパラメータは異なります
挙動と関連するパラメータは以下のとおりです
パラメータ | RandomMove | ApproachPlayer | LeavePlayer | TurnCW | TurnCCW | TurnHorizontal | TurnVertical | Stay | RestoreDirection | FixedDirection | 説明 |
---|---|---|---|---|---|---|---|---|---|---|---|
IsForceStepping | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | 立ち止まっている最中も脚踏むアニメーションを続けるか |
MoveRadius | ◯ | × | × | × | × | × | × | × | × | × | 初期位置を中心とした移動可能な半径 (セル単位) |
MoveSpeed | ◯ | ◯ | ◯ | × | × | × | × | × | × | × | 秒間移動タイル数。挙動タイプが ApproachPlayer 又は LeavePlayer の場合、プレーヤーを発見してない時の移動速度となる |
StopTime | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | × | × | × | 移動後、又は、方向転換後の停止時間。min ~ max の間のランダムな秒数で待機する |
SertchDistance | × | ◯ | ◯ | × | × | × | × | × | × | × | プレーヤーを発見する距離 (セル単位) |
MoveSpeedAtFund | × | ◯ | ◯ | × | × | × | × | × | × | × | プレーヤーや発見しているときの秒間移動タイル数 |
StopTimeAtFound | × | ◯ | ◯ | × | × | × | × | × | × | × | プレーヤーを発見しているときの移動後停止時間。min ~ max の間のランダムな秒数で待機する |
ForeverUpdate | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | × | × | × | 会話中 (スクリプト実行中) でも行動を続行させる |
NPCは4種類のイベントがあります
アクション イベント | ActionScript | プレーヤーがNPCに向かってアクションボタンを押したときに発生するイベント |
---|---|---|
接触イベント | TouchedScript |
プレーヤーとNPCが接触した時に発生するイベント 移動系のNPCの場合はプレーヤーが立ち止まっているときでもこのイベントが発生することがあります ※ 接触とはプレーヤーとNPCが同じタイルに入ろうとした瞬間をいいます。隣に立つだけでは接触にはなりません |
おねだりイベント | OnedariScript | プレーヤーがメニュー画面から『おねだり』を選択した時に発生するイベント |
売春イベント | BaishunScript | プレーヤーがメニュー画面から『売春』を選択した時に発生するイベントです。 |
イベントを設定するには各イベントのプロパティにスクリプトのパスを設定してください
スクリプトのパスは [アセットバンドル名]/[スクリプト名]<[*ラベル名]> の形で指定します
StopTimeOnTouched プロパティに 0 以上の値を設定すると接触イベント終了後に指定した秒数その場で待機します
挙動タイプに ApproachPlayer を使用しているときに連続でイベントが発生するのを防ぐときに使用します
ヒエラルキーからバルーンを設置するNPCオブジェクトを選択し右クリックメニューを開きます
RPG -> CharaBaloon をクリックしてバルーンオブジェクトを追加します
注意点:
バルーンオブジェクトはNPCオブジェクトの子でなければなりません
NPCオブジェクトの Baloon プロパティにバルーンのオブジェクトの参照を設定してください
(上の操作でバルーンを追加した場合は自動的に適切な配置と設定が行われます)
バルーンオブジェクトの Chipset プロパティにバルーンのチップセットをドラッグ&ドロップで設定してください
チップセットの作り方に関しては『チップセット』のページをご覧ください
チップセットを設定後、必要に応じて各プロパティを調整して表示するチップの設定を行ってください
普段は非表示にしておきたい場合はバルーンオブジェクトを非アクティブにしてください