トップページgamedev
1001コメント403KB

■吉里吉里/KAG/TJS雑談質問スレ■その23

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/02/03(木) 13:12:07ID:6MBIOEHD
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。

※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/

吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/

ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。

必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)

前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その22
http://hibari.2ch.net/test/read.cgi/gamedev/1285897465/
0090名前は開発中のものです。2011/02/09(水) 11:25:48ID:N9lDcceA
>>86
単にお前のレスの書き方がウザがられてただけじゃね?
でも良かったな
0091名前は開発中のものです。2011/02/09(水) 12:04:43ID:p6C7ENpw
>>89
質問が
「メッセージレイヤのフレーム画像を途中で切り替えたい」ならば
frameの値(ファイル名)を変えていけばOK

リファレンスとテンプレの講座あたりは目を通して、頻出する単語を押さえておくべし
0092名前は開発中のものです。2011/02/09(水) 13:40:04ID:mIt+z9j+
どこで聞いていいかわからないから質問させて

TJSで画像をうにょうにょと歪む画像を作りたいと思って、あっちこっちのサイトでJSとかの関数を探してるんだけどなかなか見つからない。
作りたい効果は空間が熱の変化でかげろうみたいに微かに揺らめく感じが欲しいんです。
ラスター処理だと一定な動きになるし、ある座標を中心に水の表面がすこし盛り上がるような表現をすれば作れると思うのだけど、そう言う関数を探してます。
その手の良いサイトは無いものでしょうか?
0093名前は開発中のものです。2011/02/09(水) 17:30:54ID:EkscP9Pk
メッセージレイヤってのを複数立ち上げれば
画面上に三人同時に会話するシーンを作成出来るってこと?
Nスクなんて使ってる場合じゃねえ!
0094名前は開発中のものです。2011/02/09(水) 17:42:26ID:SRsm9XoP
そういや複数のメッセージレイヤーに
同時にテキスト流すって出来ないな
0095名前は開発中のものです。2011/02/09(水) 18:09:58ID:QakpM+RU
KAGからは出来ないね。lやpタグ打ち込まなければ『連続して』テキストを流すのはできるけど
同時並行ってワケじゃないからね。

やるなら各メッセージレイヤのdrawTextメソッドをTJSから直接呼び出してやるくらいか
0096名前は開発中のものです。2011/02/09(水) 18:17:56ID:cbiIWL2V
>>93
NスクもNスクで優れたエンジンだぜ
まあ俺はどっぷり吉里吉里にハマってるんで乗り換えはできないけど
0097名前は開発中のものです。2011/02/09(水) 18:57:39ID:EkscP9Pk
>>95
出来ないのか…
同時は無理、でも交互表示すれば共存は可能?
所謂立ち絵を流用するのではなく、カットごとにカメラを変えるようにしたいんだ
その上で、各キャラの側にテキストが出る様にしたい
つまりこれ→http://gamecs.jp/usr/kazuyuna/DSC00359.JPG

スクリプト数も減って、行数上頻繁に改ページしても滑らかな会話が可能になるし
立ち絵の種類を増やさなくても、その場その場で描けば良くなるから
細やかな感情表現が出来るのだ!っていう発想

Nスクで頑張ってたんだけど、奴はテキストを二つ同時に出して置けない
仕方なくスプライトでやってみたものの、バックログが残らないことに気づいた
吉里吉里さんなら何とか出来そうだと聞いて来ました
0098名前は開発中のものです。2011/02/09(水) 19:06:35ID:mIt+z9j+
>>97
それは可能
ちょっと前に上下で男と女の会話を分けてるの見たことある。
例えば、キャラの文字色とかで判断させてマクロ組むと多少楽。
0099名前は開発中のものです。2011/02/09(水) 19:07:44ID:QakpM+RU
「2個以上のメッセージ枠に文字を表示させること」は可能だよ。それが出来なかったら吉里吉里製ゲームの半数は
台詞と名前を同時に表示すること出来なくなってるんじゃないかな。モノによっては名前枠と台詞枠別にしてる所もあるし。
同時に出来ないってのはあくまで「2個以上のメッセージ枠に同時(マイクロレベルで同一時間)に文字を書き込む」ということ。
まあそれも、KAGじゃなくてTJS使えば実現はできるんだが、いささかメンドくさいのであまりやらないっつう話。

layoptタグとcurrentタグ、あとlaycountタグ辺りを併用すれば
要望の「各キャラの側にテキストが出る様にしたい」は実現できるよ。マクロ組んだ方が楽だけどね
0100名前は開発中のものです。2011/02/09(水) 19:31:48ID:rCjtSzdS
そう言いえば、TJS使わないとRPGによくある吹出しセリフとか表情のアイコン出せないよな。
0101名前は開発中のものです。2011/02/09(水) 21:39:36ID:SRsm9XoP
誰かすごい人
複数のメッセージレイヤーに同じタイミングでテキスト流すプラグインお願いします
0102名前は開発中のものです。2011/02/09(水) 21:49:55ID:mIt+z9j+
履歴レイヤーを拡張するとかすれば出来るんじゃない?
0103名前は開発中のものです。2011/02/09(水) 23:30:26ID:3vPeiy8g
同ウィンドウだけど、あやえもさんのサンプル内に、ボイス同時再生があった気がする。
つまり文章も同時に表示されるハズだから、あれば参考にはなるんじゃない?
たぶん。
不確かな情報でごめん。
0104名前は開発中のものです。2011/02/10(木) 01:05:43ID:9V96uMJp
>>100
つ[pimage]
0105名前は開発中のものです。2011/02/10(木) 01:09:36ID:pz54TsYF
>>104
そういうんじゃねーよ
0106名前は開発中のものです。2011/02/10(木) 01:15:15ID:9V96uMJp
じゃあどんなやつだよw
こういう話題って個人個人で単語に対してのイメージぜんぜん違うから面白いな
0107名前は開発中のものです。2011/02/10(木) 02:13:23ID:lVz4HYhb
うーん

getlayerで

kag.getLayerFromElm(%['layer'=>'3', 'page' => 'fore']).colorize(32, 128, 1.0);

だとうごくのに、なぜ
var xxx=3;
kag.getLayerFromElm(%['layer'=>'xxx', 'page' => 'fore']).colorize(32, 128, 1.0);

これだとうごかないんだろう?
何か俺書式間違ってる?
0108名前は開発中のものです。2011/02/10(木) 02:14:35ID:lVz4HYhb
動かないというか、レイヤー0が動く
回避策は無いのかな?
0109名前は開発中のものです。2011/02/10(木) 02:25:12ID:2LPQiPyl
'layer'の部分の指定がおかしい
'xxx'('や"で囲う)というのは「'xxx'という文字列」を指定するために用いるのであって
「xxxという変数」を指定するときは囲っちゃいけない
0110名前は開発中のものです。2011/02/10(木) 02:29:00ID:mGICTkST
>>98
っっっっっっっっっっっっっっっしゃあああ!
マクロってのが何だかサッパリ分からんが、とにかく頑張ってみるぜ!
サブルーチンとは違うもんなのかね?
うっひゃあ初心者に逆戻りでい!
0111名前は開発中のものです。2011/02/10(木) 02:32:08ID:lVz4HYhb
>>109
一応そう思ってここに書き込む前にためしたんだけど、例外エラーがなぜかおきる
'3'でも一応動くしmainwindow.tjsを見ると+layerにしてるからそれでも動くのは動くみたいなんだけど、
むしろ厳密にint xxx;として 'layer'=>xxxとするとスクリプトエディタが起動してエラーが起きるの
これって不具合なのかな?
ググッても一応>>109の言う''無しでの書式で動くと書いてあるんだけど。
ちなみに232r2
0112名前は開発中のものです。2011/02/10(木) 03:31:01ID:lVz4HYhb
原因はわからないけど、なぜか
kag.getLayerFromElm(%['layer'=>string(xxx), 'page' => 'fore']).colorize(32, 128, 1.0);
とするとまともに動く
力押しでみっともないけど、とりあえずこれでいいやorz
0113名前は開発中のものです。2011/02/10(木) 03:34:13ID:izJjB2zw
>>112

getLayerPageFromElm の中で

if(layer[0] == 'm') { ... }

としてメッセージレイヤ指定かどうか判定してるので引数としてわたされる辞書の中の layer は文字列でないとエラーになるという
あたりまえの話。

つか、例外に行番号とかでてるだろ。それみれば一発でわかる話
0114名前は開発中のものです。2011/02/10(木) 03:38:21ID:lVz4HYhb
そこの意味が微妙にわからなかったorz
やっぱりmessageの頭文字を判定してたのか。
ありがとう。
0115名前は開発中のものです。2011/02/10(木) 18:56:31ID:j2WDw41X
ふと思ったんだが
var c = bbb.count;
for(var i=0;i<c;i++) aaa[i]=bbb[i];

aaa.assign(bbb);
って処理速度は同じ?
0116名前は開発中のものです。2011/02/10(木) 19:33:36ID:izJjB2zw
後者のが速い
01171152011/02/10(木) 21:59:50ID:j2WDw41X
ありがとうございました。
assign使うことにします。
0118名前は開発中のものです。2011/02/11(金) 02:47:47ID:2qR1M5vy
俺だと

for(var i = 0; i < bbb.count; i++)

って書いちゃうな。
負荷としてはこっちの方が高いのかも知んないけど。
0119名前は開発中のものです。2011/02/11(金) 11:15:48ID:eInOXOxl
早い云々より前者と後者では使い道変わってこないか?
0120名前は開発中のものです。2011/02/11(金) 11:21:05ID:ZOQcxSzf
数千数万個の中身のある配列ならまだしも、数個十数個の中身の配列だったら
毎度毎度countで個数取ってもさほど変り無いと思うよ。そりゃ確かに一度だけcount取った方が
早くなったり負荷が下がるのは確かだけど、ミリ秒単位の差異を隠蔽せにゃならんほど複雑な処理を書くケースってそんなに有るかね?

無論、これが千や万になるっつったら毎度count叩くのは残念すぎるけど
01211152011/02/11(金) 12:25:27ID:iQutSKcF
>>118>>119>>120
参考になります。
配列の大きさはたいしたことないです。
ただ、タイマー処理の一部分なので、少しでも早くしたほうが良いのかなぁと思い
前者のように組んでいました。
で、後からassign思い出したっていう。
0122名前は開発中のものです。2011/02/11(金) 15:51:26ID:gz2Pwne0
>>92とちょっと質問似てますが、画像に新しい効果を加えるtjsを作りたいと思います。
効果の関数部分は出来てるのですが、具体的にそれをどう反映させれば良いのかその方法がわかりません。
画像を直接弄って変化させるdllは見つかるのですが、1から画像に手を加える参考に出来るtjsファイルが見当尽きませんでした。
これを参考にすれば良いと言うのはあるでしょうか?
0123名前は開発中のものです。2011/02/11(金) 16:06:38ID:WSwbNMpH
>>122
Layeにある getなんたらPixel/setなんたらPixel

で一応なんでもできる。使い方は吉里吉里リファレンス参照。
ただし機能的には問題ないけど速度的にはオーバーヘッドが大きすぎて
効果用の処理には厳しいよ。素直にCで書いて組み込むほうが良い。
0124名前は開発中のものです。2011/02/11(金) 17:04:54ID:gz2Pwne0
>>123
やっぱりCで組むしか無いのですね。
さすがにCまではやってないです。
また勉強しないといけないんですね・・・・
0125名前は開発中のものです。2011/02/11(金) 18:08:09ID:2qR1M5vy
一応、RGBα全部の数値を弄れるから、画像を好きな形に変える事は出来るんだけど、
全ピクセルに処理を施してsetして、それを複数枚…とかやったら、レスポンスが返って来なくなったw
リアルタイムとか先ず無理で、バッチ的に処理するにしても、とても実用に耐えるレベルじゃない。

>>123が言う様に、素直に下位レイヤー叩いた方が良いねぇ。

後、tjsで関数作ってるレベルなら、ポインタの概念とライブラリの中身さえ分かってしまえば、
そんなに難しいモンでもないから、そんなに気負う事もないかと。
0126名前は開発中のものです。2011/02/11(金) 20:41:46ID:cv99fiNS
>>124
https://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/
ここのLayerExなんちゃらのソース見たら参考になるかな?
処理自体は出来てるなら、Cに書き換えて該当部分を差し替えれば動いたりして。
01271222011/02/11(金) 21:04:37ID:gz2Pwne0
>>125
試しにテストしてみましたが、やはり恐ろしく重たいですね・・・・・
確かにちょっと実用的とは言えませんでした。
他の手段を考えないと。

>>126
実は今丁度そのlayerExRasterが同じような処理をしてるようだったので見てたのですが、AsObjectNoAddRefなど重要そうな単語の意味がわからず、
さらにmainImageBufferPitchやmainImageBufferForWrite等の見慣れないプロパティをリファレンスで参照してさらに頭を抱えてました。

あとlayerExRasterを試しにコンパイルしてみようとしたのですが、何か足りないのかエラーでコンパイル出来なくてやはり初歩的な知識くらい無いとダメなのかと思いました。
(xp3filterなどいくつかはコンパイル出来たのでなにか足りないんじゃないかと思いますが )
0128名前は開発中のものです。2011/02/12(土) 18:41:10ID:S40hiv+3
吉里吉里やtjs組むにはやっぱり秀丸がいいのかなぁ
ずっとmifesなんだが。。。。
0129名前は開発中のものです。2011/02/12(土) 21:37:52ID:M58LL2rf
自分はEmEditorの無料版だなあ
自分に合ったヤツが一番だと思うよ
0130名前は開発中のものです。2011/02/12(土) 23:10:02ID:FyIidfIA
秀丸とかの吉里吉里用セッティング?使ってる人使い勝手とかどうなんだろ
0131名前は開発中のものです。2011/02/12(土) 23:11:57ID:Z20utz7t
質問です
KAGのボタンを後からTJSで非表示にしてみたら
クリックは出来ないのにキーボードからは選択できちゃうんだよね
確認してみたらfocusableはちゃんとfalseになってるし
どうしたらいいでしょうか?
MessageLayer.tjsを弄る必要があればどこら辺とか教えて貰えると助かります
0132 冒険の書【Lv=1,xxxP】 2011/02/13(日) 00:40:19ID:Nddze20W
慣れてしまったエディタが一番だと思う。
秀丸派だけれど、フリーソフト最強ならsakura editor。
広いカスタマイズができる。

mifesはiniファイルを直接弄れるので好きだったけれど、
最近のはムリっぽいね。

秀丸なら吉里吉里用のマクロも幾つかアップされているのがいい。
”秀丸でgrep”というツール(というかinfインストール)を入れることもお勧め。
0133名前は開発中のものです。2011/02/13(日) 00:50:48ID:chaa4PxZ
ずっとサクラ使ってるなぁ。
設定でそこそこの使い勝手は得られるので、替える動機付けに乏しくなる。
0134名前は開発中のものです。2011/02/13(日) 02:22:42ID:L4kq+ciB
KKDE2のバージョンアップまだー
01351312011/02/13(日) 02:26:33ID:SiQe8osp
MessageLayer.tjs弄ってたらできたわ
失礼した
0136名前は開発中のものです。2011/02/13(日) 12:42:14ID:MiTt5ymI
彼氏が秀丸使ってた、別れたい
0137名前は開発中のものです。2011/02/13(日) 16:32:54ID:k84HpGk7
初心者な質問ですみません。
タイトルをランダムに表示されるようにしたいのですが、
@eval exp="tf.title=intrandom(1,3)
[if exp="tf.title=1"]
[image storage="title1" layer=base page=fore]
[if exp="tf.title=2"]
[image storage="title2" layer=base page=fore]
[if exp="tf.title=3"]
[image storage="title3" layer=base page=fore]

これですると何度やっても3の画像しか出てきません。
対処法はありますか?
0138名前は開発中のものです。2011/02/13(日) 16:52:13ID:9RIfJ8I3
等しいかどうかの判定をするときは=ではなくて==を使わないといけないよ
=だと代入になってしまうので
「3と等しいか判定する」つもりなのだろうけれど「3を代入する」という意味になってる

あと、いろいろ閉じてないような気がするけど。"とか[endif]とか
0139名前は開発中のものです。2011/02/13(日) 17:10:12ID:k84HpGk7
あ、修正前の方貼っちゃった…
ありがとうございます。=の使い方を勘違いしてました。
0140名前は開発中のものです。2011/02/13(日) 17:29:04ID:hs/nBGW+
>>137

今日は暇だから俺がもう少し飛びにくいように書き直してやる

*titke_change
[eval exp="tf.title = intrandom(1,3)"]

[if exp="tf.title == 1"]
[image storage="title1" layer=base page=fore]
[jump target=*titke_change_end]
[endif]

[if exp="tf.title == 2"]
[image storage="title2" layer=base page=fore]
[jump target=*titke_change_end]
[endif]

[if exp="tf.title == 3"]
[image storage="title3" layer=base page=fore]
[jump target=*titke_change_end]
[endif]

[image storage="title1" layer=base page=fore]
[jump target=*titke_change_end]

*titke_change_end

ドヤ顔で出すほどのもんじゃないけどこれで最低限どんな値が返ってきてもとりあえずどれかは表示される。
0141名前は開発中のものです。2011/02/13(日) 17:45:20ID:9RIfJ8I3
いや、その値はintrandomで自分で生成してるんだから
気にするんだったらそこじゃないだろ…

気にするなら、なんかの事情でtitle1.jpg等が存在しない場合とかだろ
その場合は存在するもののうちからどれかをかわりに表示するみたいな
0142名前は開発中のものです。2011/02/13(日) 17:56:19ID:hs/nBGW+
それが案外そうでも無い。
ランダムで表示する画像が増減する事は結構あるし、そのときにintrandomの数値を間違って設定する事とか結構あるよ。
あと > < などでやってると、案外=が抜けてたり。
まぁ今回はintrandomの数値だけど、似たような状況はいくらでもあるから、飛びにくく作っておくのは大事。
存在しないものはTJS使わないと吉里吉里タグだけじゃ無理だからさすがに初心者にそれは難解過ぎ。
0143名前は開発中のものです。2011/02/13(日) 18:17:56ID:9RIfJ8I3
うーん、
バグ防止のために「一致してなきゃならないもの」が存在するのを嫌うのは
非常にもっともなことなのだけれど、
セーフティネットというのはバグの温床(見逃してしまう)でもあるので
その最後のcase defaultに相当するところはcond="!debugmode" とかをつけたいような
まあ思想の問題かと思いますが

というか、バグ防止のためにということであれば、今回については
ファイル名の一覧を ["title1", "title2", "title3"] のような配列で与えることにして
intrandomの範囲も「1,3」などと手動で直接書くのではなく
その配列の要素の数から自動的に取るようにするとかかね
0144名前は開発中のものです。2011/02/13(日) 18:18:57ID:nsK8f981
else タグと elsif タグの存在も思い出してあげてください
0145名前は開発中のものです。2011/02/13(日) 18:21:57ID:9RIfJ8I3
ちょww
「そうかelseやelsifってなかったのか、最近離れてたから記憶があいまいになったな」
って思ってた
0146名前は開発中のものです。2011/02/13(日) 19:08:53ID:hs/nBGW+
>>143
たしかにバグの温床にはなりやすいよね。
この条件なら飛ぶはずなのになんで飛ばずに動き続けてるんだろう?とか小一時間ミス探す事が時々ある。

.addで配列に組み込むのが理想だね。
.countで数は取得出来るし、便利なのよね。
ただ、駆け出しの頃は配列は俺にはとても難解だった。
一番使わなくても支障のない物だけど、使えるのと使えないじゃ格段の差が出るのよね。
0147名前は開発中のものです。2011/02/13(日) 19:12:37ID:hs/nBGW+
あと吉里吉里はとてもシステムとして安定してるから関係無いんだけど、ずっといろんなプログラマーのオリジナル言語でやってたから、ついコマンドが返す数値を100%信用しない変なクセがついてしまってるのよ。
特にランダム系は経験上かなり不安定な事が多かったせいでついね。
0148名前は開発中のものです。2011/02/13(日) 23:28:42ID:p1EMTXxB
質問です。
inputタグで表示される画面を吉里吉里画面の中央に表示させることはできるでしょうか?
今現在、ディスプレイ中央に表示されてます。
0149名前は開発中のものです。2011/02/14(月) 00:20:07ID:vDQ+aOmt
え?
>今現在、ディスプレイ中央に表示されてます。
どうしてこうなった!?
0150名前は開発中のものです。2011/02/14(月) 01:27:12ID:Do9qEUJ1
想像してワロタww
0151名前は開発中のものです。2011/02/14(月) 02:36:11ID:xwSZlZFK
>>148 kagやtjsだけでは無理。
自分も質問です。
hiddenMethodに渡す引数と戻り値を教えてください。
0152名前は開発中のものです。2011/02/14(月) 12:01:36ID:E8mP+/zs
すみません、初心者でいくつか理解出来ない事があって質問です。
音を鳴らす関数のサンプルとしてこう言うのを貰いました。

function Hist_sound( sound,buf )
{
return "kag.se[buf].stop(), kag.se[buf].play(%[ storage : '" + sound + "'])";
}

まず'" + sound + "'と言うのはどう言う事をやってるのでしょうか?
storage名をstringで持とうとしてるのかと思いますが、前後の+の意味と2回括ってる意味がわかりません。
次にreturnの後の""で全体を括ってる意味もわかりませんし、中で""を使ってるのになぜ使えるのかもわかりません。
またこれは中身を見る限り単に音を鳴らしてるだけのようなので、

function Hist_sound( sound,buf )
{
kag.se[buf].stop();
kag.se[buf].play(%[ storage : '" + sound + "']);
}

これではダメなのでしょうか?
0153名前は開発中のものです。2011/02/14(月) 13:36:49ID:Y5ght41y
その関数は「音を鳴らす関数」ではなくて「音を鳴らすためのコマンド文字列を作る関数」です
0154名前は開発中のものです。2011/02/14(月) 13:51:51ID:E8mP+/zs
>>153
hactに組み込まれていた部分なのでまさにその通りだと思うのですけど、1つは上で書いた疑問は他のところを読んでも出て来ると思いましたので質問だったのですが、

コマンド文字列を作る関数と言うことは、これを呼ばれると一体何をどのように返すのでしょうか? ""等の読み方が分からずどう言う事をしてるのかぼんやりとしか分からないのです。
初歩的で申し訳ありません。
0155名前は開発中のものです。2011/02/14(月) 14:01:35ID:E8mP+/zs
少し検証してわかったのですが、"'"'テスト'"'"みたいな入れ子だと""の中の''の中の""は使えるのでしょうか?
とすると+ sound +と言うのは、soundと言う引数では無く、単に+ sound +と言う文字列を返してるだけなのでしょうか?
すると受け取ったsoundと言う引数はどこに?と言う事になるので、たぶん違うとおもうのですけど。
0156名前は開発中のものです。2011/02/14(月) 14:05:32ID:Y5ght41y
まずは TJS のリファレンスを一通り眺めるくらいはしましょう。

"" は文字列をしめすくくりです。TJSでは便宜のため '' と "" いずれも文字列の記述につかえて、
また、' は "" の中でエスケープせずにつかえて、" は '' の中でエスケープせずに使えます。
詳細は「文字列即値」でリファレンスを検索してください。

そして、その関数は、

"kag.se[buf].stop(), kag.se[buf].play(%[ storage : '"

sound (変数。中身は文字列)

"'])"

の3つの文字列をつなぎあわせようとしています。結果返されるのは

kag.se[buf].stop(), kag.se[buf].play(%[ storage : '渡されたファイル名'])

という文字列です。

なお単にならすだけなら kag.se[buf].play(%[ storage :sound]); で良いです

余談ですがこれバグってますよね。buf が展開されてません。そのままだとたぶんエラーでしょう。もしかしたら
たまたま buf という変数があって鳴ってるかもしれませんが……。その関数くれた人とやらに確認したほうがよいです

もう一つ余談ですが、文字列への変数展開はTJSでは次のように書くことができます。詳細は @ でTJSリファレンスを検索のこと。

return @"kag.se[${buf}].stop(), kag.se[${buf}].play(%[ storage : '${sound}'])";
0157名前は開発中のものです。2011/02/14(月) 14:42:23ID:E8mP+/zs
>>156
細かい説明と指摘本当にありがとうございます。
おっしゃる通りに、貰った物がこちらでは鳴らなくて、どこが悪いんだろうかと探してる時にこの関数を見つけて読み方が分からずこのスレに泣きついてしまいました。
相手側の方ではこれで鳴ってるそうなので、違う物を渡されたのか、それとも何か勘違いしてる可能性が高そうです。
本当に助かりました。
これからもう一度相手側に確認取ってみます。
ありがとうございました。
0158名前は開発中のものです。2011/02/14(月) 15:39:50ID:E8mP+/zs
"kag.se[" + buf + "].stop(), kag.se[" + buf + "].play(%[ storage : '" + sound + "'])"

これから試すつもりですけど、たぶんこうじゃないとダメぽいですね。
returnの後の”に対応する”が;の前の奴だと勘違いしたまま+の前の奴が対応してた"だと思いもしなかった自分のバカバカ。
0159名前は開発中のものです。2011/02/14(月) 21:11:18ID:RqYc83Xu
evalするより関数渡したほうがオーバーヘッドも少ないしセキュアだと思うんだが。
簡単に乗っ取れるよね、それ。
0160名前は開発中のものです。2011/02/14(月) 23:20:56ID:0qKfv/Yz
質問させてください。
縁取り文字使用時、連続ダッシュ(――)で字間に縁の色が入ってしまうのですが
これを綺麗に繋ぐようにする方法ってないでしょうか?
字間を調整してみても、後ろ側の縁に塗りつぶされてしまうようなのです。
0161名前は開発中のものです。2011/02/15(火) 02:04:40ID:4LFE3fe/
>>160
「■複数の横棒(───)を書く時は」
ttp://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html#multibar
…ってそのものずばりだと思うが如何。
0162名前は開発中のものです。2011/02/15(火) 03:04:43ID:Rse+nHdS
罫線とか三点リーダが連続するときはパーサ側で1文字づつchに分解するのをヤメて一度スタックに積んでもいいと前に思ったことがあるなぁ。
それに、いちいちばらすと文字列のサイズとか前進幅とか狂うしさ。
0163名前は開発中のものです。2011/02/15(火) 06:59:25ID:Ag0aN+GZ
文字関連の弱さに定評のある吉里吉里
0164名前は開発中のものです。2011/02/15(火) 08:12:32ID:Dav6HMUs
>>160
有り難うございます。
お陰様で理想通りの表次になりました。
0165名前は開発中のものです。2011/02/15(火) 08:13:19ID:Dav6HMUs
>>161宛です。
すみません。
0166名前は開発中のものです。2011/02/15(火) 14:36:48ID:OjWV4otJ
質問よろしくお願いします。
複数の選択肢の中から2つ選ぶと次に進むという構成で
1つ目の選択肢を選んで選択肢群に戻ってきた時に
その選んだ選択肢を再度選べないようにするにはどうしたらよいでしょうか?
タグリファレンスを見ながらなんとかやって来たのですが
本当に分からなくなってしまいました
ご教授よろしくお願いします。
0167名前は開発中のものです。2011/02/15(火) 14:54:37ID:ohISBHHz
>>166
「選択肢を選んだ」という変数で分岐させなさい
0168名前は開発中のものです。2011/02/15(火) 14:55:28ID:FQniGo0m
[link target=*select1 cond=f.flag[1]==0]選択肢1[endlink][r]
[link target=*select2 cond=f.flag[2]==0]選択肢2[endlink][r]
[link target=*select3 cond=f.flag[3]==0]選択肢3[endlink][r]

*select1
[eval exp="f.flag[1]=1"]

*select2
[eval exp="f.flag[2]=1"]
0169名前は開発中のものです。2011/02/15(火) 14:57:22ID:0V8l3OVm
>>166
情報が少なすぎて何ともいえないけど、選択肢を出すタグ群をif文で制御して、
その選択肢に飛んだ場合、if文の条件が否定される様にするのが一番簡単かと思う。

イメージとしてはこんな感じ

*ここから

@if exp="tf.sentaku1==void"
<選択肢1を出すマクロなりタグ>
@endif

@if exp="tf.sentaku2==void"
<選択肢2を出すマクロなりタグ>
@endif

*sentaku1
<飛び先>
@eval exp="tf.sentaku1=1"
<“*ここから”に戻るマクロなりタグ>
[s]
この方法で出なくは出来るけど、表示上はおいしくない。
出さない選択肢の部分を灰色にするとか、消すとかによって
色々処理を追加する必要があるとは思う。
0170名前は開発中のものです。2011/02/15(火) 15:22:59ID:OjWV4otJ
>>167さん
>>168さん
>>169さん

素早い返答本当にありがとうございました。
教えて頂いたことで試行錯誤していきたいと思います。
ありがとうございました。
0171名前は開発中のものです。2011/02/15(火) 16:14:10ID:eoTU6IqZ
マクロをTJSで動かす方法は無いのかな?
conducterの配列に収納されてるみたいだけど上手い方法が見つからない。
出来たところで、全部のタグに対応するわけじゃないけど。。。。
0172名前は開発中のものです。2011/02/15(火) 16:21:50ID:ubsjfjaE
【ゲーム制作】サスペンスギャルゲー 『フクロマンス』 【スタッフ募集】
http://ex14.vip2ch.com/test/read.cgi/news4gep/1277294113/
0173名前は開発中のものです。2011/02/15(火) 16:34:33ID:mADjNJ6B
>>171
マクロをTJS……って具体的にどういう役割を想定してるの?
 1. 今現在TJSで何かスクリプトを書いていて、その中でKAGのマクロ/タグを機能させたい
 2. 今組んでいるマクロの中でTJSスクリプトを使いたい(evalタグ毎度毎度打ち込むのがめんどい)
 3. その他

とか、一つの文面でいくらかの解釈が有るんだが……
0174名前は開発中のものです。2011/02/15(火) 16:40:40ID:0BpiwOhd
>>171
↓の759,760,767
ttp://bbs.bokunatu.com/test/read.cgi/krkr/1195603475/
0175名前は開発中のものです。2011/02/15(火) 17:19:10ID:OjWV4otJ
御助言のおかげで大元の骨格が完成しました。
本当にありがとうございました。
0176名前は開発中のものです。2011/02/15(火) 17:41:23ID:eoTU6IqZ
>>173
特に想定は無いんだけど時々iscriptでtjsパート書いたりしてるとこっちで書くよりマクロで組んで呼び出した方が処理スピードはともかく楽に書けるよなとか思う時があったりするけどそのたびにendscriptして呼び出して戻るとか格好悪いなと。
あと全体をTJSで組んでると、movie関係とか思ったよりTJSで組むのが面倒な場合があったりするからそんな時に楽かなと。
マクロを作っておいて呼び出せば、複雑なタグ群でも一行で済んじゃうから。
概ね楽するための方法として。
マクロの方がバグ見つけるの楽だしね。

>>174
なんか使えそうな感じのレスだね。
ちょっと詳しく読んでみる。
0177名前は開発中のものです。2011/02/15(火) 18:09:42ID:FkfXkijB
>>176
本末転倒やね
TJSを使う時は必ず「タグを作成する」という形で行うようにして、iscript はスクリプト中では使わない、ってほうが結果的には奇麗になると思うよ
0178名前は開発中のものです。2011/02/15(火) 18:41:03ID:eoTU6IqZ
>>177
実際そうだと思う。
たまーに急ぎの時とか、TJSで書くよりタグで書いた方が早いんだけど、でもここは絶対TJSじゃないと無理だしまあいいや、とりあえずendscriptして外に出して・・・とかやったりしちゃうのよね。
マクロの中身が百行とかなるとさすがにそれを一々TJSで同じ事やらせようとするときつい。。。。
タグは拡張性がTJSより低い代わりに、簡略化されてて楽に扱えると言うメリットはやっぱり捨てきれない。
俺ってダメダメ。
01791682011/02/15(火) 18:45:01ID:FQniGo0m
; >>166 ごめん、リファレンスチラ見で知ったかで書いた。今は反省している。
; 例: 複数の選択肢の中から2つ選ぶと次に進むという構成で、一度選んだ選択肢は再度選べないようにする
@wait time=200
*start|スタート
[cm]
@eval exp="tf.flags = [], tf.flags[1] = 0, tf.flags[2] = 0, tf.flags[3] = 0, tf.cnt = 0"

*bunki
[cm]
[if exp="2 <= tf.cnt"]選択肢が[emb exp="tf.cnt"]回選ばれました[l][r][jump target=*start][endif]
[if exp="tf.flags[1]==0"][link target=*select1]選択肢1[endlink][r][endif]
[if exp="tf.flags[2]==0"][link target=*select2]選択肢2[endlink][r][endif]
[if exp="tf.flags[3]==0"][link target=*select3]選択肢3[endlink][r][endif]
[s]

*select1
[cm]
選択肢1が選ばれました[l][r]
[eval exp="tf.flags[1]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]

*select2
[cm]
選択肢2が選ばれました[l][r]
[eval exp="tf.flags[2]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]

*select3
[cm]
選択肢3が選ばれました[l][r]
[eval exp="tf.flags[3]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
0180名前は開発中のものです。2011/02/15(火) 19:13:51ID:eoTU6IqZ
2つ選ぶと次に進むと言うのは、選択肢に戻った先で、選択肢を表示する前にifで飛ばせば良いよ。
一つ目と二つ目のメッセージの最後にカウンターかなにかでtf.count++とかしておいて、戻った先で選択肢の前に if(tf.cout>=2)とかすればいい。

一度読んだ選択肢を表示させないのはそれもフラグで管理して>>168みたいにcondで制御すればいい。
0181名前は開発中のものです。2011/02/15(火) 20:58:36ID:AE4Z+Hd8
昔からいろんな言語で1ファイルに多言語混在させるなと言われてきたのになんでiscriptなんてあるんだろうか。
スクリプトなのに低レベルな制御文しかなかったり文字列処理やバッチ処理に弱かったりDeeタンはドMだよね。
0182名前は開発中のものです。2011/02/16(水) 01:18:22ID:i43onDkY
>昔からいろんな言語で1ファイルに多言語混在させるなと言われてきたのに
聞いたこと無いなぁ。本当?
0183名前は開発中のものです。2011/02/16(水) 05:04:29ID:PFl5tPzr
CのマクロだとかHTMLの中にCSSやJS埋込みだとかXMLにDTDだとかいくらでもあるだろ
0184名前は開発中のものです。2011/02/16(水) 09:50:39ID:wh0vq7x9
PHPさんがアップをはじめました
0185名前は開発中のものです。2011/02/16(水) 10:36:39ID:fnJHfEYP
>>181
html
0186名前は開発中のものです。2011/02/16(水) 11:24:35ID:auVMvR/S
TJSが低レベルなのはDeeタンの好みなんでしょ
電子工作が趣味だったりするみたいだし
吉里吉里のソースコード見てもやたらと低レベルな一行一行コードがダラダラと続く感じだし
0187名前は開発中のものです。2011/02/16(水) 12:06:32ID:wjFNoLFy
何が低レベルなのかさっぱり分からん
こやつ、狂いか
0188名前は開発中のものです。2011/02/16(水) 12:49:26ID:ggf6fWY5
いやならやめてもいいんじゃぞ
0189名前は開発中のものです。2011/02/16(水) 13:28:04ID:RLCp7sg6
高級言語とか低レベルとか誤解を招くから改称し手板抱きたい
■ このスレッドは過去ログ倉庫に格納されています