■チュートリアル:共有ライブラリの詳細と作成 |
ここでは、まず共有ライブラリの詳細を学んだ後、実際に共有ライブラリを作成します。
類似のチュートリアルに、「サブルーチン」「マクロ」「マジックブリット」がありますので、そちらもご覧下さい。
それぞれの違いについては「演出の再利用」をご覧下さい。 |
|
■概要 |
sketchの共有ライブラリは、定義されているRSDの外部から呼び出せるサブルーチンです。
定義自体は、通常のサブルーチンと全く同じです。
呼び出し元のシナリオは、そのシナリオ内(通常は先頭です)で、呼び出したいサブルーチンがあるRSDを共有ライブラリとして登録しなければなりません。
登録されたシナリオ(RSD)は、そのシナリオが読み込まれる際に同時によみこまれ、内部で結合されます。そのため、次の制限があります。 |
|
共有ライブラリに使用されるサブルーチンのブロックIDは、それが同時に読み込まれるRSD内で一意に識別できるIDでなければなりません。実際の運用にあたっては、余計なトラブルを避けるためにも、ゲーム全体で一意に識別できるIDを使用することをおすすめします。 |
|
共有ライブラリをネストさせることはできません。共有ライブラリが定義されているRSD上で、共有ライブラリの指定を行わないでください。 |
|
共有ライブラリの実体は、(現在、8個まで)同時に読み込まれるシナリオファイルです。従って、1つの共有ライブラリのサイズを大きくしたり、多くの共有ライブラリを読み込むと、パフォーマンスに影響します。
ジャンルや時系列に従って、いくつかにグループ化した共有ライブラリを読み込み時に組み合わせることで、読み込み量を最小にするのが賢いやり方です。
|
|
■共有ライブラリの作成 |
このチュートリアルでは、共有ライブラリを作成します。
共有ライブラリの作成自体は、普通のシナリオファイルの作り方と全く同じです。
通常はどこへもリンクされていないノードを定義ノードに作成して、共有ライブラリとして使用するのが良いでしょう。 |
|
最初に、共有ライブラリとして使用するノードを、定義ノードの下に作りましょう。
プロジェクトエディタの右上(ノードビュー)で、作成したい場所を、SHIFT+左クリックして下さい。 |
|
|
↓ |
|
|
すると、ノードのプロパティが開きます。
作成するのは通常ノードなので、captionに「LIBサンプル」とだけ入力しましょう。captionに指定された名称が、このノードの名前になります。
この名前は、そのままRLDやRSDのファイル名に使われますから、ファイル名に使用できない文字を使用してはいけません。 |
|
|
OKを押すと、ノードが作られます。
このノードはどこからも呼び出されず、どこも呼び出さないので、ノードビュー上で独立しています。
それでは、このノードをダブルクリックして、演出ビューを開き、適当なサブルーチンを定義しましょう。サブルーチンIDは、100000(10万)に、名称は、「共有ライブラリサンプル:0301CG表示」としましょう。 |
|
|
サブルーチンの定義の仕方がわからない場合は、「サブルーチンの詳細と定義」を参照して下さい。 |
|
ノードを作ったら、プロジェクトをセーブしておきましょう。 |
|
|
|
サブルーチンの定義が終わると、左図のようになります。
今回はテストもしたいので、中身に301を表示するよう指定してあります。
予め301番のダミーCGを作成しておいて下さい。 |
|
|
|
|
■共有ライブラリの呼び出し |
このチュートリアルは、上記で作成した共有ライブラリを呼び出します。
共有ライブラリの呼び出し手順は、サブルーチンの呼び出しとほぼ同じですが、呼び出すRSDの中で共有ライブラリを使用することを明示的に指定しなければなりません。 |
|
まず、共有ライブラリを使用することを、明示的に示します。
通知したい場所(通常は、RSDの先頭にあるsystemコマンド群の直後)で、右クリックして「システム設定」-「共有ライブラリの設定」を実行します。 |
|
|
するとダイアログが開きますので、一番上にチェックを入れて、参照ボタンを押します。 |
|
|
するとさらに、ノードを選択するダイアログが開きますので、使用したい共有ライブラリ用ノードを選択して、OKを押して下さい。
今回は、上で作成した「LIBサンプル」を共有ライブラリとして読み込みます。 |
|
|
以上で、このRSD中で、「LIBサンプル」が利用できるようになります。
全部で8個の共有ライブラリを読み込むことが出来ます。
ここで読み込まれた共有ライブラリは、シナリオの変更で、実行されるRLDが変わるタイミングで、すべてメモリから破棄されます。
|
|
|
共有ライブラリの呼び出しは、サブルーチンとほとんど同じです。
呼び出したい場所を右クリックして、呼び出しコマンドを実行して下さい。 |
|
|
|
|
サブルーチン呼び出しと唯一異なる点は、ここで「共有参照」を押すことです。
|
|
|
すると、共有ライブラリを含む一覧が表示されますので、呼び出したい共有ライブラリ(ここでは、LIBサンプル)を指定して下さい。
|
|
|
すると、LIBサンプル中のサブルーチンの一覧が表示されますので、呼び出したいサブルーチンを選択して、OKを押して下さい。
|
|
|
これで、LIBサンプル中の301表示が呼び出されるようになります。
|
|
|
では、テストしてみましょう。 ただし、呼び出した後、なにもしないとすぐ終わってしまうので、記述君に、「おわり。」と表示させてみました。
同じコマンドを入力するときは、CTRL+C/CTRL+Vを使うと便利です。
この場合ですと、00007の記述コマンドでCTRL+C(コピー)を行い、00009で、CTRL+V(ペースト)を行うと、記述コマンドが複製されます。
その後、00009行目の記述コマンドをダブルクリックして、メッセージを「終わり。」に書き換えます。
いつものようにセーブして、デバッグ実行すると、hello, world!を表示した後、301が表示されると思います。
なお、この時点で、警告音が鳴るだけで何も起こらない場合、要求した共有ライブラリ内のサブルーチンが呼び出しに失敗しています。共有ライブラリ設定と、呼び出しサブルーチンIDを確認して下さい。
|
|
|