「Papyrus関数追加サンプル」の編集履歴(バックアップ)一覧に戻る

Papyrus関数追加サンプル - (2013/06/30 (日) 23:43:58) の編集履歴(バックアップ)


執筆中です。

  • サンプル:
    #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (ExampleAddFunctionBySKSE)
    (動かした方は中にある readme.txt を参照のこと)

目的

SKSE プラグインによって Papyrus で使える関数を追加する最小サンプルを提供することが目的です。

関数の追加方法を覚えることで、適宜、用途・要求速度などの状況に応じて Papyrus と C/C++ とを組み合わせてスクリプトが書けるようになります。

前提

SKSEプラグイン開発環境構築手順にて、skse 本体のコンパイルができる状態にあることが前提となります。

プラグインのサンプルプロジェクトである plugin_example を元に Papyrus 関数を追加するよう書き換えます。

手順概要

まずは作業手順についてですが、以下の手順を踏みます。

  1. CK を使って追加する関数を Papyrus スクリプトで定義し、psc/pex ファイルを用意する。
  2. plugin_example プロジェクトを準備する。
  3. 追加関数を実装する。
  4. 追加関数を Papyrus 関数として使えるよう登録する実装を追加する。
  5. dll をコンパイルし、配置する。
  6. skse_loader.exe で Skyrim を起動する。

細かく1つ1つ順を追って説明していきます。

手順詳細

psc/pex ファイルの準備

CK を起動し、適当なオブジェクトを対象にしていいのでスクリプトを作成します。

サンプルプラグインの名前は「Calculator」とします。また、Sum 関数は v1 と v2 の値を足した値を返すこととします。要はよくある計算機の例です。

以下、ソースの事例です。

Scriptname Calculator

int Function Sum(int v1, int v2) global native 

ポイントは、

  • native と書いてあること。
  • 関数本体が無いこと。

です。

必要最小限ということで今回は未 extends/global の関数を事例に挙げますが、extends/global 以外の関数も定義可能です。

このソースを保存すると普通にコンパイルでき、pex ファイルが作成されるので「Skyrim\Data\Scripts」フォルダを確認してみて下さい。psc ファイルは「Skyrim\Data\Scripts\Source」フォルダにあります。

プロジェクトの準備

追加関数の実装

Papyrus 関数として使えるよう登録する実装

コンパイルとできた dll の配置

目安箱バナー