・SAORIとは

  ・里々でのSAORIの使い方

  ・SAORIの作り方



SAORIとは

 SAORIとは、ゴースト用の機能追加プラグインです。

 例えるなら「たたかう」「にげる」「どうぐ」しかコマンドが無かったキャラクターに「まほう」コマンドを使えるようにするみたいなもんで。
 それぞれのケアルだサンダーだパルプンテだってのはプログラマに作ってもらう必要があります。が、一度作った魔法は誰でも使いまわすことができます(特定ゴースト専用に作った魔法は別)。

 現在、どんな魔法=SAORIがあるかはさおこれが詳しいです。
 今すでに誰かが作ったSAORIには、設定ダイアログを表示してみたり、Web上から情報を拾ったり、他の栞をサブルーチン的に使ってみたり、といったものがあります。
 魔法はもっと夢のあるもののはずだ等と思うなら自分で作ってみるとか他人に頼んでみるとか金を積んでみるとか。

 欲しい機能が栞では実現できないような時に使うものですが、興味本位でほいほい使ってみるも一興。

里々でのSAORIの使い方

 ポスト同梱のサンプルを眺めつつどうぞ。

1 SAORIをghost/master(satori.dllと同じフォルダ)か、そのサブフォルダに設置。

  沢山のファイルを利用するSAORIなら専用にフォルダを掘るもよし、単機能なやつならghost/masterにそのまま置いても構いません。   サンプルでは、saoriフォルダにfill_desktop.dllとssu.dllという2つのSAORIが入っています。


2 satori_conf.txtを開いて@SAORIに「辞書から呼び出すときの名前」、「場所(相対パス)」、「自動設定引数」を設定。

  例えばfill_desktop,saori/fill_desktop.dllという行があります。
  里々ではSAORIは(fill_desktop,255,0,255)といった感じで呼び出すわけですが、上記の行がfd,saori/fill_desktop.dllだとしたら、呼び出し方は(fd,255,0,255)になります。

  上記の例の255,0,255の部分は「引数」です。fill_desktop.dllの場合は塗りつぶす色の赤成分、緑成分、青成分を意味しています。
  各SAORIのドキュメントではArgument0, Argument1, Argument2と説明されてるかもしれません。

  「自動設定引数」は、サンプルで言うと(fill_red)で(fill_desktop,255,0,0)と同じ意味になる、ってことです。
  自動設定引数が設定されていても、呼び出し時、さらに引数を追加することもできます。


3 辞書に呼び出す部分を書く。

  dic10_PluginTest.txtを見てください。……わかりますよね?
  カッコはSAORIの返値(各SAORIのドキュメントで言えばResult)で置きかえられます。
  (if,0,たこ,いか)であれば、このカッコは必ず「いか」になります。

・複数返値の取得方法

 SAORIは、複数の値(各SAORIのドキュメントで言えばValue0,Value1,..)を返すことができます。
 里々ではそれらを(S0)、(S1)、(S2)という形で取得できます。

 ……わかりました? ダメ? まだ説明不足?



 02/06/09追記:さとー氏による具体例を交えた解説がここに。なるほど。

SAORIの作り方

 既存のSAORIに飽き足らないなら、やっぱ自作ですよ自作。

 SAORIには-basicと-universalという2種類があります。前者は基本的にexe形式、後者はdll形式。
 -basicなSAORIは、一般にProxy DLLを経由して使います(里々はProxy DLL的なものを内蔵しており、-universalなSAORIと同様に使うことができます)。

 で、このSAORI-basic形式のexe、特別な対応方法は必要なく、実は単なるコンソールアプリケーションです。
 例えばこれ
 
 #include <stdio.h>
 
 void main(int argc, char* argv[]) {
  printf("Hello, world.");
 }
 

 多くのC言語教科書の1ページ目に載ってる有名なプログラムですが、これをコンパイルしてできたexeは、そのまま「Hello, world.という文字列を返すSAORI」として扱えるわけです。
 まぁこのままじゃ実用性無いんで加算器とか。
 
 void main(int argc, char* argv[]) {
  int i, acum=0;
  for ( i=1 ; i<argc ; i++ ) {
   acum += atoi(argv[i]);
  }
  printf("%d", acum);
 }
 

 実用がお嫌いなら人語→犬語翻訳機とか。
 
 void main(int argc, char* argv[]) {
  int i;
  for ( i=1 ; i<argc ; i++ ) {
   printf("わん");
  }
 }
 

 興味を持ったらフリーのコンパイラをインストールなどして、あとは適当に検索すれば、いくらでも講座があると思います。
 これであなたもSAORI作者。


 あ、もちろん、Win32のコンソールアプリケーションを作れるならどんな言語/開発環境でも構いません。

 -universalを作りたい人はこちらへどうぞ。インタフェース部分はソースが公開されてるSAORIから流用した方が早いかもだけど。

 用途によっては、最初から里珠でゴーストを作るってのもアリですね。


 ※プログラムに関する質問にはお答えしかねます。
 トップに戻る