pageテスト項目資料これは開発版にテスト実装した項目の資料です。安定版に実装されるまでは、変更されたり削除される可能性があります。開発版の間ならいくらでも修正を行いますので、意見がある方は掲示板にお願いします。エフェクトプラグインについてV0.5.2よりエフェクトプラグインが実装されました。これはCROWで合成が終わったサーフィス画像をDLLでさらに加工する物です。一定時間かけて連続して加工する方法と、サーフィスに変化があるたびに呼ぶ方法の2種類の使い方があります。連続して加工する方法は、たとえばフェードイン、フェードアウト、ワイプなどに使用します。入力画像は、現在表示されている画像のみのほか、もう一枚対象となるサーフィスを指定することが出来ます。この使い方ではアニメーションは非対応です。タグは\![effect,プラグイン名,(速度(100で元スピード)),(以降ユーザーパラメータ)]\![effect2,プラグイン名,追加サーフィス番号,(速度(100で元スピード)),(以降ユーザーパラメータ)]というように指定します。サーフィスに変化があるたびに呼ぶ方法では、たとえばモノクロ化、モザイク等に使用します。サーフィスの一部に変化があるたびに呼び出されるため、この方式ではアニメーションするシェルでも使用可能です。\![filter]というように指定します。詳細は、エフェクトプラグイン仕様を参照してください。V0.5.x系列の間は、仕様が微妙に変化する可能性があります。現時点の実装では、Regionモードでは外形が変化するエフェクトは正常に動作しません。今後対応するかどうかは未定です。これはDelphiでエフェクトプラグインのサンプルです。EffectSample.zipこれはCROWを起動せずにテストするプログラムです。EffectTest.zipなお、現在ドラッグ&ドロップによるインストールはまだ対応していません。crow.exeと同じ階層にeffectフォルダを作り、そこにdllをコピーしてください。effectフォルダの下にさらにフォルダがあっても読み込みます。スケールタグV0.5.2よりスケールタグが実装されました。タグは\![set,scaling,(横倍率),(縦倍率),(変化時間)]のようになります。倍率は100で1倍となります。変化時間はms単位です。横倍率のみの指定があった場合は、縦横同じ値として設定されます。変化時間の指定があれば現在のスケールから指定したスケールへ変化時間をかけて変化します。ゴーストフォルダの階層化についてV0.5.0より、ゴーストフォルダを階層化することができるようになりました。その場合、下位フォルダは自動的に登録されるわけではないので、一つずつ登録する必要があります。従来の設定でも可能ですが、後述するゴーストエクスプローラを使用すると便利です。階層フォルダとして認識するには、親から順に登録する必要があります。間が抜けていたり、順番が逆転していると正常に認識しません。順番の補正についてはあとで実装予定です。c:\ghostc:\ghost\ghost_1c:\ghost\ghost_1\ゴーストAのフォルダc:\ghost\ghost_1\ゴーストBのフォルダc:\ghost\ghost_2c:\ghost\ghost_2\ゴーストCのフォルダc:\ghost\ghost_1\ゴーストDのフォルダのような構成の場合、c:\ghostc:\ghost\ghost_1c:\ghost\ghost_2の3つを検索フォルダとして登録する必要があります。ゴーストフォルダのショートカットについてV0.5.0より、ショートカットのゴーストフォルダを認識するようになりました。これにより実体を単一フォルダに登録し、ショートカットを使用して階層メニューを構成すると、CROWでは階層メニューからアクセス可能になり、SSP,MATERIAからは単一フォルダとしてアクセスできるようになります。これも、ゴーストエクスプローラから作成可能です。ゴーストエクスプローラについてV0.5.0より、ゴーストエクスプローラを内蔵しました。シェルやバルーンのエクスプローラ機能は持っていないため、従来の偽GEも同梱しています。設定-互換性タブの設定により、従来通り偽GEも使用できます。このゴーストエクスプローラでは、ゴーストを選択して起動する以外にも、ゴーストの検索、ネットワーク更新、ゴースト表示順の入れ替え、ゴーストフォルダの追加、ゴーストフォルダの新規作成、フォルダ・ゴーストの表示名称の変更、指定フォルダをエクスプローラで開くゴーストフォルダのコピー、ゴーストフォルダの移動、ゴーストフォルダのショートカットの作成などが出来ます。右側のリストから選びたいゴーストをダブルクリックするか、右クリックメニューから切り替えを選ぶ、もしくは上のゴーストメニューから切り替えを選びます。上の検索メニューから選ぶか、CTRL+Fで検索ダイアログが開きます。ここに入れた文字列がGhostName,SakuraName,KeroName,表示文字列のなかの一つの一部にヒットした物が選ばれます。F3か、上の検索メニューから次を検索で、条件に合う次の候補を探します。・ネットワーク更新ゴーストを選び右クリックメニューの中のネットワーク更新か、上のゴーストメニューからネットワーク更新を選びます。現在起動中のゴーストはここからはネットワーク更新をすることは出来ません。このネットワーク更新は、複数続けて実行することが出来、前のネットワーク更新が完了しなくても次の更新を指定できます。その場合特に表示は出ませんが、今実行中の更新が完了し次第次の更新が実行されます。・ゴースト表示順の入れ替え右のゴーストメニューでドラッグ&ドロップをすることによりゴーストの表示順を入れ替えることが出来ます。上のファイルメニューよりフォルダ追加を行うことにより、ゴーストフォルダを新規に追加することが出来ます。このフォルダは事前に生成されている必要があります。親となるフォルダが存在すれば、自動的にその子として認識されます。従来の設定ダイアログのゴーストフォルダ追加と同じ動作です。上のファイルメニューよりフォルダ追加を行うことにより、現在選択されているフォルダの子として新規フォルダを生成できます。この場合、設定する名称は表示上の名称で、ファイル上の名称はghost?という感じになり、?には数値が順に入ります。この実際のゴーストフォルダ名をWindowsのエクスプローラ等でリネームすると再登録するまで認識されなくなるので注意してください。実フォルダリネーム機能も実装予定です。V0.5.0より、実際のフォルダ・ゴーストの名称以外にCROW上のみの表示名称をつけることが可能になりました。新旧ゴーストが同居している場合などで、区別をしたい場合等に使用してください。この表示名称を変更しても、フォルダ名やdescript.txtは一切変更されません。変更する場合は、ゴーストやフォルダを選択した状態でF2か右クリックメニューの名前の変更、または選択中にもう一度クリックしてください。実際のフォルダがある場所をWindowsのエクスプローラで開くことが出来ます。・ゴーストフォルダのコピー、移動、ショートカットの作成これらの操作は、右のリストのゴーストをドラッグし、左のフォルダにドロップすることにより実行します。その際、どの操作を行うかは上のファイルメニューの設定から指定が出来ます。デフォルトでは左ドラッグでショートカット作成、右ドラックでメニューによる選択になっています。動的SERIKOこれはSERIKO定義をSakuraScript上で行うことにより、動的にアニメーションを定義する物です。従来のsurfaces.txtを置き換える物ではなく、それの補助として使用します。追加した分のアニメーショングループ番号は100から順に使われます。同じアニメーションを行なう場合はサーフィスを切り替えるたびに設定する必要があります。基本は、サーフィス切り替えタグと一緒に使うが、あとから追加してもかまいません。・タグの仕様\![anim,add,overlay,パラメータ]パラメータは可変長で、最小では一つです。下記のようなパターンで使用します。\![anim,add,overlay,SurfaceNo]この場合、指定したサーフィスを座標移動させずに重ね合わせます。\![anim,add,overlay,SurfaceNo,X,Y]この場合、指定したサーフィスをX,Y座標分移動させ重ね合わせます。\![anim,add,overlay,SurfaceNo,X,Y,Interval,SurfaceNo,X,Y,Interval,SurfaceNo,X,Y,Interval〜]この場合は単なる重ねあわせではなく、アニメーションの定義となります。Intervalの単位は1msです。\![anim,add,overlay,SurfaceNo,X,Y,Interval,SurfaceNo,X,Y,Interval,SurfaceNo,X,Y,Interval,IntervalType]アニメーションを繰り返した後に発生するタイミングを記述するパターンです。alwaysの指定ができます。指定しなかった場合はalwaysとみなされます。同様な形で、\![anim,add,overlayfast,パラメータ]、\![anim,add,move,パラメータ]、\![anim,add,base,パラメータ]も存在します。baseの場合はX,Yが省略され、moveの場合、SurfaceNoが省略されます。一つのアニメーショングループの中に、overlayやmove等の混在はできません。}スクリプト\s[0]\![anim,add,overlay,5]\![anim,add,overlay,10,20,5]\w5\![anim,add,overlay,200,0,0,50,201,0,0,50,202,0,0,50]このように指定した場合、アニメーショングループ100にサーフィス5の表示、アニメーショングループ101にサーフィス10をずらして表示、ウェイトをはさんでからアニメーショングループ102に新規アニメーションを追加という形になります。動的に追加したアニメーションに対しても、\iタグや、\![anim,stop]等のタグは有効です。サーフィスへのテキスト描画これも動的SERIKOの一種ですが、このタグを使用することによりサーフィス上にテキストを描画することが出来るようになります。表示する場合はエリアを指定し、自動改行が行われます。その際、表示時間を指定することにより順に文字を表示することも可能です。・タグ仕様\![anim,add,text,X座標,Y座標,横幅,縦幅,文字列,(表示時間),(色),(フォントサイズ),(フォント名)]文字列の部分まで必須で。それ以降は省略可能です。サーフィス位置指定これはサーフィス同士をリンクさせたり、デスクトップ上の固定位置にサーフィスを表示する物です。独自のバルーンもどきを作成することが出来ます。・タグ仕様\![set,position,X座標,Y座標,(基準とするキャラ)]現在のサーフィスを指定した座標に固定します。moveタグと違い、一瞬で移動し以降その場所に固定されドラッグを受け付けなくなります。\![reset,position]を指定することにより解除されます。X座標、Y座標は目的の座標を指定。負の値も指定可能です。基準とするキャラは、別のスコープの相対位置に移動する際に使用します。1等のキャラクターを表わすIDの数値の他、スクリーン左上を起点とするscreenがあります。省略時はscreenが指定したとみなされます。moveタグのような基準位置も実装予定です。\![reset,position]\![set,position]を解除します。プロパティシステム・概要これは、CROWで使用している各種パラメータを設定したり取得したりするものです。細かなパラメータにアクセスできるため、従来SAORIやファイル直アクセスをしなければならなかった情報を比較的簡単に入手、設定できます。・アクセス方法アクセス方法は複数あり、タグ、環境変数、DirectSSTPが使用できまする。タグを使用してプロパティを取得する場合は、そのタグを実行した直後に発生するイベントで取得します。SHIORI側で入手せず、そのまま表示する場合は環境変数を使用します。各プロパティは階層構造をもっており、.で区切ります。baseware.scope(0).surface.noなどです。すべては文字列で管理され、存在しない物は空文字列が返ります。・SHIORI変数アクセスこのプロパティシステムは、CROW内部のパラメータ以外にも各種SHIORIのローカル変数にもアクセスできます。現在サポートしているのは里々、文、華和梨だけでです。変数ファイル名が違っていたり、暗号化されている場合は取得できず、また常に読み込み専用です。現在はコードが内部に埋まっているがプラグイン形式で追加できる形にする予定です。環境変数で取得する場合は%property[]を使用します。%property[baseware.scope(0).surface.num]・タグによるアクセスタグを使用して読み書きをすることも出来ます。取得する場合は、イベント名と一緒に指定することにより、Ref0に取得した値が入ったイベントが発生します。書き込む場合\![set,property,プロパティ名,値]として使用します。読み込む場合\![get,property,イベント名,プロパティ名,(プロパティ名),...]プロパティ名は複数指定することができ、複数指定した場合は順にRef0、Ref1に入ります。SSTP/1.1を拡張し、使用します。Shift_JISとして使用します。OK取得した値として値が求められます。ステータスコードのあと、空改行が1行あって実際のデータになります。現在取得できない場合は、空文字列になります。・使用できるプロパティなお日本語表記の部分は適切な値を代入して使用します。プロパティ名は大文字、小文字を区別しません。"ゴースト名"の部分はname,sakuraname,ゴーストへのフルパスの3種が利用できます。"シェル名"の部分はname,シェルへの相対パスの3種が利用できます。リスト内index(番号)〜やcurrent.〜となっている部分は、〜の部分を上のリストの部分と同様に使えます。例:ghostlist.index(0).nameshelllist.curremt.pathcurrentghost.craftmanwまた、現状ではsurface関連以外読み込みのみです。今使える物のみでまだ増える予定です。階層構造や名称はまだ変化する可能性があります。