■掲示板に戻る■ 全部 1- 101- 最新50
こんなさおり/スクリプト作ってください

1 :ふるごむ:04/10/15 14:49 ID:6YBsTTog
ゴーストにオリジナルな機能を付けたいけど、どうやって実装すれば良いかわからない。
そんな時はこのスレッドに書いてみれば、暇なプログラマ達がなんとかしてくれるかもしれません。

心構え:
 ・やりたいことは詳しく書く
 ・あまりあてにしない

63 :うにゅう:04/12/10 18:55 ID:ap4Z1Jlg
ついでにお願いします
62のものに「\_v \_V」の機能を追加してもらえますか
あと、これは今言ったものに矛盾するかもしれませんか、同時再生機能も欲しいです
例えば、BGMを再生しながら、\0が喋る音声のセリフを、\1が音声のセリフで尻食いする
というものです

64 :うにゅう:04/12/11 22:38 ID:bl/PPpKM
ちょいと質問。
独自メニューで、インストール済みのゴーストを表示するSAORI作っているんだけど、
そのインストール済みゴーストがマテリアライズ中かどうかを判断するにはどうすればいい?

単ベースウェアならわかるけど、ベースウェア同時起動とかの場合だと
ぜんぜんわからん。

65 :殊海夕音:04/12/12 00:32 ID:Tcr6SmA2
お邪魔します。
起動中のゴースト列挙でしたら、ファイルマッピングオブジェクト'Sakura'を解析するのが確実かと。
http://sakura.nemui.org/objects.html
複数起動中でも同じファイルマッピングオブジェクトを使うので、起動中の全てのゴーストを列挙できます。
(ただしmateriaは書き込みの排他制御をしていないらしく内容が消えることがありますが……)

66 :64:04/12/12 19:09 ID:s3GtHd62
質問の仕方が悪かったかも。

例えば
"E:\ukagaka\ghost\konnoayame"にインストールされている"紺野あやめ"が、
ベースウェアで現在マテリアライズされているかどうかを判断するには
どうすれば良いでしょうか?

"E:\ukagaka\ghost\konnoayame"と、
"E:\ukagaka\ghost\konnoayame_0"に"紺野あやめ"がインストールされている場合
どっちの"あやめ"がマテリアライズ中か、Sakuraを解析してわかるもんなんでしょうか?

67 :殊海夕音:04/12/12 21:28 ID:Tcr6SmA2
>>66
ちょっと調べてみた限りでは、SSP/CROWではghostpahtというエントリがありますからそれで取れるようです。
例:ssp_fmo_header_00000ac0_00520354.ghostpath E:\ukagaka\ghost\konnoayame
materiaには無いようなので他の手が必要になってしまいますが。

68 :27:04/12/13 17:39 ID:fKHRYrpk
お世話になってます
今までの概要をまとめてみました
http://www32.tok2.com/home/moriba/upload/data/nua_432.txt
たぶんもう仕様変更はしないと思います

http://www32.tok2.com/home/moriba/upload/data/nua_433.txt
トーク部分のカウントの構造部分なのですが、少しご教授願えますか
どういうふうにトーク回数を数えてるのかわからないので、メニュー部分の
展開の仕方はイメージとしては頭で描けるんですが、どのスイッチを挿入して
いいのかがわかりません

69 :27:04/12/15 12:47 ID:LzrRFaBs
仕様変更はしないと言ったばかりでなんですが、大幅な仕様変更で
フキダシを一つだけにすることにしました
よく考えたら、フルボイスなのでフキダシは一個でもいいような気がします
声でどっちが喋ってるか判別できますし

70 :うにゅう ◆WOtWz3y1ak :04/12/15 21:31 ID:5SOfjHAc
>>68
>トーク部分のカウントの構造部分なのですが、少しご教授願えますか

シナリオのエピソードを全てトークしたかを判定しているのは
$[ ${Senario?_Episode} < $(size Senario?) ]
で統一し、特に「終了した」というフラグは用意しませんでした。
わざわざフラグを用意して判定しなくても、上の判定式で十分な訳です。

これを説明するためには、エントリがどう辞書に登録されているのかから話を始めます。

エントリに辞書登録すると順番を維持したまま登録されます。
これは、$エントリ名[配列番号]とする事で指定して取り出すことが出来ます。
配列番号として指定する番号は0〜(エントリの登録数-1)となります。

{Senario?_Episode}は最初に0が代入されており、get文でそのエピソードをトークしていから
カウントアップします。
つまり、全てのエピソードをトークし終えた時、{Senario?_Episode}はエントリの登録数と一致
し、$(size Senario?)とイコールになる訳です。

# 判定に「>=」を使っている所もありますが、これは万一、{Senario?_Episode}が異常な数値
# になった時に誤動作しないための安全策です。

71 :うにゅう ◆WOtWz3y1ak :04/12/15 21:50 ID:5SOfjHAc
>>69
これはTranslateを利用する事で、トークに手を加えることなく簡単に変更出来ます。
以下のスクリプトをOpenKeepsの「ghost-keeps-translate.kis」に加えてみて下さい。

/*
#-----------------------------------------------------------------------------
#◇ SwitchBalloon
# 喋る側のバルーンだけが表示される
# 前提条件 : 「\0」「\1」「\p[*]」によるフォーカス指定は省略しない
# ○:\0\s[0]私が喋って\1\s[10]わいが喋る\e
# ×:\s[0]私が喋って\1\s[10]わいが喋る\e
# 書式 : $(SwitchBalloon)
# 戻り値:整形したスクリプト

function SwitchBalloon $(
setstr @temp $(gsub ${System.Request.Reference0} "\0" "\w8\b[-1]\0") ;
setstr @temp $(gsub ${@temp} "\1" "\w8\b[-1]\1") ;
setstr @temp $(gsub ${@temp} "\p[" "\w8\b[-1]\p[") ;
return $(sub ${@temp} "\w8\b[-1]" "")
) ;

Translate : $(SwitchBalloon)
*/

72 :うにゅう ◆WOtWz3y1ak :04/12/15 21:54 ID:5SOfjHAc
>>71 訂正。
function文の前後の行を「=Kis」と「=end」で挟んで下さい。

73 :27:04/12/17 21:49 ID:JCe9Iz6A
get文というものがどういう動きをするものなのかは
まだ理解できてませんが、教えていただいたもので、
なんとかメニューバルーンは動かせそうです
ありがとうございました

74 :うにゅう ◆WOtWz3y1ak :04/12/17 23:39 ID:N+0LioAI
>>73
(get)は「エントリの中身を全て表示する」命令です。
ただし、配列番号を指定する事で、その指定した配列番号の文だけ取り出す事が出来ます。
{Entry}というエントリの0番目の文を取り出すのは「$(get Entry[0])」であり、「$Entry[0]」と全く
一緒なのです。

#ここであんまり詳しくやると華和梨講座になってしまう…別スレッドを立てた方が良いか、
#それとも華和梨の掲示板に移動するか…。

75 :64:04/12/18 14:44 ID:3Xqn1ajM
>>67
レス頂いたのに放置して申し訳ない。
サンクスです。

実際にFMO見てテストしてみました。
とりあえず、SSPとCROWなら大丈夫そうです。
materiaが絡むとわかりませんが。


ちなみにCROWだけは、materiaとSSPでのマテリアライズチェックも
一応してるみたいですけど完全ではないようです。
ベースウェア側からでもできないということは、
完全なチェックは無理っぽいですね。妥協します。

76 :うにゅう:05/02/09 01:00 ID:o/5jFT4s
どなたか、以下の要点・仕様を踏まえたSAORIを作成して頂けないでしょうか。

*動作の要点
 同時に2つ以上の音声をそれぞれ制御できる/.再生終了時にSHIORIへイベント発行

*仕様
+SHIORI→SAORI イベント
--------------------------------------
引数説明
 チャンネル番号:再生チャンネル番号(0〜任意)。省略不可
 音量変更時間 :フェードインにかける時間(単位ms)。省略時は0(事実上カットイン)。
 音量     :再生時の最終音量(0〜任意)。省略時は最大音量。
 ファイル名  :再生ファイル名(パス含む)。省略時は現在再生中のファイルに対するものと判断。
 ループフラグ :「0」以外ならばループして演奏。省略時は「0」(ループ無し)と判断。
--------------------------------------
・Play (チャンネル番号),(音量変更時間),(音量),(ファイル名)
 指定した(チャンネル番号)でファイルを再生する。
 既にそのチャンネルで演奏中の場合、ファイルが指定されていても、その指定は無視される。
 音量は、ファイル指定された場合は最初0(無音)から始まり、(音量変更時間)経過時点で(音量)に成るフェードインをする。
 演奏中の場合、(音量変更時間)経過時点で(音量)に成るよう段階的な音量調節をする。
・Stop (チャンネル番号),(音量変更時間)
 指定した(チャンネル番号)の再生を終了(停止)する。
 音量は、(音量変更時間)経過時点で0に成るフェードアウトをする。

77 :うにゅう:05/02/09 01:00 ID:o/5jFT4s
+SAORI→SHIORI イベント
・OnFilePlayStop
--------------------------------------
引数
 Reference 0 : 再生終了したチャンネル番号
(Reference 1 : 再生していたファイル名)
上記「Stop」イベント、もしくはファイルそのものの演奏終了時に発行される。

よろしくお願いします。

78 :うにゅう:05/05/21 23:34 ID:1n2cDNxA
自ゴースト用SAORIを作ってるのですがなかなか上手くいかないので、
余裕のある方の知恵を拝借させてください。

やりたいこと: SSP右クリックメニューの"&Language"欄の文字列を"言語"に変更したい
やってる(つもり)こと: サブクラス化させて、"&Language"の時にWM_DRAWITEMを自分で処理
現状: メニューを出した直後は"&Language"欄の文字列が表示されない
    ( 一度"&Language"欄を選択すると以降は表示される。 )

以下ソースです。不足分があれば追加します。
"&Language"を変更することが、やってはいけなさそうなことであることは一応承知の上です。
http://blue.ribbon.to/~wahuh/any/yume.cpp.txt


79 :◆nqrMLNSYSk :05/05/22 03:11 ID:6t4eyqFI
>78
 SAORI云々は素人なので力にはなれませんが‥‥

 SSP独自の事なので
 通常キャプションと同様に変更できるよう
 フィードバックに要望を出すのも一つの手かと思います

80 :78:05/05/22 11:34 ID:RZy6ePHE
すいません、自己解決しました。
DrawText()の代わりにTextOut()を使うと、初回のみ表示位置にずれがあったので
なんでかと思ってそこらへんをいじってみたところ、望んだ機能を得られました。

具体的には、
int nRes = DrawText( lpdis->hDC, tszMenuName, -1, &rcTemp, DT_LEFT | DT_TOP | DT_SINGLELINE );
の直前に、
UINT uiAlign = GetTextAlign( lpdis->hDC );
uiAlign &= ~TA_UPDATECP;
uiAlign |= TA_NOUPDATECP;
SetTextAlign( lpdis->hDC, uiAlign );
を追加しました。
正直仕組みは理解していませんが、動いているので良しとします。
ありがとうございました。


>>79
言語パックが用意されていて、長いことlanguagebutton.captionみたいなものも
実装されていないので、多分実装するつもりはずっと無いのだろうなと勝手に思っていました。
通常キャプションと同様に変更できれば、個人的にはとても楽なんですけど。

81 :えんいー:えんいー
えんいー

82 :うにゅう:05/12/15 21:24 ID:XpHsF/VA
>>81
ウィルス警報発令中。

83 :えんいー:えんいー
えんいー

84 :えんいー:えんいー
えんいー

85 :えんいー:えんいー
えんいー

86 :えんいー:えんいー
えんいー

87 :えんいー:えんいー
えんいー

88 :えんいー:えんいー
えんいー

89 :えんいー:えんいー
えんいー

90 :えんいー:えんいー
えんいー

91 :えんいー:えんいー
えんいー

92 :えんいー:えんいー
えんいー

93 :えんいー:えんいー
えんいー

94 :うにゅう:06/04/05 10:20 ID:cBRwRiKo
現在起動中のプログラム名(タスクバーの表示されているもの)を取得できるSAORIを
誰か知りませんか?
そのプログラムがなんなのかを自己学習するゴーストが作りたくなったので。

よろしくお願いします。

95 :yagi:06/04/05 17:27 ID:J5jAFcUg
>>94
作ってみましたよ。

タスクバー上のウィンドウを列挙するSAORI-basic
http://yagi.xrea.jp/2006/04/enumwindows.zip


96 :うにゅう:06/04/05 19:22 ID:cBRwRiKo
>>95
早速ありがとうございます。
作って頂いてさらに注文をつけるのもどうかと思いますが、列挙せずひとつずつ改行して欲しいです。

最終的な野望としては、
ゴースト起動中にユーザが(例として)メモ帳を起動。
「ユーザさんメモ帳って何ができるの?\![open,input,メモ帳の役目]」
みたいな。
こんな無理を言う前に自分でSAORIの作り方を憶えた方がいいのかも知れませんが。

97 :yagi:06/04/06 09:32 ID:3miVWEJ6
>>96
別に構いませんが、里々の場合、改行にすると却って扱いにくくないですか?


98 :うにゅう:06/04/06 22:23 ID:DCItbqA+
>>97
すみませんSAORIの使い方がいまだによく分からないもので・・・
では、列挙した単語をセーブするにはどうしたらよいでしょう?

よろしくお願いします。

99 :うにゅう:06/04/08 11:04 ID:vQZZW9XY
フキダシ内のセリフにルビ振りたいんですが、なにかいい方法はありませんか?

100 :うにゅう:06/04/09 11:48 ID:gpYlwQiM
トークが表示されてる僅かな間に文字を読ませるためには、
確かに、ルビが振れらると良いことありそうですね。

101 :うにゅう:2006/08/18(金) 20:50:52 ID:n9d/liw+
今更ですがenumwindows.exeを里々で使う時用のサンプルを書いてみました。
よろしければどうぞ。
http://navy.nm.land.to/post/

102 :体温だ〜いすき:2006/12/23(土) 22:11:29 ID:2D+1sd4M
ちょっと難しい質問なのですが、一部のゴーストに実装されている、音楽ファイル(wav、mp3など)をゴーストに
ドロップすると再生してくれる機能があります。これを他のゴーストでも使えるようにしたいのですが、
出来る方法はありますでしょうか?
また、当たり判定をうまく利用して、マウスをゴースト上に置いている間だけ再生させる(マウスがゴーストから
離れると停止)なんてことも可能でしょうか?

103 :うにゅう:2006/12/24(日) 12:42:29 ID:Wnz5o6ew
>これを他のゴーストでも使えるようにしたいのですが、
>出来る方法はありますでしょうか?
ある。既存のSAORIと、OnFileDrop系でできる。


>また、当たり判定をうまく利用して、
>マウスをゴースト上に置いている間だけ再生させる(マウスがゴーストから
>離れると停止)なんてことも可能でしょうか?
シェルの形状にもよるが、HandUtil.dllで常に監視すればいけるかも。
たぶん、新規にSAORI作った方が良い。

104 :うにゅう:2006/12/24(日) 22:54:22 ID:DJVE0zpo
|停止|停止|停止|
|停止|再生|停止|
|停止|停止|停止|

みたいに当たり判定を作っておいて、
「停止」をマウスがかすめたら再生停止とか

105 :うにゅう:2006/12/26(火) 13:41:13 ID:k90h06MU
>マウスをゴースト上に置いている間だけ再生させる(マウスがゴーストから
>離れると停止)なんてことも可能でしょうか?
OnMouseMoveでマウス座標取得とかはどうかな


106 :体温だ〜いすき:2007/01/11(木) 02:34:36 ID:lS51B1OM
右クリックメニューにある「消滅指示」を非表示(クリック不能)にしてあげたいゴーストがある
のですが、バルーンメニュー等からこの設定が出来ない場合、他に何かいい方法はないでしょうか?

107 :うにゅう:2007/01/11(木) 09:45:30 ID:MbcDgwhI
「してあげたい」の意味が不明瞭なので何をなさりたいのかちょっと。
vanishbuttonvisibleを0にしてやれば、マテリア以外では消滅指示のところがクリック不能になります。

Disc-2のゴースト製作タブ、SHIORI Resourceの項目より。

108 :うにゅう:2007/01/13(土) 00:20:48 ID:Fd2M/ysE
「この娘はかわいいから、消滅指示なんて出させたくない」ってことか?

ユーザー側からは、強制的に非表示にはできない。
強制的に表示なら、できるけど。

109 :体温だ〜いすき:2007/01/13(土) 22:05:03 ID:o+jBNcoI
>>107
どうもありがとうございました。下記のゴーストで成功しました。

・由加+ダオにゅう
・核煮
・双葉&ただきちさん
・零煮絵
・真夜と三文
・奎子とまんじろう
・ふたりっ娘

110 :うにゅう:2007/01/14(日) 10:19:57 ID:zywjZ0Kc
悪意の事じゃないから言いにくいけど、やってることはゴーストの無断改造だから。
ゴースト名まで添えて堂々と言うのはどうかと。

111 :体温だ〜いすき:2007/01/23(火) 02:15:05 ID:2jWeAv36
すみませ〜ん、また2つ聞きたいことがあるんですが、いいですか?

1.(某ゴーストにCDプレーヤー機能を付けたいので) スクリプト \![sound,cdplay,○○]
で音楽CD(○○で指定した番号の曲)が再生できることが分かったのですが、再生中
にCDの前後の曲に順に移動させるにはどのように記述すればいいんでしょうか。尚、普通
のCDプレーヤーのように1曲目から最後まで一通り演奏させる事は出来ないんですか?

ちなみに…
\![sound,cdplay,next]
\![sound,cdplay,next(back)track]
\![sound,cdplay,-1]
でやってみましたが、いずれもダメでした…。


2.当たり判定についてなんですが、通常とは逆の感じで、例えばマウスが当たり判定の領域内、
またはシェルの外へ出たときに特定の反応をするようにしたいのですが、どうすれば出来ますか?

42KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail(省略可)

0ch BBS 2007-01-24