トップページ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/
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から。つまり安定版には非実装。
0599名前は開発中のものです。2006/11/28(火) 01:55:03ID:BVthwIZJ
ADVを作っています。
総勢立ちキャラ9人、主人公、表情結構多め(一人当たり10枚前後)
で作りたいと思います。
それで、ちょっと作っていて思ったのですが、
ファイルサイズを1人一つの表情につきどれ位に収めたほうがいいか知らず、
何か不安になってきました。
初めての制作なので、一歩一歩手探りなのですが、
配布を視野に入れるならファイルサイズはどの程度に収めたほうがいいでしょうか。
0600名前は開発中のものです。2006/11/28(火) 02:32:49ID:yrb7qqAX
それはプレイ時間によるとしか言えない。ベクターでも覗いて余所の作品でも見てこい。

老婆心から言うと処女作でキャラ9人はまず完成しない。
登場人物は主人公入れて5人以内にしなさい。
0601名前は開発中のものです。2006/11/28(火) 02:38:50ID:5LpO0KCb
俺の今作ってる処女作はキャラ30人オーバーです
0602名前は開発中のものです。2006/11/28(火) 02:44:39ID:6YMYZUJi
完成させるのが先さ。
0603名前は開発中のものです。2006/11/28(火) 02:49:48ID:BVthwIZJ
>>601
え?なんでですか?
ちなみにそのうち4人〜5人はただの脇キャラです。表情3・4こ。
0604名前は開発中のものです。2006/11/28(火) 03:14:21ID:qnmHTZO+
>603
9人ということは脇であるとしてもそれなりの量になるよね?
それぞれに主人公あるいはメインキャラが絡むわけだし。
>599のような質問するようでは制作になれてないんだから、
慣らしの意味で最初はもっと規模を小さくした方が良いって事だと思うよ。
免許とりたてがカーレースに出ようとしてる感じがする。
0605名前は開発中のものです。2006/11/28(火) 03:28:09ID:MgZBSp0g
>>595-596,598
ありがとうございます。else、elsifは安定版ではまだ未実装なのですね。
>>595を参考に、下記の方法でいきたいと思います。

[macro name="myMacroA"]
[myMacroX coud="mp.mode=='X'" param="&mp.param"]
[myMacroY coud="mp.mode=='Y'" param="&mp.param"]
[endmacro]

なぜ[jump]じゃないかというと、サブルーチンに引数を渡す方法が分からないからです。

サブルーチンは引数受け取れないのですよね?
06065842006/11/28(火) 03:34:09ID:ont2w1QS
>>588
ありがとう。前述のまま進めていたので安心しました。
06075842006/11/28(火) 03:42:11ID:ont2w1QS
>>590
フェードアウトするレイヤの裏に透明な同サイズの画像を用意して読み込んでから
transでは?生理的に許せませんか?俺はそうしてますけど。
指定レイヤの反対側に透明画像を作ってゴニョゴニョ〜ていうプラグインを
作れば格好が良いかもですが、とうの昔ににありそうな予感。
初めて一ヶ月なもんで、言うことが力技で申し訳ない。
0608名前は開発中のものです。2006/11/28(火) 04:00:50ID:qnmHTZO+
正直フェードしてから文字出ようが、文字出てからフェードしようが、
文字出ながらフェードしようがプレイヤー的にはかなりどうでもいいよね。
ノーウェイトで進めちゃう人もわりと居るわけだし。
06095912006/11/28(火) 10:15:42ID:m48y1SBr
>>597
理想通りの動きになりました。ありがとうございました。
0610名前は開発中のものです。2006/11/28(火) 17:44:46ID:U/Z/wvVF
まぁ、一秒程度じゃな
俺は10秒以上のスクロールやるときなんかにたまに使うかな>move
ttp://www.kirikiri.info/bbslog/log/000861
これ見るとそう邪道な方法でもないから、その辺は好みじゃないか
0611名前は開発中のものです。2006/11/28(火) 18:01:17ID:F/hMEaPi
皆は開発のためのツール何つかってる?
KKDE重いから他のに乗り換えようかなあとか考えてるんだけど
0612名前は開発中のものです。2006/11/28(火) 18:06:53ID:E7tdZZm1
俺メモ帳ですw
0613名前は開発中のものです。2006/11/28(火) 18:27:36ID:ont2w1QS
Peggy。
Perl覚えたての頃に買った本の付録だった。
0614名前は開発中のものです。2006/11/28(火) 18:54:25ID:rFcR1N1T
KKDE確かに重いよね。
なんかのソフトと同時に立ち上げると、格段に重くなる。
ネトゲで回復休憩してる間にスクリプト打つかーと思っても
他のソフトはそれほどでもないのに、KKDE重くて立ち上げる気がしねえ。
0615名前は開発中のものです。2006/11/28(火) 19:06:18ID:k11C1BXt
動作確認できるのは便利だけど重さがネックですよね。
私は最初はPeggy使ってたけど今はもうメモ帳です。
0616名前は開発中のものです。2006/11/28(火) 19:50:52ID:GVUE4/oB
なんでメモ帳なの?使い辛くない?
0617名前は開発中のものです。2006/11/28(火) 20:30:29ID:V6wGkQSa
メモ帳ではないけど普通のテキストエディターを使ってますよ。
0618名前は開発中のものです。2006/11/28(火) 20:58:52ID:d8ymiEdz
>616
まぁ、軽いし。
スクリプトは殆どマクロに入れちゃってるから、そう不便でもないかな。
それこそ好みだけどな。
0619名前は開発中のものです。2006/11/28(火) 21:07:37ID:MgZBSp0g
「自動的に読み込む」ボタンを作ろうと思い、
[button graphic="〜" exp="kag.onAutoModeMenuItemClick()"]
とやるところまではわかったのですが、ボタンを「押されたままの状態」にする方法がわかりません。
なにかよい方法はないでしょうか?

自分で kag.fore.messages[3].links[2].object.drawState(1); とやる方法も試してみましたが、
onMouseUpとonMouseLeaveによって戻されてしまいます。
0620名前は開発中のものです。2006/11/28(火) 21:24:37ID:MgZBSp0g
>>619
ちょっと無理矢理ですが実現できました。
if( kag.autoModeMenuItem.checked ){
 kag.fore.messages[3].links[2].object.loadImages(押された状態だけの画像);

次は「画面をクリックして自動モードを解除した時に、画像を戻す」
という部分に手を付けたいと思います。
0621名前は開発中のものです。2006/11/28(火) 21:30:21ID:ont2w1QS
>>619
ON/OFF状態のボタンを別途用意して、押されたら
・モードの入れ替え
・ボタン画像の差し替え
を行うfunctionを[iscript]で書いてやる。ではいかがか?
先週あちこちみながらたどり着いた自分なりの解ですが。
0622名前は開発中のものです。2006/11/28(火) 21:35:03ID:ont2w1QS
>>620
おめでとさんです。なんだ、そこまで30分足らずでやれるなら余裕じゃないw
0623名前は開発中のものです。2006/11/28(火) 21:41:34ID:XLedz8CG
>620
確かwikiに応用できそうなのが乗ってたな
0624名前は開発中のものです。2006/11/28(火) 21:46:26ID:d8ymiEdz
…と思ったんだが今見たら乗ってないっぽい
ごめんorz
0625名前は開発中のものです。2006/11/28(火) 23:59:14ID:2EllADKL
ここのこと?
ttp://hpcgi1.nifty.com/gutchie/wifky/wifky.pl?p=%B3%E4%A4%C8%CE%A2%B5%BB%A4%C3%A4%DD%A4%A4%A4%E2%A4%CE#p2.3
0626名前は開発中のものです。2006/11/29(水) 00:49:41ID:eQrLx8pH
いや、コレ
ページは残ってるみたいだね
ttp://kirikiri.info/w/k/HandlerOnSkipCancel.html
0627名前は開発中のものです。2006/11/29(水) 01:53:05ID:AK6LZMIx
>>625
>>626
ありがとうございます。それをヒントに作ってみました。

長いので次の発言で。
行数制限のため行を切りつめてます。
読みにくくてすいません。

使うときはこんな感じに。

[button graphic="オフ時の画像" exp="kag.onAutoModeMenuItemClick()"]
[DaMenuItem_addButton id="0" type="auto" off="オフ時の画像" on="オン時の画像"]

id = 何個目のボタンか(0〜)
type = autoモードか、skipモードか。とりあえず今回は autoのみ
06286192006/11/29(水) 01:53:59ID:AK6LZMIx
//[ system/Override.tjs ]/////////////////////////////////////////////////////
class MyKAGWindow extends KAGWindow{
 var _msgLayerId = 3; // ボタンがあるメッセージレイヤー番号
 var _btnId = %[]; // ボタンID
 var _imgOn = %[]; // オン時の画像
 var _imgOff = %[]; // オフ時の画像
 function MyKAGWindow(){ super.KAGWindow(); }
 // 管理するボタンを追加
 function _addButton( id, type, on, off ){
  this._btnId[type] = id;
  this._imgOn[type] = on;
  this._imgOff[type] = off;
 }
 // 自動モード
 function onAutoModeMenuItemClick(){
  var btnId = this._btnId.auto;
  super.onAutoModeMenuItemClick(); //元々のオートモード切り替え
  if( this.autoMode ){
   this.fore.messages[this._msgLayerId].links[btnId].object.loadImages(this._imgOn.auto);
  }else{
   this.fore.messages[this._msgLayerId].links[btnId].object.loadImages(this._imgOff.auto);
  }
 }
 // 自動モード解除(onPrimaryClick()から直接呼ばれていたので、こっちも対応させる)
 function cancelAutoMode(){
  var btnId = this._btnId.auto;
  super.cancelAutoMode(); //元々のオートモード終了
  if( !this.autoMode ){this.fore.messages[this._msgLayerId].links[btnId].object.loadImages(this._imgOff.auto);}
 }
}
global.kag = new MyKAGWindow();
06296192006/11/29(水) 02:18:15ID:AK6LZMIx
>>628
〜 ? 〜 : 〜; も使えるんですね。
縮めてみました。

//////////////////////////////////
// 自動モード
function onAutoModeMenuItemClick(){
 var btnObj = this.fore.messages[this._msgLayerId].links[this._btnId.auto].object;
 super.onAutoModeMenuItemClick();
 btnObj.loadImages( this.autoMode ? this._imgOn.auto : this._imgOff.auto );
}
//////////////////////////////////
// 自動モード解除
function cancelAutoMode(){
 var btnObj = this.fore.messages[this._msgLayerId].links[this._btnId.auto].object;
 super.cancelAutoMode();
 if( !this.autoMode ){ btnObj.loadImages(this._imgOff.auto); }
}
0630名前は開発中のものです。2006/11/29(水) 18:14:28ID:BqbxpFk+
で??
0631名前は開発中のものです。2006/11/29(水) 21:24:29ID:t/WFJ9V5
実際のクライアント領域と kag.primaryLayer の位置が違うぅぅぅ。
Window.innerLeft & Window.innerTop が無いみたいだけど
勝手にずらしても大丈夫なんだろうか。
0632名前は開発中のものです。2006/11/30(木) 02:31:36ID:ypViXU95
おまえらこれ使ってみた?
http://www.typemoon.com/tool/ngce.html

本家に報告あった奴

>プレゼントは某ビーチバレーゲーム。
ここは敢えてセクシービーチ3だろw
それかDOAX2とSB3と韓国のアレのエロバレートリオ
■ このスレッドは過去ログ倉庫に格納されています