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

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

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

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

前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その18
http://pc11.2ch.net/test/read.cgi/gamedev/1244218314/


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

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

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

必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
0791名前は開発中のものです。2010/04/25(日) 19:15:38ID:81fLtIFb?2BP(1)

>>790
すいません、初心者なので何が何だか分かりません!
すごく、ながいです・・・としか分かんないっす先生・・・
0792名前は開発中のものです。2010/04/25(日) 19:24:15ID:yIOGXBZ8
ゲームのソース公開しているサークルもたまにあるから、それを参考に
すりゃいいだけだろ。
0793名前は開発中のものです。2010/04/25(日) 19:25:29ID:1aimEZWc
>何が何だか分かりません!
他人のソース(スクリプトでもシナリオでも)読んでも、多かれ少なかれそんな感じになると思う。
初心者でなくたってそう。

自分で書きつつ、詰まったらggrなり解説サイトなり吉里吉里本を参照するのが
結局勉強には効率良い気がする。
0794名前は開発中のものです。2010/04/25(日) 19:29:14ID:81fLtIFb?2BP(1)

>>792
そうなんですか。
でも探すの大変そうですね。
やっぱりズルはだめっぽいですね。
もう少し粘ってみます1
0795名前は開発中のものです。2010/04/25(日) 19:35:49ID:81fLtIFb?2BP(1)

>>793
そうなんですか。
ものすごく納得しました。
やっぱり地道に努力していこうと思います。
0796名前は開発中のものです。2010/04/25(日) 20:23:58ID:iFsoB3iQ
自分が欲しい機能を部分的に解説してるソースなら読めるけど
ただ単に、他人のスクリプトだのなんだの見てもさっぱり参考にはならんよな
0797名前は開発中のものです。2010/04/25(日) 22:30:22ID:77HGVGIT
自分のやりたいことを順に調べてできるようになっていく方がいいと思うよ。

初心者がはじめから TJS を習得するのが目的ってのは何か危険な気がする。
0798名前は開発中のものです。2010/04/25(日) 22:35:03ID:F80t840y
TJSちゃんとやるなら他の言語やってから出直した方が早い
情報が少ないし吉里吉里は非プログラマにはかなりわかりづらい構造になってるしKAGは汚いし
0799名前は開発中のものです。2010/04/25(日) 23:17:16ID:xwTdlAat
質問です

制作は完成して、配布の為の実行ファイルを作る段階なのですが、リリーサーで作ると実行ファイルと同じ名前で拡張子がcfのファイルができますよね
吉里吉里設定を保存する為に必要とのことですが、ユーザーが拡張子を非表示にしていた場合、実行ファイルとの名前の区別がつかないと思うのですが
どうしたらいいのでしょうか?
0800名前は開発中のものです。2010/04/25(日) 23:35:58ID:yIOGXBZ8
>>799
実行ファイルのアイコンを変えて、いかにもこちらをクリックするのですよ、
と視覚的に明示する。

拡張子非表示がデフォルトなの止めてほしいよなあ。
0801名前は開発中のものです。2010/04/25(日) 23:44:20ID:xwTdlAat
>>800
ああ、やっぱりそれしか無いんですかね
その線でやってみます
08027762010/04/26(月) 01:59:58ID:lpWSqc7K
>>780
無事、難なく組み込めました。本当にありがとうございます!
お礼が遅くなり申し訳ありませんでした。

このスレがないと生きていけない体になりそう。
いつか回答する側に回れるよう精進いたします。
0803名前は開発中のものです。2010/04/26(月) 23:49:12ID:HSHLheCs?2BP(1)

やっぱり最初に作るのは、温めてた話を使うのはもったいないよね。
もっと吉里吉里を使えるようになってからの方が作品としていいのが作れるように
なるに決まってるもんね。
じゃあどんなゲームを作ろうかな・・・
やっぱりネタかな・・・
0804名前は開発中のものです。2010/04/27(火) 08:49:05ID:v1hN0n/D
最初に温めてきたものを作ろうとすると、妥協が出来なくなるわ、
力量も分からずに無駄に長編化しようとするわで、ほぼ100%挫折
する。
まず五分のものでいいから一つ完成させる。話はそれからだ。
0805名前は開発中のものです。2010/04/27(火) 14:06:04ID:7jf2XVJb
俺たちの冒険は終わらない!ではじまって回想形式で付き足していけばそのうち長編になるんじゃね?
0806名前は開発中のものです。2010/04/27(火) 16:40:21ID:Y8C5hESM
最初はどっかの手伝うくらいでいいと思う。
内容に口出す気がおこらない分、技能の習得に専念できる。
さらに勉強中のコード試す人柱や人脈も得られてお得。
0807名前は開発中のものです。2010/04/27(火) 16:49:06ID:wOTIUypm
確かに最近はシナリオ屋がスクリプタ(やプログラマ)を兼ねる事が多いらしいし、吉里吉里にもそれは当てはまるけど
「いいゲーム(のシナリオ)を作れる」と「吉里吉里に対する熟練度が高い」とは別の話だと思うよ。
ぶっちゃけ多少立ち絵を動かすこと、フェードインアウト等の軽微な演出が出来ること、オートやスキップが出来ること程度の機能があれば
ADVゲーとしての立ち位置は成立するんだしな
0808名前は開発中のものです。2010/04/27(火) 16:51:54ID:n1kYGd2X
過去ログ検索しても出てこないんですが
kagでintrandomの()内に2つの一時変数で指定した整数間の範囲で
乱数を生成したい場合はどうすればよいのでしょうか?
普通にintrandom(一時変数1, 一時変数2)と入力しても正常に動作してくれません
0809名前は開発中のものです。2010/04/27(火) 16:56:26ID:D+EvKBfK
一時変数に変なものが入ってるとかだろ
前後のコード晒せよ
0810名前は開発中のものです。2010/04/27(火) 17:05:09ID:n1kYGd2X
*ok
[commit]
[eval exp="tf.br2 = tf.br"]
[eval exp="tf.dice2 = tf.dice * tf.br "]
[eval exp="tf.dice3 = tf.dice * tf.br2 "]

*roll
[eval exp="tf.count = tf.count + 1 "]
[eval exp="tf.bra_d = intrandom( tf.dice , tf.dice2 )"]
[eval exp="tf.bra2_d = intrandom( tf.dice , tf.dice3 )"]
[eval exp="tf.ba_r = tf.bra_d - tf.bra2_d"]
[if exp="tf.ba_r < 0"]
[eval exp="tf.ba_r = 0"]
[endif]
[jump target=*damage]

こんな感じなのです
intrandomの一時変数による範囲指定はkagリファレンスでは触れられてないので
何が変なものなのかよくわかりません
記載されていない禁則事項とかあるようであれば、教えて下さいませんか?
0811名前は開発中のものです。2010/04/27(火) 17:11:24ID:n1kYGd2X
あ、念のため追記しますが
tf.brとtf.diceはこれ以前にボックスに入力して代入する形になります
余分に見えるところは何とか一時変数による指定ができないか
悪あがきしたところです、みにくくて申し訳ない…
0812名前は開発中のものです。2010/04/27(火) 17:36:24ID:D+EvKBfK
*ok
[commit]
;追加
[eval exp="tf.br = 2"]
;追加
[eval exp="tf.dice = 3"]

[eval exp="tf.br2 = tf.br"]
[eval exp="tf.dice2 = tf.dice * tf.br "]
[eval exp="tf.dice3 = tf.dice * tf.br2 "]

*roll
[eval exp="tf.count = tf.count + 1 "]
[eval exp="tf.bra_d = intrandom( tf.dice , tf.dice2 )"]
[eval exp="tf.bra2_d = intrandom( tf.dice , tf.dice3 )"]
[eval exp="tf.ba_r = tf.bra_d - tf.bra2_d"]
[emb exp="tf.ba_r"]
[if exp="tf.ba_r < 0"]
[eval exp="tf.ba_r = 0"]
[endif]

;追加
[emb exp="tf.ba_r"]
[s]


こんな風にしてみたけど普通に動作しているように見えるぞ
おおかたtf.brかtf.diceに数字じゃなく文字列が入ってたり
何もデータが入ってなかったりするんだろう
0813名前は開発中のものです。2010/04/27(火) 19:26:39ID:v1hN0n/D
ボックスってのがどれ使ってるのか知らないが、大方inputタグじゃないのか。
型が文字列になってるのに一票。
一時変数をコンソールなり監視式なりで確認。
stringになってたらintでも使って変換しとけ。
08147762010/04/27(火) 21:17:48ID:prscIQvY
tf.aa=1
tf.bb[1]=100

として

[eval exp="tf.ccc = tf.bb[&tf.aa] +20"]
[emb exp="tf.ccc"]

としても、10020となってしまうのですが
120と表示させたい場合はどうすればいいでしょう?
0815名前は開発中のものです。2010/04/27(火) 21:19:03ID:prscIQvY
ぐあ、自分は776ですが、あえてそれを入れる必要のない質問でした。すみません。。
暫定で名無しに戻ります
0816名前は開発中のものです。2010/04/27(火) 21:35:11ID:v1hN0n/D
前のと一緒で型が文字列になってるんだから、数値に変換して足し算。
0817名前は開発中のものです。2010/04/27(火) 21:40:04ID:JsIKGUXw
>>814
ちゃんと足し算して表示されるが
0818名前は開発中のものです。2010/04/27(火) 23:10:53ID:prscIQvY
>>816
real(tf.bb[&tf.aa]) +20
でイケました!! ありがとうございますm(_ _)m
0819名前は開発中のものです。2010/04/28(水) 03:02:39ID:9d8qwiYh
>>812-813
レスありがとうございます、返信が遅くてすみません
一時変数をそれぞれint()で変換することで解決致しました
一時変数はeditで入力していたのですが、
intrandomの()は半角数字でも文字列として判別されるんですね
intrandom以外では通常の数字のように扱われてるので気付きませんでした

これで正常な動作ができそうです
ありがとうございました
0820名前は開発中のものです。2010/04/28(水) 22:52:36ID:29zHkZHg
ttp://homepage1.nifty.com/gutchie/kirikiri_kag2/faq_tjs010.html
これをダウンロードして、画像を差し替えて使ってみたんだが、
フォトショップで作った半透明の影みたいな部分が、
画面上では真っ黒になる。何でだろ。αチャネルはばっちりなはずなんだが・・・。
0821名前は開発中のものです。2010/04/28(水) 23:02:11ID:tCJkYxU9
PhotoShopでPNG作るとαチャンネルがうまく読み込めないことがある
色々ググってみ
0822名前は開発中のものです。2010/04/28(水) 23:08:45ID:wVpxy39x
てか半透明ウィンドウって使えるのん?
>>820に関しても透明か不透明かのどっちかしか使えないと思ってた。
0823名前は開発中のものです。2010/04/28(水) 23:45:43ID:HBje3b/F
半透明のウィンドウは作れないよ
不透明度の情報でウィンドウを切っているだけ
リファレンスのWindow.setMaskRegion嫁
0824名前は開発中のものです。2010/04/28(水) 23:46:29ID:GoyzqBIO
動画ってmp1にするべきなの?
理由がまったく分からなくてあばばば
0825名前は開発中のものです。2010/04/28(水) 23:54:43ID:29zHkZHg
>>823
うお。マジか。
リファレンス読んできたけど、切り取る気満々だね・・・。デザイン考え直さねば・・・。
2件ほど吉里吉里(おそらく)で半透明窓使ってるの見たことあるけど、
あれはプロの犯行なんだな。
ありがとう。傷が浅い内に引きかえせたよ。
0826名前は開発中のものです。2010/04/28(水) 23:55:09ID:wK+AMB4/
>>824
mpeg1以外は環境依存が激しくてサポート地獄
wmv ならまあなんとか
0827名前は開発中のものです。2010/04/29(木) 00:12:48ID:r7k1mYDU
>>825
そりゃたぶん子レイヤをウィンドウっぽく表示しているだけだろ
メインウィンドウの外にダイアログをドラッグできなかったらビンゴ
0828名前は開発中のものです。2010/04/29(木) 00:33:31ID:TVxbZ1II
>>827
すげぇ。二件ともビンゴだった。
そうか、フェイク(笑)使えばトランジションとかも何とかなるのか。
ちょっと往年のドット影に逃げずに頑張ってみるよ。ありがとう。
0829名前は開発中のものです。2010/04/29(木) 01:01:43ID:495DDWss
規制でお礼が大分遅れましたが>>581です

>>589
レスありがとうございます
サブルーチンから抜けないままKAGで最初に戻ってるのに
問題があるような気がしてきました
といっても対処法もわからないので
とりあえずまっさらな状態からやりなおしてみます
親切にありがとうございました
0830名前は開発中のものです。2010/04/29(木) 12:14:27ID:um4NUqon
質問です

例えば、ウィンドウサイズを800x600とかにして
imageタグで(1000,1000)あたりに置いた画像をmoveで画面内に持ってくることはできますよね

これって、もともと置いておく画像はどの範囲くらいまで平気なんですか?
(100000,100000)とか(-100000,-100000)とかでも平気ですか?
0831名前は開発中のものです。2010/04/29(木) 12:15:17ID:Y9IGkw8r
男は度胸!なんでも試してみるのさ
0832名前は開発中のものです。2010/04/29(木) 12:43:18ID:1x6God2V
-2147483648〜2147483647ぐらいはいけるんじゃね?
0833名前は開発中のものです。2010/04/29(木) 13:14:43ID:um4NUqon
>>832
えっそんなに!? さすかIDが神
0834名前は開発中のものです。2010/04/29(木) 13:43:33ID:mNkpAd62
そもそも吉里吉里のレイヤの座標管理は32bitINTなのか……
0835名前は開発中のものです。2010/04/29(木) 17:48:05ID:yop8NZvD
TJS同様64bitでしょ
とりあえずLayerのleftプロパティに -9223372036854775808 と 9223372036854775807 が代入できた
実数も代入できたけど範囲は調べてない

まあ、「1ミリ秒に+1される±0から始まる値」があっても上限突破まで3億年近く掛かる計算だから、
普通はその類の上限とか気にしないわな
0836名前は開発中のものです。2010/04/30(金) 04:24:52ID:s0p5cYRG
最近吉里吉里を触り始めた初心者なのですが質問させてください。
既出でしたらすみません orz

template(初期状態)のフォルダで白い背景と黒い背景を作って
白い背景から黒い背景にクロスフェードでトラジションすると
トラジションの間にウィンドウの左上にウィンドウの縦横半分くらいの大きさの赤茶色いレイヤーのようなものが表示されるのですが
これはどのレイヤーが表示されているのでしょうか?できれば削除したいのですが・・・。
0837名前は開発中のものです。2010/04/30(金) 14:00:42ID:8MGR9HDe
よくわからんけど文章表示するレイヤじゃね?
0838名前は開発中のものです。2010/04/30(金) 16:02:35ID:t6/ROSNq
>>836
吉里吉里実行中に shift+F12 次に shift+F4
これで全レイヤのサイズと表示状態が分かる
0839名前は開発中のものです。2010/04/30(金) 18:36:22ID:FQeHipYW
>>836
トランジッションの間だけ、表示されるってこと?
取り合えず、シナリオを極力シンプルに整理して、再現性のあるソースを貼ってみれば?
あと、吉里吉里とKAGのバージョンと
Config.tjsのメッセージレイヤ関連の弄った項目で関係がありそうなものがあればそれも。
0840名前は開発中のものです。2010/04/30(金) 20:05:44ID:uQzzcriX?2BP(1)

すいません、時間制限の選択肢ってどうやるんですか?
タグとかあれば教えてくださいorz
0841名前は開発中のものです。2010/04/30(金) 20:14:47ID:vZMVuxqq
>>840
貴方には無理だから諦めてください。
人のソースを見たがったり、ここで安易に聞いて済ます前に、
まず自力で調べる力をつけましょう。
0842名前は開発中のものです。2010/04/30(金) 21:39:51ID:CgMdFU63
>>841
答える能力がないなら黙っていていいんですよ?
08438362010/04/30(金) 21:45:17ID:9+vlagJF
>>838
こんな機能あったんですね・・・orz
試してみたところ、該当のレイヤのようなもののサイズが320x240くらいだったのですが
残念ながら同じサイズのレイヤーがありませんでした・・・。

>>839
はい。トラジションの間だけ表示されます。
吉里吉里は安定版をダウンロードしたのでversion 2.30 stable rev.2 / KAG 3 3.30 stable rev.2だと思います。(先ほどダウンロードして試してみたところ同じ症状が出ました。)
Config.tjsは解像度を変えたくらいで他は特にいじってません。
ソースですが

[image storage="black" layer=base page=fore]
[image storage="white" layer=base page=back]
[trans layer=base time=1500 method=crossfade]
[wt canskip=true]

[wait time=1500]

[image storage="black" layer=base page=back]
[trans layer=base time=1500 method=crossfade]
[wt canskip=true]

これでよろしいでしょうか?
0844名前は開発中のものです。2010/04/30(金) 22:31:38ID:E6mWrjly
BGmがなりません
プラグインが読み込めないとか
0845名前は開発中のものです。2010/04/30(金) 22:34:04ID:A4iPtVz8
>>843
解像度っていうのは、画面サイズのこと?
取り合えず、画面サイズ700*500で試してみたけど、
そのソースだけでは、うちの環境では再現性ないです。

解像度?とやらを元にもどしても、再現性ありますか?
解像度?とやらが原因なら、たぶん、公式へどうぞって感じかな?

但し、config.tjsにinitialMessageLayerVisibleって項目を参照して欲しいのだけれども、
デフォの状態のメッセージレイヤ0(裏表)は表示されっぱなしなので、
一度目と二度目のトランの間は背景が白なので、
黒地(赤茶ではないけど)のメッセージレイヤ0が見えているのを勘違いしている可能性はありそう。

それが原因なら、KAGリファレンスの基本的な部分が読み足りていないということだから、
急げば回れで、KAGリファレンスを通しで読み直してみて下さい。
08467492010/04/30(金) 22:35:05ID:/A1pkNzM
そうですか、頑張って。



そういうのもなんだから、
とりあえず質問したいなら最低限エラーメッセージ貼れよw
0847名前は開発中のものです。2010/04/30(金) 22:51:12ID:O/2EUYG1
>>843
2回目のtransだけおかしいのか?
1回目の白黒を入れ替えてもおかしくなるのか

fore画像を読み込んだあとにbacklayタグを入れてみるとか
08488362010/04/30(金) 23:31:37ID:9+vlagJF
>>845
画面サイズのことです。
知らずにへんなとこいじってたかもしれないのでもう一度DLしなおして
First.ksに先ほどのソースをコピペして
initialMessageLayerVisibleをFalseにしてみたけど直りませんでした・・・。

>>847
1回目も2回目も表示されます。
Backlay入れて試して見ましたが改善されませんでした。

症状が発生したときのスクショとってあぷろだにあげてみました。
http://www1.axfc.net/uploader/Img/so/81009
08498482010/05/01(土) 00:50:17ID:5kw+2AD3
blackとwhiteの画像と
config.tjsとfirst.ksもうっぷプリーズ
08508492010/05/01(土) 00:59:26ID:5kw+2AD3
すみません。アンカーつけるつもりで、名前欄間違えましたm(_ _)m
自分は848ではありません。>>849>>848宛です。
08518362010/05/01(土) 01:03:54ID:xHpxi0lI
http://www1.axfc.net/uploader/File/so/42982
zipでまとめてあります。
0852名前は開発中のものです。2010/05/01(土) 01:14:50ID:HsPiZ1Bu
おい…blackの画像…
モニタのコントラストの関係で案外気付かなかったりするのかも
0853名前は開発中のものです。2010/05/01(土) 01:17:56ID:bul+FtjX
blackじゃなくて緑と茶色じゃん
08547492010/05/01(土) 01:19:23ID:h7DUj4X8
>black
ワラタwww
0855名前は開発中のものです。2010/05/01(土) 01:20:40ID:5kw+2AD3
チャンチャン
0856名前は開発中のものです。2010/05/01(土) 01:47:44ID:Te03YpuM?2BP(1)

>>841
ソースを見たがるのは悪いことなんですか?
0857名前は開発中のものです。2010/05/01(土) 02:43:14ID:CzNI+E4i
ソースを見る事が「このタグは『こういうことをしてるんだな』という事を理解したい」というような学習意欲によるもんならいいと思うよ。
ただ、「よくわかんねえけどこのサンプルを使って適当に修正すれば動くだろ」っていう、原理に興味を持たず楽したいって考えによるもんならそれはクソだって事さ
0858名前は開発中のものです。2010/05/01(土) 03:44:24ID:PfXSjUP0
http://yokohama.cool.ne.jp/pia/kag0504.html

時間制限 選択肢 KAGで検索したら一番上に出てくるぞ?
勉強する気が無いならやめちまえ
0859名前は開発中のものです。2010/05/01(土) 08:19:22ID:/Te57Kpo
初心者と言えばなんでも教えてくれると思ったら大間違いだよ
自分から調べて理解しようという気がなきゃ無理
0860名前は開発中のものです。2010/05/01(土) 09:41:52ID:yQHbMj73
吉里吉里くらいでそんな大層な志いらんよw
08618362010/05/01(土) 09:54:30ID:xHpxi0lI
Blackの画像差し替えたら治りました・・・orz
自分のモニタだと違いがまったくわからないなぁ。
検証していただいたみなさまありがとうございましたm(_ _)m
0862名前は開発中のものです。2010/05/01(土) 11:08:35ID:1xhr5RBY
>>860
日常生活のありとあらゆる場面で言えることだと思うが。
志というほどのことでもない。
0863名前は開発中のものです。2010/05/01(土) 16:09:00ID:1P46rHrU
>>861
キャリブレーションしろ。
色の感覚おかしくなるぞ。
0864名前は開発中のものです。2010/05/01(土) 18:47:50ID:pYMMaZf8
抜きゲとかでよくあるホイールでシーン巻き戻しが実装出来るプラグイン有りますか?
0865名前は開発中のものです。2010/05/01(土) 21:26:47ID:jVEbN6dB
>>864
そんなガチガチの実装依存なプラグインがあるか。

ちょっと考えてみた。
アルゴリズム的にはゲーム中の全ステートとテキストのスナップショットを定期
的に取ってユーザーの任意のタイミングでスナップショット書き出せばいい感じか。
パッチ耐性を保つためにどこでスナップショットとるかだな。

ゲームの進行記録を踏破順に持っておい
て巻き戻すときに逆方向にたどって反対
の変数操作をすればスナップショット取る必要ないか。

まあどっちにしてもシナリオをナレーティブにスクリプトに落とし込んでたら実装できないな。
シーン管理やらないとメンドクサイ。
仕様決めないとどうしようもないぞ。
0866名前は開発中のものです。2010/05/01(土) 21:40:44ID:CzNI+E4i
「セーブはラベル単位でしか出来ない」=「ラベルがキチンと定義されてればそこまで辿る事は出来る仕様」ってのを逆手にとって
『現在のラベル箇所よりも一つ手前のラベル部分のシナリオを実行する』という形で再現するのは出来そうだわな。
正直そこまでやるのはしんどいけど
0867名前は開発中のものです。2010/05/01(土) 22:24:23ID:jVEbN6dB
一番簡単でバグの出にくい方法を思いついた。
分岐条件を固定して全ルートを網羅したグラフのノードにピンポイントで飛ばせばいい。
それなら複雑な操作もあったもんじゃない。
ひぐらし祭カケラ遊びがこういう感じの実装だった気がする。
0868名前は開発中のものです。2010/05/01(土) 23:21:02ID:Te03YpuM?2BP(1)

>>857
そんなつもりはないんですけど、普通そう思いますよね。すみません。
>>858
ありがとうございます。
自分では1時間くらい探したんです。
タグリファレンス(しか知りませんでした)を探したり、検索エンジンで
いろんなキーワードを並べて検索して見たんです。
結果的に簡単に見つかるもの(おそらく)だったのでそう言われても
言い返す言葉も卑屈に聞こえるでしょうが、
勉強する気がないわけでもやる気がないわけでもありません。
本当にありがとうございました。
0869名前は開発中のものです。2010/05/02(日) 14:53:08ID:Lp4Acnec
ゲームとかをやっていると CTRLでスキップしている最中でも一時的にそのスキップをとめてCGや演出が入る。
その間もCTRLを長押ししてると その演出が終わったあとにまたスキップが開始する

といった感じのシステム?があるんですが、これはタグレベルで実装できますか?
Cancelskipだと再開しないし・・・
08707492010/05/02(日) 15:27:53ID:ikvsHM+P
これでどう?

[eval exp="tf.skipMode = kag.skipMode"]
[cancelskip]
; <- スキップされない演出
[eval exp="kag.skipKeyRepressed = true" cond="tf.skipMode == 4"]
0871名前は開発中のものです。2010/05/02(日) 15:37:55ID:ikvsHM+P
ちなみに↑は「キー入力によるスキップ」の自動再開しか考慮してないから、
メニュー等で設定した「次の未読までスキップ」とかも再開させたい場合には、
tf.skipMode の値に応じて skipToStop() などを呼び出してやる必要がある。
0872名前は開発中のものです。2010/05/03(月) 17:57:01ID:pfKcvUbr
(・∀・)
0873名前は開発中のものです。2010/05/04(火) 16:37:02ID:YeYMamV4
[iscript]〜[endscript]間での関数の引数渡しがよく解らん……

ともあれテ○リスは無事作ることが出来た。
0874名前は開発中のものです。2010/05/04(火) 18:30:20ID:994z8v9B
テトリスならかなり前にソース付きでスレに上がってたよ
0875名前は開発中のものです。2010/05/04(火) 18:32:08ID:T88ahr6q
>>874
人生の効率を考えるとテトリスを再開発するのは効率が悪い
なので、ソース、exe形式をオープンで公開するのが一番効率がいい
そして、無料だとなお経済効果もあっていい
0876名前は開発中のものです。2010/05/04(火) 18:42:58ID:994z8v9B
いや誰もそんな話してないから
0877名前は開発中のものです。2010/05/04(火) 20:37:15ID:APqQPi9Y
なんだ経済効果って
0878名前は開発中のものです。2010/05/04(火) 20:42:22ID:U1g3Flnj
>>873

iscript は、シナリオパース時に吉里吉里がそこの tjs スクリプトをあわせて実行してくれるというもので、
関数登録やクラス定義の類だとグローバルに登録されるだけなので、そこで引数をわたせたりするってことはできない。

普通は、iscript はADV用のスクリプトとは別に、起動時とかに一括して登録する部分でつかって、
KAG中からは eval タグまたはエンティティ記述で呼び出す、といった使い方をする
0879名前は開発中のものです。2010/05/04(火) 23:52:00ID:YeYMamV4
なるほど。

[iscript]
function aaa(){
tf.zzz=bbb(tf.xxx,tf.yyy);
return;
}
function bbb(x, y){
if(x+y>0) return 1;
else return 0;
}
[endscript]

こういうの不可ってことでOK?
0880名前は開発中のものです。2010/05/05(水) 00:12:28ID:pMZKVX5V
引数はちゃんと渡せるよ。iscriptは単純に「endscriptタグが出てくるまでの間をTJSの式として評価する」的な動作なので
ちゃんとした関数やクラスを書けばhogehoge.tjsというファイルを読み込むのと同じよーに動作はした筈(うろ覚えだけど)。
もっとも、そういう「ちゃんとした関数やクラス」を作ってるんであれば、わざわざiscript〜endscript間で書くよりも
hogehoge.tjsという別ファイルを用意してそこでキチンと定義した方がメンテナンス性上がるんじゃね?っていう別の話もある。

[iscript]
function fooFunc(aValue, bValue){
// aとbを足した値が1以上なら1, そうでなければ0を返す
return ((aValue+bValue)>0) ? 1 : 0;
}
[endscript]

@eval exp="System.inform( fooFunc(1, 0) )"
@eval exp="System.inform( fooFunc(0, 0) )"

といったような事をfirst.ks辺りに書けばちゃんと1, 0がダイアログで表示されると思う。
だから>>879の例も一応動作はするんじゃねーかな。試してないけど

まあもっとも、関数aaaの中でtf.zzzに関数bbbの戻り値を代入するよりも
function aaa(aValue, bValue){
   return bbb(aValue, bValue);
}
のようにして
@eval exp="tf.zzz = bbb(tf.xxx, tf.yyy)"
といった形で『関数を呼び出す時に改めて値を指定する』方式にした方が可読性は高まるような気もする。あくまで俺の主観だけど
0881名前は開発中のものです。2010/05/05(水) 00:13:25ID:pMZKVX5V
aaa関数しか定義してないのになんでbbb関数を呼んでるんだ……orz
0882名前は開発中のものです。2010/05/05(水) 00:15:12ID:pMZKVX5V
間違えた。定義し直したのはaaa関数なのになんでbbbを呼んでるんだ、か。
@eval exp="tf.zzz = aaa(tf.xxx, tf.yyy)" だな
0883名前は開発中のものです。2010/05/05(水) 00:29:11ID:ADV8g3OF
>>879
いや、別に不可じゃない。ただ、その記述は、単に aaa と bbb をグローバルに定義するだけ。

実際の呼び出しはシナリオ中で

[iscript]
aaa()
[endscript]

とするか、

[eval exp="aaa()"]

とすることになる。むろん その定義の末尾に aaa() を書いてもいいんだが、
毎回まるごと iscript を呼び出すのは定義処理の分無駄になるので定義と呼び出しは分けるのが普通

ただ、>>880 も指摘しているが、その記述、tf というグローバル変数を直接呼び出す処理を関数にうめているが、
それは単純に見通しが悪くなるので、bbb のような引数をとって動作するような部分だけ定義しておいて、
パラメータ渡す部分は

[eval exp="tf.zzz = bbb(tf.xxx,tf.yyy)"]

とKAG側にもってきたほうがスタイルとしては好ましい。
必要なところでグローバル変数使うのはもちろんかまわないんだが、むやみに
使うと、どこで値がさしかわったのかとかがわからなくなるのでほどほどにな
0884名前は開発中のものです。2010/05/05(水) 00:40:11ID:ADV8g3OF
tjs で関数つくっても、それに引数を渡しつつ呼び出すような kag のタグは存在し無いからちょっと使いづらいかもしれない。
eval は呼び出しまるごと書く必要があるし、エンティティはタグの冒頭でないと使えない。

で、そういうときは、tag を独自に増やすように記述すると、案外すっきり処理できたりする。

こんなかんじで処理を登録しておく。
まあ、iscript 使う必要はなくて、Afterinit.tjs に追記するのが良いといえば良い

[iscript]
kag.tagHandlers.mytag = function(elm) {
// 適当に処理を書く
var a = +elm.a + +elm.b;
// 変数は elm.パラメータ名 でタグで指定したものが参照できる。ただし、全部文字列なので数値化したい場合などは
// +elm.a とか前に + をつけて変換すること。
return 0; // これは必要。単発処理なら0。待ち処理とかの場合は -1返したりする。詳細はKAGの内部のコード参照
} incontextof kag;
[endscript]

これの呼び出しは kag からこう書くことになる

[mytag a=10 b=20]

パラメータをいろいろ加工してさらに別のタグを呼び出すといったタグの拡張をしたければ

kag.tagHandlers.newtag = function(elm) {
// elm をいろいろ処理
return kag.tagHandlers.origtag(%[param:値, param2:値]);
} incontext of kag;

とかね。KAGのタグ呼び出しルールを把握するといろいろ応用がきかせやすい
0885名前は開発中のものです。2010/05/05(水) 15:15:01ID:BlG9Rr1l
>>880>>883
おおー!
ありがとう、とても勉強になります!

よし、再度引数に挑戦してくる。
0886名前は開発中のものです。2010/05/05(水) 19:46:55ID:kIuogzes
吉里吉里のBBSっていつからか、RSSが完全に死んでるけど
あれ直らないん?
地味に便利というか、使ってたんだけど
0887名前は開発中のものです。2010/05/05(水) 20:20:51ID:pTSQKGf/
Deeたんに伝えてみたら?
0888名前は開発中のものです。2010/05/05(水) 20:27:24ID:kIuogzes
BBSか直接かどっちがいいか分からんけど
そのうち言ってみる
0889名前は開発中のものです。2010/05/06(木) 07:20:21ID:uYvPEn9J
常に一番イヤなブロックが落ちてくるテトリス「Hatetris」
0890名前は開発中のものです。2010/05/06(木) 17:35:58ID:obm9GtZM
それ、このあいだやってみたらずーーっと S しか落ちてこなかったんだけど
■ このスレッドは過去ログ倉庫に格納されています