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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/10/10(火) 06:04:10ID:gTzd6sC4
ノベル製作ツール吉里吉里/KAGを使用している人達が雑談や質問をするスレッドです。
本家BBSで聞きづらい質問や初歩的な質問などでもよいのでわからないことがあればどうぞ。
自分のゲームの進行状況や製作ツール等についての話、TJS等の質問もお待ちしています。
マルチポストはやめましょう。個人叩きも禁止です。

8 http://pc8.2ch.net/test/read.cgi/gamedev/1147590108/
7 http://pc8.2ch.net/test/read.cgi/gamedev/1138099311/
6 http://pc8.2ch.net/test/read.cgi/gamedev/1116774771/
5 http://pc8.2ch.net/test/read.cgi/gamedev/1095183786/
4(タイトルは3) http://pc5.2ch.net/test/read.cgi/gamedev/1081199649/
3 http://pc5.2ch.net/test/read.cgi/gamedev/1067436686/
2(再利用) http://pc2.2ch.net/test/read.cgi/gamedev/1044256119/
1 http://pc2.2ch.net/test/read.cgi/gamedev/1021890648/

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

【公式】
kikyou.info
http://kikyou.info/

吉里吉里ダウンロードページ
http://kikyou.info/tvp/
0499名前は開発中のものです。2006/11/23(木) 06:24:23ID:irm9SzXn
というかまず1.001*1000やってみろよw
0500名前は開発中のものです。2006/11/23(木) 06:50:36ID:c2s9nmnD
浮動小数点誤差については、公式でも既出ね。
ttp://kikyou.info/tvp/bbs/bbs.cgi?mode=&action=treeall&num=9186

念のために言っとくと、これはtjsの問題じゃないよ。
浮動小数点数を採用してる限り避けられないことだから。
どのプログラム言語でも起こりえること。
0501名前は開発中のものです。2006/11/23(木) 09:57:20ID:TDrWVdnY
>>499
?? ごめん、どういう意味なのかよく分からない。
>>498>>500
レスthx。自分の知識不足が露呈したよorz
0502名前は開発中のものです。2006/11/23(木) 17:57:30ID:sKB6jxxW
質問させてください。
選択肢で、

1教室
2廊下
3トイレ

とあって、3以外の選択肢を選ぶとまたこの選択画面に戻ってくるしくみにしています。
わからないのはここからで、
二回目以降の選択画面でさっき選択したのと同じ選択肢を選ぶと、
「そこはもう行ったじゃん・・・・」
というセリフとともにまたこの選択画面に戻したいのですが、
タグは何を使えばいいでしょうか。
教えてください、お願いします。
0503名前は開発中のものです。2006/11/23(木) 18:09:01ID:hkxYJe3X
変数とifとjumpなりcallなり
0504名前は開発中のものです。2006/11/23(木) 18:09:30ID:dn+I0zA3
そこまで局所的なタグなぞあるわけねぇだろ

ifやらを駆使して自分で組め
0505名前は開発中のものです。2006/11/23(木) 18:25:59ID:gK6qh6P6
condで選択肢自体消した方がいい。
0506名前は開発中のものです。2006/11/23(木) 18:33:01ID:sKB6jxxW
わかりました。ありがとうございます、頑張ります。
0507名前は開発中のものです。2006/11/23(木) 19:19:41ID:sKB6jxxW
すいません、あともうひとつだけ。
苗字[edit name="f.苗字" length=100 maxchars=10]
名前[edit name="f.名前" length=100 maxchars=10]
で、苗字と名前設定画面が出る時に、
あらかじめデフォルトの名前をテキストボックスに表示させておきたいのですが
どうしたらいいでしょうか。何度もすみません。
0508名前は開発中のものです。2006/11/23(木) 19:24:05ID:sKB6jxxW
自力で解決しました、お騒がせしました。
0509名前は開発中のものです。2006/11/23(木) 21:40:51ID:Xg0d5Hnm
普段はNスクを使っている者です。質問失礼します
吉里吉里/KAGではADVしか作ったことがないのですが、
今回アイテム作成系のSLGの製作に挑戦しています
変数処理など一部にのみTJSを使っていたら
製作途中の段階で150Mを越えてしまいました
なるべく簡単に容量を小さくしたいと思うのですが
やはり判定など、TJSで処理する部分を増やしたほうがいいのでしょうか
それともいっそのことNスクで製作し直したほうが簡単で容量も少なく済むでしょうか
あまりTJSを使っていないので、仕組みをまだよく理解していません
どなたかご教授お願いします
0510名前は開発中のものです。2006/11/23(木) 21:44:42ID:hkxYJe3X
どの部分に150MBかかってるのか知らんが
スクリプトの部分はテキストだから
TJSでもそうでなくても容量の面では大差ない
0511名前は開発中のものです。2006/11/23(木) 21:47:09ID:UnyOhRP1
スクリプトの方だろうが、保存データのことだろうが、容量の面では大差なかったと思う。
0512名前は開発中のものです。2006/11/23(木) 21:47:36ID:fIx2TOSh
スクリプトが150MB?
なにやってんだかしらないけど
フツーはそんなことにはならない

画像とか入れて150MBってこと?それでTJSつかって
それが小さくなるとおもったからそういうこといってんの?

どうにしろなにいってんだか分からん
0513名前は開発中のものです。2006/11/23(木) 21:57:55ID:jDbKdlfp
文字情報だけで150Mってどんだけだしwwwwww
0514名前は開発中のものです。2006/11/23(木) 23:06:55ID:Xg0d5Hnm
すみません、全体での容量でした
シナリオで約3M、それを合わせたスクリプトで20Mくらい使っています
データの処理が多少重いです
0515名前は開発中のものです。2006/11/23(木) 23:11:19ID:fIx2TOSh
で、何をしたいの?
0516名前は開発中のものです。2006/11/23(木) 23:55:10ID:DrtvuGH4
>>509
リソースのフォーマットを圧縮重視にした方が現実的だ
たとえば256色しか使ってないならgifより8bit pngの方が圧縮率高いとか

むしろ画像データとかで無駄に色数保持してたりする可能性の方が高いよ
動画のフレームレートが無駄に多かったり、ビットレート無駄に挙げてたりさ

そっち方向を考えろ
0517名前は開発中のものです。2006/11/23(木) 23:56:23ID:MVZnbMl7
>>509
状況を正確・詳細に伝えられるようになってから質問してくれ。
アンタがするべきは150MBの内訳をもっと細かく書くことだ。

背景画像が何枚で何MB、何形式を使っているのか
前景画像が何枚で何MB、何形式を使っているのか
その他の画像が何枚で何MB、何形式を使っているのか
 (αチャンネルつき画像なのかマスク画像を使っているのかも)
音声が何個で何MB、何形式を使っているのか
動画が何個で何MB、何形式を使っているのか
シナリオが何MBあるのか→3MB
KAGシナリオが何MBあるのか→20MB
自作TJSスクリプトが何MBあるのか

せめてこれくらい書いてくれ。

KAGシナリオ、自作TJSスクリプトに関しては一部で構わないから
晒してくれた方がより適切な回答が来るだろう。

状況から察するに、似たり寄ったりのタグを繰り返し書いてるだけ
じゃないのか? 力業でそう言うことをやる人は確かにいるけどな。
05185092006/11/24(金) 00:55:34ID:krWk++Jq
皆さんレスありがとうございました
すみません、製作途中なので画像などの全体的な容量は把握できていません
僕は担当ではないのでわかりませんが、サウンドはフリゲなので軽くしてあるそうです
画像もひとつひとつはそんなに重くはないです
ただ、移動箇所が多いので場面がよく動きます
自作TJSは知識がないので使えません。KAGシナリオの容量はまだ増えます

純粋にシナリオファイルのことを訊きたかったので、話が大きくなってしまい申し訳ないです
もう少し頑張ってみますが、皆さんのご意見ではテキスト分はあまり大差ないようなので
今後のために勉強してTJS処理を増やして吉里吉里で完成させてみようと思います
スレ汚しすみませんでした
0519名前は開発中のものです。2006/11/24(金) 01:04:59ID:HYxPXGB+
日本語って
難しいな……

俺たちって
無力だな……
0520名前は開発中のものです。2006/11/24(金) 01:18:31ID:bg88eBhF
言葉って言うのは同じ文字でも意味が多数ありますからね
0521名前は開発中のものです。2006/11/24(金) 01:23:07ID:bg88eBhF
一応文字の容量としては
半角文字1文字が1バイト、全角文字1文字が2バイトの計算になりますね。
あとフォルダからのプロパティーでの容量表示ですが
クラスタサイズが64KBとかで大きいと、たとえ一つ一つのファイル容量が
小さくても。
たとえば1KBしかなくても64KBの容量を使います。

正しい容量を見る場合は「ディスク上のサイズ」ではなく
「サイズ」と書いている方の容量を見た方が良いですね。
0522名前は開発中のものです。2006/11/24(金) 01:25:47ID:96dtWH9I
シナリオを抜いて17Mのスクリプトって、ちょっと想像も出来ないくらいの巨大さだな。
SLGってことは、何度も再現される場面をその都度記述してたりしないか?
マクロで重複部分を圧縮するとか、気をつけてる?
0523名前は開発中のものです。2006/11/24(金) 01:27:30ID:bg88eBhF
あとTJSを使用しなくても、おそらくそのスクリプトの増加は
同じような処理のスクリプトを何度もコピペしているかもしれませんね。
その場合はマクロを使った方が良いかもしれません。

TJSはKAGの機能と言うよりプログラムそのものですから
JAVAやVISUALBASIC.NET、C++並のオブジェクト指向プログラムの
基礎が解ってないと弄ることもままならないと思います。
そう言う物を理解した前提でのマニュアルになっていますし。
0524名前は開発中のものです。2006/11/24(金) 01:28:30ID:gI1M0mdo
>純粋にシナリオファイルのことを訊きたかったので
なら初めに150Mって数字を出すな。

…と言いたいが、フリゲなら許せるw
かなり大作っぽいな。ぜひがんがってくれ。
0525名前は開発中のものです。2006/11/24(金) 01:33:26ID:R1/lrAU0
SLGってことは、アイテムとかの各種データとかそういうのあるんだよね?
まさかそれらをコード内部に含めてないよね…?
それ抜いて17MBなんだよね…?
0526名前は開発中のものです。2006/11/24(金) 01:37:05ID:FioLl833
本人が詳細を語らないんだから推測するだけ時間の無駄だよ。
0527名前は開発中のものです。2006/11/24(金) 03:44:32ID:+NBL0PUg
うちのノベルもシナリオ100kbでスクリプト1MB越える。
想像出来ないは言いすぎでは。大体セリフ一つで20行くらい使ってる。
0528名前は開発中のものです。2006/11/24(金) 03:58:26ID:Xf4NwZlJ
セリフ一つに一行しか使わない俺はまだまだですねw
0529名前は開発中のものです。2006/11/24(金) 04:17:29ID:txQDm1ZX
>527
それも凄いな…
そうとうアクティブなノベルなのかな
0530名前は開発中のものです。2006/11/24(金) 05:05:21ID:QU/4gfoo
マクロ使ってないんでしょうな
どっちにしろ圧縮すりゃ4分の1から5分の1くらいに縮むかな?
0531名前は開発中のものです。2006/11/24(金) 05:07:30ID:9hMZO1PK
>527
煽りじゃなくてマジでどんな挙動するのか教えてくれ
FFDみたいなシステムでも実装してるのか!?
ttp://www.littlewitch.jp/products/clovers/system.html
0532名前は開発中のものです。2006/11/24(金) 07:18:20ID:+NBL0PUg
>531
普通にセリフ毎にラベル打ったり、立ち絵表示変えたり、
ボイスのボリュームキャラごとに変えたり、キャラごとのテキストカラー変えたり。
あとサブルーチンからの復帰はtargetをラベルにしてるので
セリフの履歴重複表示を禁止したりかな。

まぁ基本的にみんなが言うようにマクロはほとんど使わず必要最小限にとどめてる。

あと余談だけどFFDとまでは言えないけども吹き出しセリフ処理とカットイン、
コマ内スクロールなんかも座標さえ求めておいたら出来るようにはしてあるよ。
見せ方が大変だから実用にいたってない(´A`)
FFDがスゴイのはシステムじゃなくて演出を考えるセンスと労力だと思う。
0533名前は開発中のものです。2006/11/24(金) 08:27:30ID:xPkkMqUA
>>532
なんでマクロを最小限にとどめているんだ?
そんなにスクリプトばかりあるとシナリオの修正が大変じゃないのか?
0534名前は開発中のものです。2006/11/24(金) 09:59:51ID:togbHmW1
確かに…。
あんまり多機能マクロ作るのも良くないかも知れんけど
それくらいは一つに纏めちゃっていいんじゃないか
単純計算で容量も1/20になる訳だし、デメリットは特にないと思うけどな…。
0535名前は開発中のものです。2006/11/24(金) 11:23:59ID:+NBL0PUg
>533-534
自動出力してるからむしろマクロにするメリットがあまりないんだ。
軽量化といってもゲーム全体で数百MB以上あるところから数MB程度の話だし。
うちは1MB以上のシナリオなんて作ったことないからw
スクリプトひな形→自動プログラムに組み込み→出力
スクリプトひな形→マクロ作成→自動プログラムに組み込み→出力
こんな感じで一手間増えるだけの感覚。
0536名前は開発中のものです。2006/11/24(金) 12:01:10ID:wdxAfOUO
マクロ呼び出しは最適化されるからかなり実行速度が上がるぜ
0537名前は開発中のものです。2006/11/24(金) 12:40:14ID:Pxwc7iwi
最適化はしないだろう
0538名前は開発中のものです。2006/11/24(金) 13:10:25ID:FOokY2+x
エラーログがもりもり増えて、100MB超えたのを気が付かずにいた俺が参上
0539名前は開発中のものです。2006/11/24(金) 13:52:11ID:+XQbViM4
自動出力可能なほど単純なら、それこそマクロ化でもすればいいのにと考える俺の方が特殊なのかな
0540名前は開発中のものです。2006/11/24(金) 14:10:29ID:iUdHJWUG
>>539
どう考えても>>539の方が正常

マクロ使わないんじゃなくてマクロ使えなくて強がってるだけです。
0541名前は開発中のものです。2006/11/24(金) 14:16:24ID:KhSfDPS5
変換後のコードの可読性を気にする方がおかしくないか?
よほど遅いならともかく、問題なく動くなら別に悪くはないだろ。
0542名前は開発中のものです。2006/11/24(金) 14:23:18ID:iUdHJWUG
変更があるたびに全部変換するって発想だとしたら悪い。太刀が悪い。
0543名前は開発中のものです。2006/11/24(金) 14:37:26ID:+XQbViM4
>>541
別に悪いとかじゃないです
そのほうが楽でスクリプトも軽い、というのは俺の勝手な考えですから

でもゴリゴリ自動変換出力したものを
>うちのノベルもシナリオ100kbでスクリプト1MB越える。
>想像出来ないは言いすぎでは。大体セリフ一つで20行くらい使ってる。
ってのはちょっと特別な例じゃないかなと思ったんで
0544名前は開発中のものです。2006/11/24(金) 14:45:11ID:TjxVNix6
そうだなぁ
普通の事みたいに言ってたが、
普通はマクロ使うからな
0545名前は開発中のものです。2006/11/24(金) 20:08:10ID:+NBL0PUg
>543
楽かどうかでいったらマクロは書くのにも直すのにも変換プログラムと
マクロスクリプトを弄らないといけなくなるから楽じゃないんだよ。

「想像出来ない」は言いすぎって思っただけで誰もがやってるとか
そんな事言う気は無いよ。
0546名前は開発中のものです。2006/11/24(金) 20:43:29ID:6yVg3CqM
変換後のスクリプトに手を加えなければ別にいいんじゃね?
スクリプトがデカイ分、読み込む速度とメモリ使用量には影響出るだろうけど
実行速度は問題ないだろうし、作業量が増えるばかりか
エンバグ何てことになったら目も当てられない。
0547名前は開発中のものです。2006/11/24(金) 21:32:31ID:zTdWva/D
>楽かどうかでいったらマクロは書くのにも直すのにも変換プログラムと
>マクロスクリプトを弄らないといけなくなるから

どんだけ糞なマクロ書いてるんだよwww
0548名前は開発中のものです。2006/11/24(金) 21:52:42ID:PYa7x5ip
ところで、マクロってどのタイミングで展開されるんだっけ?
0549名前は開発中のものです。2006/11/24(金) 21:59:48ID:JvYhHSpJ
マクロタグで囲まれた場所を読まれた時点じゃないかな?
だから俺はマクロ専用シナリオファイル作って
first.ksの先頭で読ませてる。

ともあれマクロ使うのにも実行する処理の理論的理解や
何処をどう弄ればシンプルになり、共同の処理に出来るか
とか、結構お勉強通りの数学だけじゃなくて
発想力がいるよね。

絵に挫折してプログラムに走ったけど
最終的に必要な創造力は変わらなくて大変だった。
最後に表現するのが絵か計算かの違いだけでプログラマーもクリエイターなんだと思ったよ。
0550名前は開発中のものです。2006/11/24(金) 22:00:19ID:zTdWva/D
擬似CALLだと思ってたけど、展開されるの?
0551名前は開発中のものです。2006/11/24(金) 22:37:17ID:KLLk3f6N
おまえらちょっとまてbg88eBhFが何気に分かってない件に触れてやれ

>>523
>TJSはKAGの機能と言うよりプログラムそのものですから
まあ確かにC++の生成物のプログラミング言語だ

>JAVAやVISUALBASIC.NET、C++並のオブジェクト指向プログラムの
>基礎が解ってないと弄ることもままならないと思います。
TJSはJSを元にしている。javaやC++にはラムダ式や無名関数やなどが無い
それとTJSのクロージャやcontextof演算子はJS風のクロージャとコンテキストチェーンが理解してないと難しい

contextof演算子なんかはJSやってないとリフレクトしている様にしか見えないと思う

C++はオブジェクト志向にくっついてくるポリモーフィズムやカプセル化なんかをサポートしたに過ぎない

話がずれるがC++な人間にY Combinatorの美しさは理解できないと思う


>一応文字の容量としては
>半角文字1文字が1バイト、全角文字1文字が2バイトの計算になりますね。
utf-8とかutf-16とかたまにで良いので思い出してあげて下さい。


>あとフォルダからのプロパティーでの容量表示ですが
>クラスタサイズが64KBとかで大きいと
テキストで150Mもあったらクラスタの問題じゃない

まあ煽ってるわけじゃないんだ。自分が何やってるかも分かってない奴に許容量以上の情報を流し込んだら暴走するんジャマイカ?
と言いたいんだ。
0552名前は開発中のものです。2006/11/24(金) 22:55:19ID:TjxVNix6
暴走したくなってきますた
0553名前は開発中のものです。2006/11/24(金) 22:58:08ID:phWCv1h7
>>551
きもいよ、お前
0554名前は開発中のものです。2006/11/25(土) 00:05:45ID:rAygKjkF
>548
KAGリファレンス>マクロの属性
これ見る限りだとmacro〜endmacroで定義後、どっかで展開されてるみたい
(プラグインなしで)マクロ中のラベルが機能しないってことは
使用時に展開してるんかな
0555名前は開発中のものです。2006/11/25(土) 00:08:07ID:rAygKjkF
ごめん、>550ね
0556名前は開発中のものです。2006/11/25(土) 01:20:13ID:9uvhzloz
展開も何も文字列として保存してそこからgetNextTagしてるだけじゃねえの?>マクロ
ちゃんと確認してないから知らないけど。
0557名前は開発中のものです。2006/11/25(土) 14:07:57ID:Qzvv6D/K
kagクラスのfunctionとして追加されたりオーバーライドするのでは?
KAG→TJS→きりきり って変換されていくんだよね?確か。
まぁ俺も上に続いてあてずっぽうなわけだが。
0558名前は開発中のものです。2006/11/25(土) 14:22:49ID:8SjtZ4nL
>547
マクロが糞でも上手くてもそこの作業工程はかわらんだろ。
0559名前は開発中のものです。2006/11/25(土) 14:35:14ID:lW3306pr
>>558
変更内容にもよるが、普通はマクロだけ弄ればいいように設計する。

絶対にどっちも弄らないと変更できないようなマクロはマクロのメリットが生きてない。
0560名前は開発中のものです。2006/11/25(土) 15:43:15ID:8SjtZ4nL
>559
新規作成するときは絶対にどっちも触らないといけない。
変更も属性の追加とかだとやっぱりどっちも触らないといけない。
マクロの変更で属性の追加なんてそんなに特殊なケースでもないと思うけど。
0561名前は開発中のものです。2006/11/25(土) 15:56:47ID:W0+AfxYV
はっきり言って、そんな回り道を好んでやる奴の話なんてどうでもいい
0562名前は開発中のものです。2006/11/25(土) 16:41:29ID:F8vTiiqk
スクリプト組んでる途中で仕様変更or追加とかどんなデスマですか
0563名前は開発中のものです。2006/11/25(土) 16:43:06ID:wWSEIqxM
まぁ糞だしな
05645562006/11/25(土) 19:21:41ID:9uvhzloz
>>557
幾ら何でも俺はお前ほどあてずっぽうじゃないよ(;´Д`)
0565名前は開発中のものです。2006/11/25(土) 20:44:10ID:/hiLFfxn
クリッカブルマップでkag.close()またはそれに類する動作を行いたいのですが、
領域アクション定義ファイルにexp="kag.close()";と書くと終了するのですが、
一瞬エラーメッセージ?が出てしまいます
(ポップアップは一瞬で消えるためどのようなメッセージが表示されているかは
確認できませんでした)。
クリッカブルマップを文字またはグラフィックボタンに変更して
linkタグやbuttonタグの後にexp="kag.close()"と記述すれば問題ありませんでしたが、
出来ればクリッカブルマップで実現したいので、
本件でエラーメッセージを出さずに終了する方法をご存知の方がいらっしゃいましたら教えていただけませんか。
0566名前は開発中のものです。2006/11/25(土) 20:52:40ID:wWSEIqxM
>>565
分からないなら少し頭使えばいいと思う
例えば

*end
@eval exp="kag.close();"
とか書いといてtarget="*exit"するとか
0567名前は開発中のものです。2006/11/25(土) 20:54:15ID:wWSEIqxM

×target="*exit"
○target="*end"
0568名前は開発中のものです。2006/11/25(土) 21:37:00ID:/hiLFfxn
>>566
アドバイスありがとうございます。
早速evalで試してみました。
現象は変わりませんでしたorz

別の部分に問題があるのかもしれませんのでもう少し調べてみます。
0569名前は開発中のものです。2006/11/25(土) 21:37:35ID:/hiLFfxn
なおログには下記のように表示されておりました。

21:28:47 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
21:28:47 title.ks : jumped to : *end
21:28:47 処理を開始します
21:28:47 title.ks : [eval exp="kag.close()"]
21:28:47 (info) Rebuilding Auto Path Table ...
21:28:47 (info) Total 181 file(s) found, 172 file(s) activated. (0ms)
21:28:47 YesNoDialog.tjs を読み込みました(16ms)
21:28:47 ButtonLayer.tjs を読み込みました(0ms)
21:28:48 ==== An exception occured at conductor.tjs(441)[(function) onTag], VM ip = 31 ====
21:28:48 -- Disassembled VM code --
21:28:48 #(441) lastTagName = tagname;
21:28:48 00000031 spd %-2.*2, %-4// *2 = (string)"lastTagName"
21:28:48 -- Register dump --
21:28:48 %-6=(int)0 %-5=(object)(object 0x01B0A220:0x01B05064) %-4=(string)"eval"
21:28:48 %-3=(object)(object 0x0322BF50:0x0322BF50)
21:28:48 %-2=(object)(object 0x0012F538:0x00000000)
21:28:48 %-1=(object)(object 0x0322B914:0x0322B914) %0=(void) %1=(int)0
21:28:48 %2=(object)(object 0x01B0A220:0x01B05064)
0570名前は開発中のものです。2006/11/25(土) 21:38:44ID:/hiLFfxn
21:28:48 ----------------------------------------------------------------------------------
21:28:48 オブジェクトはすでに無効化されています at conductor.tjs(441)[(function) onTag]
21:28:48 ==== An exception occured at conductor.tjs(175)[(function) timerCallback], VM ip = 651 ====
21:28:48 -- Disassembled VM code --
21:28:48 #(175) timer.enabled = false;
21:28:48 00000648 const %1, *30// *30 = (int)0
21:28:48 00000651 gpd %2, %-2.*44// *44 = (string)"timer"
21:28:48 -- Register dump --
21:28:48 %-5=(int)0 %-4=(object)(object 0x01ACFFA8:0x01ACFFA8)
21:28:48 %-3=(object)(object 0x0322BF50:0x0322BF50) %-2=(object)(object 0x0012FB14:0x00000000)
21:28:48 %-1=(object)(object 0x0322B914:0x0322B914) %0=(void) %1=(int)0 %2=(int)0 %3=(int)0
21:28:48 %4=(int)353752390 %5=(int)0 %6=(int)423 %7=(int)126 %8=(void)
21:28:48 %9=(object)(object 0x01851448:0x01851448)
21:28:48 -------------------------------------------------------------------------------------------
21:28:48 オブジェクトはすでに無効化されています at conductor.tjs(175)[(function) timerCallback]

21:28:48 スクリプトで例外が発生しました
オブジェクトはすでに無効化されています
21:28:48 trace : event
0571名前は開発中のものです。2006/11/25(土) 21:55:57ID:/hiLFfxn
kag.close()の代わりにcloseを使用した所、解決しました。

なお吉里吉里に付属のマニュアルに下記のように書かれていました。

> kag.close と kag.shutdown
>  kag.close は、KAG を終了させます。終了確認を行う設定にしている場合は終了確認があります。
>  kag.shutdown も KAG を終了させますが、終了確認はありません。
>  なお、終了に System.exit() を使用すると、システム変数が保存されずに終了される場合があるので使用しないでください。また、これらは eval タグの exp 属性では指定しないでください (代わりに close タグを使用してください)。

お手数をおかけしました。
0572名前は開発中のものです。2006/11/25(土) 22:22:50ID:/Uaszx6j
シナリオ中にいきなりkag.close()を呼ぶのは100kmで走ってる車でいきなりエンジンを切るようなもんだ

closeタグが停車してギアをPにしてエンジンを切るという一連の流れをやってくれてると思っておけばいい
0573名前は開発中のものです。2006/11/25(土) 23:42:53ID:wWSEIqxM
>>571
正直、スマンカッタ

ソンナノスッカリワスレテタヨ
0574名前は開発中のものです。2006/11/26(日) 00:19:05ID:mVKEmS2T
>>572
分かりやすい例え、ありがとうございます。
心に留めておきます。

>>573
いえ、アドバイスいただきありがとうございます。
evalから調べる事が出来たので助かりました。
0575名前は開発中のものです。2006/11/26(日) 03:01:03ID:tyyB8kNv
Alt+Rで無確認リセットしたいのですが、ボタンが出ているときに
オブジェクトはすでに無効化されているというエラーが出ます。
どこを直せばいいのか教えてください。

function onKey_GameResetStart(key, shift)
{
if(key == VK_R && (shift & ssAlt))
{
kag.goToStart();
}
}
kag.keyDownHook.add(onKey_GameResetStart);
0576名前は開発中のものです。2006/11/26(日) 04:39:34ID:z28ORVy6
kag.processKeys = function(key, shift) { if(kag.checkProceedingKey(key, shift)) return;
if(key == VK_R && (shift & ssAlt)){ kag.goToStart(); return; }} incontextof this;
こうしても無理?
0577名前は開発中のものです。2006/11/26(日) 11:53:36ID:tyyB8kNv
>>576
いけました。ありがとう。
0578名前は開発中のものです。2006/11/26(日) 21:46:03ID:jXmud19p
Configで;draggable = true;としたのですが
レイヤを移動させても 改ページ?すると
元の場所にもどってしまうのです
初期位置をいじったり リファレンスを調べたのですが
どうしても解決できません

ヒントだけでも教えて貰えませんでしょうか。
05795782006/11/26(日) 22:31:57ID:jXmud19p
よくわからないけど自己解決できました。
既出っぽい質問してどうもすみません
昨日から吉里吉里始めた超初心者ですが
頑張ってゲーム作ろうと思います。
0580名前は開発中のものです。2006/11/27(月) 00:56:41ID:g/+h1vM4
下記のようなマクロでフェードアウトを行おうとしています。
しかしレイヤー座標の取得でつまづいています。
[emb]の箇所で正しい数値が確認できているのですが、
[move]の中では「0(undefined?)」として扱われてしまいます。

path=""の中では変数の展開は行われないのでしょうか?

---------------------
[macro name="fadeOut"]
[eval exp="_tmp.fadeLayer = kag.fore.layers[+mp.layer]"]
[emb exp="_tmp.fadeLayer.left"][l] ←ここでは正しい数値が出る
[move layer="&mp.layer" time="1000" path="('&_tmp.fadeLayer.left','&_tmp.fadeLayer.top',255) ('&_tmp.fadeLayer.left','&_tmp.fadeLayer.top',0)"]
[endmacro]
---------------------
0581名前は開発中のものです。2006/11/27(月) 02:11:04ID:KB1E8Ixt
>>580
つっこみどころが……あなたは多分、リファレンスの読み方が下手なのです。
1. &は属性の最初に置かないと意味がない。
2. ' で囲まれた範囲は文字列扱いになる。その中に変数名があっても、変数とは認識されない。
3. 文字列に付け足しをするときは + を使う。
4. [move]はレイヤを動かすタグ。フェードには通常[layopt]と[trans]を使う。
5. [move]のpathは一つでもOK。
あと、これは飽くまで好みだろうけど、その[move]のlayer属性は % や * でも行けるよね。
ところで、_tmp ってなんなんだろう? TJS詳しくないからわかんないんだけど……


それぞれ何か特殊な用途のために、あえてやってるんだとしたら、見当違いのつっこみは鼻で笑ってやってください。
0582名前は開発中のものです。2006/11/27(月) 02:11:17ID:X6TNW4dS
確認はしてないけど、embで正しい数値が出てるなら
[move layer="&mp.layer" time="1000" path="&_tmp.fadeLayer.left+','+_tmp.fadeLayer.top+',255 '+_tmp.fadeLayer.left+','+_tmp.fadeLayer.top+',0'"]
これで動くかな
あと余計なお世話だったらすまん、
フェードアウトさせるだけなら前半のパスはいらないんじゃないか?
0583名前は開発中のものです。2006/11/27(月) 02:17:06ID:X6TNW4dS
ごめんな>581
何でこう被るかなorz
0584名前は開発中のものです。2006/11/27(月) 03:09:17ID:UkxjZ0jQ
KAGで出したボタンにフォーカスが乗っていると右クリックがきかないので
ButtonLayer.tjs内にらんかさんのをコピペしてみました。
function onHitTest(x, y, process)
{
if(process)
{
// 右ボタンが押されていたときにイベントを透過
if(System.getKeyState(VK_RBUTTON))
super.onHitTest(x, y, false);
else
super.onHitTest(x, y, true);
}
}
これで正解ですか?
狙った動きはしてるんですが何か弊害が予想されるならご指摘頂けると有難いです。
知らない言回しが出ても調べますんでよろしくです。
0585名前は開発中のものです。2006/11/27(月) 03:15:26ID:g/+h1vM4
>>581
>>582
ありがとうございます。
大きなヒントと、今後の作業に必要な情報をいただきました。

[move layer="&mp.layer" time="1000" path="'('+&_tmp.fadeLayer.left+','+&_tmp.fadeLayer.top+',0)'"]
[move layer="&mp.layer" time="1000" path="(&_tmp.fadeLayer.left, &_tmp.fadeLayer.top, 0)'"]

どちらもダメだったので、下記のようにしたら動きました。

[eval exp="_tmp.path = '('+_tmp.fadeLayer.left+','+_tmp.fadeLayer.top+',0)'"]
[move layer="&mp.layer" time="1000" path="&_tmp.path"]

[trans]を使わない理由は、メッセージを表示とは非同期に透明度を変更したかったからです。

_tmp は 一時変数「tf」の代用として自分で用意した変数です。
ゲーム変数「f」やシステム変数「sf」などそうですが、いまいち名前からピンとこないので
var _systemVars = sf;
などとして使おうかと考えています。

連想配列などは参照渡しになるので、おそらく動作的には問題ないかなと思っています。
自分的にソースの見渡しがよくなりますし。
共同作業で…と考えると難があることは否めませんが。
0586名前は開発中のものです。2006/11/27(月) 10:24:42ID:KB1E8Ixt
>>585
属性というのは、例えば[move]における time や path のことです。
その値の最初に&がつかないとTJS式と認識してくれないのです。
とりあえず>>582さんの書き込みを良く解釈してみてください。
× path=" '(0,'+ &f.hoge +',0)'"
○ path="&'(0,'+  f.hoge +',0)'"

>メッセージを表示とは非同期に透明度を変更
ごめん、よくわからない。どういうこと?
[backlay][layopt layer="%layer" page="back" visible=false][trans method="crossfade" time="1000"]
では駄目なんだよね。
0587名前は開発中のものです。2006/11/27(月) 12:54:16ID:tT+3k7ui
フェードアウトさせながら文字を表示したいんじゃないかな?
0588名前は開発中のものです。2006/11/27(月) 18:01:07ID:nSKCFRRi
>>584
なにも問題ないと思うよ
0589名前は開発中のものです。2006/11/27(月) 19:24:31ID:KB1E8Ixt
>>587
transでフェードアウトしながらでも、文字表示はできるでしょ?
なんか俺勘違いしてる? う〜ん……

あっ、でもフェードにmoveを使う状況がひとつ思いついた。
複数のレイヤを同時にフェードさせる場合だ。
0590名前は開発中のものです。2006/11/27(月) 22:59:53ID:g/+h1vM4
>>586
&の使い方がやっと理解できました。ありがとうございます。
「変数を展開するための識別子」ではなく、ある意味 ActionScriptなどの eval()なのですね。

>>589
>>587さんのおっしゃるように、フェードアウトさせながら文字を表示させようとしています。
「文字を表示したまま」フェードはtransでもできますが、
「文字を表示しながら」フェードはmoveでないと出来ないという理解でしたが、
もしわたしの勘違いでしたらすいません。

[freeimage layer=0 page="back"]
[trans layer=0 method="crossfade" time=500] ←前景のみのフェード
だと、前景のイメージサイズが合わないため trans自体が実行出来ず、

[backlay]
[freeimage layer=0 page="back"]
[trans method="crossfade" time=500] ←全体のフェード
だと文字を表示させながらが出来ませんでした。
0591名前は開発中のものです。2006/11/27(月) 23:01:53ID:eu6sQf9Q
エンターの長押しはスキップされず(普通に読み進めることは出来る)
コントロールの長押しでのみスキップ出来る方法を探しています。

ttp://www.kirikiri.info/bbslog/log/index30.html#006109
6109と6110のやりとりが自分の求めている内容だと思うのですが
6110での回答が具体的にどうすればよいのか分かりません。
0592名前は開発中のものです。2006/11/27(月) 23:02:36ID:g/+h1vM4
度々すいません。

KAGの[if]では if〜else〜 や if〜else if〜else
のようなことが出来ないようですが、
皆さんが上記のような分岐をするときはどのように記述していますか?
05935912006/11/27(月) 23:03:26ID:eu6sQf9Q
エンターでのスキップを不可に
@iscript
kag.checkProceedingKey = function(key, shift)
{
if(key == VK_RETURN || key == VK_SPACE)
{
if(skipKeyRepressed) return false;
skipKeyRepressed = true;
onPrimaryClickByKey();
return true;
}
return false;
};
kag.onKeyUp = function(key, shift)
{
if(key == VK_RETURN || key == VK_SPACE)
skipKeyRepressed = false;
};
@endscript
05945912006/11/27(月) 23:04:11ID:eu6sQf9Q
コントロールでスキップ可に
@iscript
kag.checkProceedingKey = function(key, shift)
{
if(key == VK_CONTROL)
{
if(skipKeyRepressed) return false;
skipKeyRepressed = false;
onPrimaryClickByKey();
return true;
}
return false;
};
kag.onKeyUp = function(key, shift)
{
if(key == VK_CONTROL)
skipKeyRepressed = false;
};
@endscript

これを一つにまとめるというのは可能でしょうか?
0595名前は開発中のものです。2006/11/28(火) 00:29:44ID:rz9M3VhY
>>592 (;゚д゚)・・・
if(e1){b1}
else if(e2){b2}
else{b3}
    ↓↓
[if exp="e1"]b1[endif]
[if exp="!e1 && e2"]b2[endif]
[if exp="!e1 && !e2"]b3[endif]
    or
[if exp="e1"]b1[jump target="*L"][endif]
[if exp="e2"]b2[jump target="*L"][endif]
b3
*L
05965952006/11/28(火) 00:40:03ID:rz9M3VhY
・・・[elsif]なるものがあるらしいorz
  ↓↓
[if exp="e1"]
b1
[elsif exp="e2"]
b2
[else]
b3
[endif]
0597名前は開発中のものです。2006/11/28(火) 00:44:44ID:rz9M3VhY
>>593-594
@iscript
kag.checkProceedingKey = function(key, shift)
{
    if(key == VK_RETURN || key == VK_SPACE)
    {
        if(skipKeyRepressed) return false;
        skipKeyRepressed = true;
        onPrimaryClickByKey();
        return true;
    }
    else if(key == VK_CONTROL)
    {
        if(skipKeyRepressed) return false;
        skipKeyRepressed = false;
        onPrimaryClickByKey();
        return true;
    }
    return false;
};
kag.onKeyUp = function(key, shift)
{
    if(key == VK_RETURN || key == VK_SPACE || key == VK_CONTROL)
    skipKeyRepressed = false;
};
@endscript

単純にまとめるとこうなるはず
0598名前は開発中のものです。2006/11/28(火) 00:51:35ID:uNcRlZbY
>>596
else、elsifは2.27から。つまり安定版には非実装。
■ このスレッドは過去ログ倉庫に格納されています