RPGツクール規格の素材をそのまま使用することができます
画像サイズは4の倍数になるようにしてください (半端なサイズの場合は右下に余白を入れる)
チップのサイズに制約はありませんが、各チップのサイズは統一してください
1つの画像に複数種類のキャラを並べる事ができます
キャラの向きは単方向、2方向、4方向、8方向の4種類が仕様できます
![]() |
![]() |
![]() |
素材画像を Assets/AssetBundles/Maps/Character/Sprites フォルダにドラッグ&ドロップしてください
次に、追加した画像を選択してインスペクターから以下の項目を設定してください
設定が完了したら『Apply』ボタンを押して変更を確定してください
TextureType | Sprite (2D and UI) |
---|---|
SpriteMode | Multiple |
PixcelsPerUnit | 32 |
GeneratePhysicsShape | Off |
FilterMode | Point (no filter) |
Compression | HighQuarity |
次に『SpriteEditor』ボタンを押してスプライト編集画面を開いてください
編集画面よりメニューバーの『Slice』をクリックして以下の項目を設定してください
値を設定したら左下の『Slice』ボタンをクリックしてください
最後に『Apply』ボタンをクリックしてください
※ 画像に余白を入れている場合は Type を GridByCellSize にしてサイズ指定を使用してください
Type | Grid By Cell Count |
---|---|
Column & Row | 水平個数と垂直個数 |
Pivot | Bottom Center |
Assets/AssetBundles/Maps/Character/DirectionalAnimation フォルダで右クリックメニューを開いて
Create -> RpgMapEditor -> DirectionAnimationController
を選択してください
追加されたファイル(New DirectionalAnimationController)を管理しやすい名前にリネームしてください (半角英数字)
インスペクターを開き Animations 部分の「Drag a sprite sheet into ...」と書かれた部分に上で作成した素材画像をドラッグ&ドロップしてください
ドラッグ&ドロップを繰り返せば複数の素材画像を設定することも出来ます
チップが追加されたらそれぞれキャラ名を設定してください
リスト横の『〓』部分をドラッグすることで順番を入れ替える事ができます
不要なチップは選択した状態で右下の『-』ボタンを押せば削除できます
着衣とヌードが切替わるようなキャラの場合は全ての状態をキャラクターシートに含める必要があります
キャラクターシート内に無いものはスクリプト等から切替えることができなくなる点に注意してください
Assets/AssetBundles/Maps/Character フォルダ内の適当なNPCプレハブをコピーしてください
コピーしたプレハブのファイル名をキャラクター名にリネームしてください (半角英数字)
プレハブをダブルクリックで開き以下のプロパティーを設定してください
DirAnimCtrl | 上で作成したキャラクターシートをドラッグ&ドロップ |
---|---|
PlayMode | PingPong (3フレーム アニメーションの場合) |
AnimationSpeed | 1タイル移動するときのアニメーションフレーム数 |
StopFrameIndex | 1 (3フレーム アニメーションの場合) |
マップシーン内の RpgMap/NPC オブジェクトの子になるようにNPCプレハブをドラッグ&ドロップで追加してください
必要に応じて追加したプレハブ オブジェクトの名前を調整してください
移動ツールで設置したい場所に移動させてください
インスペクターの Behaviour プロパティからNPCの挙動を変更することができます
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 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | × | × | × | イベント中(ADV再生中など)も行動を続行するか |
NPCは2種類のイベントがあります
アクション イベント | プレーヤーがNPCに向かってアクションボタンを押したときに発生するイベント |
---|---|
接触イベント |
プレーヤーとNPCが接触した時に発生するイベント。移動系のNPCの場合はプレーヤーが立ち止まっているときでもこのイベントが発生することがあります ※ 接触とはプレーヤーとNPCが同じタイルに入ろうとした瞬間をいいます。隣に立つだけでは接触にはなりません |
NPCにイベントを設定するにはインスペクターから実行させるスクリプトのパスを設定します
アクション イベントの場合は ActionScript プロパティーにパスを設定してください
接触イベントの場合は TouchedScript プロパティーにパスを設定してください
StopTimeOnTouched に 0 以上の値を設定すると接触イベント終了後に指定した秒数その場で待機します
挙動タイプに ApproachPlayer を使用しているときに連続でイベントが発生するのを防ぐときに使用します