Papyrus による世界の創造 - Skyrim MOD 制作

石碑の移動 - 簡単な Papyrus サンプル群

最終更新: 2015-04-02 (木) 21:36:11 (2433d)

MOD 本体

fileExampleMoveObject.zip

  • example_move_object.esp
  • Scripts
    • ExampleMoveObject.pex
    • Source
      • ExampleMoveObject.psc

インストール方法

解凍して Data フォルダにコピーもしくは NMM での導入も可能です。

アンインストール方法

アンインストールは、導入したファイルを全て削除すれば完了です。Data フォルダを「Example」で検索すれば該当ファイルが全て検索できるので簡単です。

NMM で導入した場合は、NMM が全部やってくれます。

概要

CenterOnCell - coc(セル移動) コンソールコマンドにて部屋に行きます。

coc example

石碑をアクティベートすると石碑が1マス(128 ユニット)分、奥に移動します(移動は瞬間的です)。移動は1回だけではなく連続して行えます。

ExampleMoveObject スクリプトを作成し、石碑のスクリプトに割り当てています。

石碑の移動には ObjectReference.SetPosition メソッドを使っています。

以下、石碑を部屋の奥まで移動させたときのスクリーンショットです。

move_object.jpg

さらに移動させると石碑は部屋の外に出てしまいます。

スクリプト概要(ExampleMoveObject)

Scriptname ExampleMoveObject extends ObjectReference  

Event OnActivate(ObjectReference akActionRef)
	SetPosition(x, y - 128, z)
endEvent

ポイント

移動先を現在からの相対位置にするには x, y, z プロパティを使う

ObjectReference.SetPosition メソッドは、オブジェクトの位置を指定して移動させるメソッドです。

しかし、セル内の絶対座標系で位置を指定しなければなりません。

現在の位置からの移動量を指定して移動させるには、現在の位置を表す ObjectReference(オブジェクト参照) オブジェクトの x, y, z プロパティを利用します。