新スレ立てるならテンプレ修正しろよ。リンク切ればっかじゃねえか
5 :
名前は開発中のものです。:2006/10/10(火) 11:26:41 ID:NA7AcMrw
新スレ立てる前に埋められたからちょっと焦ったんだよ
悪かったな
気に入らないなら立て直してくれ。ここ削除依頼出してくるから
1乙
>4>5
ギスギスすんなよ…
折角ここのところ良い流れだったんだし
マターリいこうぜ
ぁー、質問です
領域アクション定義ファイル(*.ma)の読み込みってどこでやってるんでしょうか?
用意しておけば勝手に読み込まれたり
10 :
8:2006/10/10(火) 23:38:26 ID:27mcAQjE
>>9 すみません^^;
質問の仕方悪かったでしょうかorz
その処理をKAGの中のどこで(どうやって)やっているのか教えてぇ〜って事です。。
どうやってかは場所教えてくれれば自分で見るんで別にいいですけど
自分で探せなかったので・・・
俺はプログラマーではなくスクリプターだから分からんな!
ここででるいろんな情報を参考にしたりたまに質問したりっていう目的のROM人間
お尻の穴に
13 :
名前は開発中のものです。:2006/10/11(水) 00:25:50 ID:0wD/jJ7g BE:418470555-2BP(0)
>>10 悪いが雰囲気と口調から判断して、それを示したところでtjsレベルの話がわかるような奴には見えない。
逆にそれが判るような奴ならそもそも自分で探し出せる奴が大半だと思う。
>13
マターリいこうぜ
まぁ、何がしたいのかは判らんが…
GraphicLayer.tjsの80行目辺りだろうな
前スレの最後で出てた「マウスを画面上部に持って行くとメニューバー表示」だけど。
メニューバー非表示の状態でフルスクリーン化すると、
kag.menu.visible=falseで固定されてしまってメニューバーが出なくなるね。
フルスクリーン化する直前にkag.menu.visible=trueするようにしても、
一瞬メニューが表示されてしまって見苦しい。
どうにかならないのかな?
そういえばkagのデフォルトでも、フルスクリーン化した直後はメニューバーが見えてしまってるね。
単純にパソコンの性能によるもの?
なんだか重箱の隅をつつくみたいですまん。
ちなみに前スレのサンプル↓
kag.superOnMouseMove = kag.onMouseMove;
kag.onMouseMove = function(x,y,shift){
if(!kag.fullScreened){
superOnMouseMove(...);
if(kag.menu.visible){
kag.menu.visible=false;
}else if(y<=10){
kag.menu.visible=true;
}
kag.innerHeight=600;
}
};
うーん…そういえば俺が初めて吉里吉里製のゲームで遊んだとき、
メニューの出し方が分からなくて困った記憶がある…
俺がアフォなだけかもしれないけどなorz
一瞬表示されるのは、「ここにあるよ」って目印なんだと思ってた
いい方に解釈しすぎかな
>>1 乙だがこれ忘れてる
!,-/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ,
i''./:::::::::::::::::::::://::::::l:l'i::::::ヽ:::::::ヽ:::::::::::::::l丶
お尻の穴に 〉!:::::::::::::::l:::::://l:::::/ll .lヽ:::l !ヽ::::l:ヽ::::::::i::l::l
指をいれて ヽ::::::::::::::l:l::::/:l .l:::/ l l,ヽ:l-l-l:::lヽ:ヽ::::::l:l.ll
匂いをKAGと l::l.l:::::::ll.l:::l''l~~∨' ' ' _,-'i-∨ l::::l::::l:l,,l_
_l::l .l::::l .l,l:l''~(~~i'' l ヽノiヽ.l:::::l:l:l::::::~''-,_
新スレですよ _,-'':::l:l l:l.l '~l .ll||ll l l l|||l.ノ l:::::l-''''''''---,,'-,_
,-':::::_,,,-ヽl::::::l ヽ,,,,,,ノ '--'' l::::::l ~
/-''''~ l:::::::l.l ____'___ ./l:::::::l
l:::::::l'ヽ. l l / l:::::::l
l:::::::ll ',,- ,_ ヽ-' _,-''--,,ll::::::l ~
今はLMか…
ずろうもあるしもうちょい人気あるかと思ってたけど、そうでもないんだな…。
次はYukkiあたりかな
>>17 なるほど、フルスクリーン化後のあれは目印なのか。
言われてみればそんな気も…。
制作側とユーザー側の視点の違いにも気をつけないと。
たしかにフルスクリーン時の吉里吉里デフォバーに限らず、
カーソルを上端・左右端にもってこないとメニューが出てこないゲームは
流行りだした当初かなり困った。
まだまだ一般的とは言い難いから
最初に操作チュートリアル出すとかしないと苦情が来そうだ。
取説とかに書いても読まん奴多いし。俺含め。
そうだな…俺も読まないw
取説入れるならゲーム内のほうがいいのかな
強制チュートリアル出しても読まない奴は読まないかもしれないし、
「今困ってます」って言う状況で見れるものが良さそうな気がする
メニューバーのヘルプに入れるか、画像一枚使って表示するか…
チュートリアルってのも大げさだなぁ。。
バリバリ操作するゲームならともかく、うちのはただのサウンドノベルだし。
メッセージを1文字ずつフェードで表示出来ないかと弄ってみた。
1文字描画するごとにトランジションするようにしたんだけど、
chSpeed=30程度だと普通に表示させるのと区別つかなかった。そりゃそうだorz
やっぱり、前の文字のフェードが終わる前に次の文字を表示させ始める必要があるみたい。
……でもそんなやり方、ぜんぜんわからないや…。
とりあえず副産物を張っときます。
全編での使用は無理でも、要所での演出には使えるかも。
使い方は、
@fade text="フェードで表示させたい文字" delay=1文字の表示にかかる時間 wait=文字間のウェイト
トランジションを使ってるので、変なところで呼び出すとエラーになるかも?
[iscript]
kag.tagHandlers.ch_fade = function(elm)
{
conductor.enqueueTag(%[tagname : 'trans', method : 'crossfade', time : mp.delay]);
conductor.enqueueTag(%[tagname : 'wt']);
return tagHandlers.ch_org(elm);
} incontextof kag;
[endscript]
[macro name="fade"]
@backlay
@current page = back
;通常のchタグを置き換え
@eval exp = "kag.tagHandlers.ch_org = kag.tagHandlers.ch ; kag.tagHandlers.ch = kag.tagHandlers.ch_fade"
@eval exp="mp.delay=500" cond="mp.delay == void"
@delay speed=%wait|0
@emb exp="mp.text"
;いろいろ元に戻す
@delay speed=user
@eval exp="kag.tagHandlers.ch = kag.tagHandlers.ch_org ; delete kag.tagHandlers.ch_org"
@current page=fore
[endmacro]
画面下のメッセージレイヤでメッセージ(会話)を自動送りにしたいのですが
改ページの4行ごとに[er]\で消して文字サイズとスピードを再指定してます。
出来ればスクロールするように下から順送りにしたいのですが
効率の良い方法はありませんか?
>>27 一行ごとにスクロールしてくのか?4行まとめてでいいのか?
moveのようなスクロール動作を伴うのか?なくていいのか?
あとお前さんはTJS使えるのか?KAGのみなのか?
まずは目標とする挙動とお前さんの技術レベルを具体的に書け。
それによってアドバイスも変わる。
マルチ乙
>>27 いちいちタグを書くのが面倒なので何とかなりませんか、という風にも取れるな
余計かもしれんが、面倒さで言うとスクロールのほうが大変だと思うぞ
>文字サイズとスピードを再指定
この辺はdeffontでいいんじゃまい?
32 :
27:2006/10/14(土) 21:06:41 ID:RwSCLULJ
>28,31
自分のレベルはKAGが分かってきた程度です。
4行くらいのスペースしかないメッセジレイヤで
「うぐぅ〜どけどけ!」
「おんみょうだんをくらうよろし!」
「はわわ」
「うわっはははは!どうだ!キン肉マンこ▼ ←ここでクリック
〜次ページ〜
の絞めワザを抜けることが出来るか!!」
といふ状態で、最後の文が下からせりあがる感じで
つまり台詞がページを跨がないようにしたいわけです。
>いちいちタグを書くのが面倒なので何とかなりませんか、という風にも取れるな
その通りですが、ずぼらじゃなくて素人目に分かるような
ムダっぽい部分は諸先輩方が「美しくない」と何らかの
工夫をしてるのではないのかと思った訳です。
deffontは仰る通りでした。まだまだ当方の勉強不足でした。
33 :
名前は開発中のものです。:2006/10/14(土) 21:08:31 ID:xXIhioRY
マクロ使えば良いだけじゃ?
videoタグでループをfalseにするとその後で
videoタグでvisibleをfalseにしても無視されるよう
なんだけど既出?
ループがtrueならビデオ非表示にできるんだけど
おれだけ?
仕方なく止まってるムービーを作ったんだけど。
>>32 すまん、ずぼらって意味じゃなくてな…
どうも見てると、ツクールか何かと勘違いしているように思えるんだよな…
何度も言うが、スクロールとタグを省くのは全く別問題だぞ。
スクロールのメッセージ送りはKAG標準じゃないから、
moveやtransあたりで工夫してそれっぽく見せるか、
TJSでテンポラリレイヤに逐一ずらしてコピーするとか(未検証だが…)
自分で希望の動作を作るしかないが、そうすると当然一行や二行じゃすまない。
省きたいだけなら33の言う通りマクロ使えばいいんだが、
その上で、例え面倒でもスクロールさせ(ているように見せ)たいわけか?
素人の俺が書いた、TJSでコピーしてスクロールする例。超力技だから絶対オヌヌメしないけど。
MainWindow.tjsファイルの4120行目辺り、function showPageBreakAndClear の中身を
kag.current.face = dfAlpha;
kag.current.copyRect(0, kag.current.marginT, kag.current, 0, kag.current.marginT + kag.current.lineSize + kag.current.lineSpacing, kag.current.width, kag.current.height-(kag.current.marginT + kag.current.lineSpacing + kag.current.lineSize));
kag.current.face = dfProvince;
kag.current.y -= kag.current.lineSize + kag.current.lineSpacing;
kag.current.lineLayer.top -= kag.current.lineSize + kag.current.lineSpacing;
kag.current.lineLayerOriginY -= kag.current.lineSize + kag.current.lineSpacing;
return true;
ってすると、自動改ページの代わりにスクロール風。
上記のを関数にしてマクロ[lineup]とかで呼び出すようにすると、
一行目[l][r]
[lineup]二行目[s]
とかいう使い方もできる、っていうか俺はこうやって使ってる。でもこれも力技だからお勧めしない。
問題点1、メッセージレイヤにフレーム使うとアレ 2、リンクやボタンやエディットなどが移動せず残る
2に関してはもっとゴリゴリ書けば回避できそう。
37 :
名前は開発中のものです。:2006/10/15(日) 21:42:53 ID:5PNY5pZy
本家のおまんまんがなにを言いたいのかわからん
誰か翻訳plz
まじめに小学生としか思えない。
というか、小学3,4年生くらいならあれくらいでもおかしくない。
らんかさんヤサシス!
俺今まで生きてきて、あの人ほど人間できてる人見たことないよ…
自サイトの掲示板でのサポートもすごいよな…
俺には絶対真似できない
ま、らんか氏が面倒みてきた奴等って、大抵一月もすれば音沙汰なくなるけどな・・・
感心するけど、無駄なことしてるなとも思う
粘着よりいいだろ
音沙汰なくなった者が通りますよ
お世話になりましたm(_ _)m
ROMになって二作目作っています
>>42 好意的に解釈すれば一人立ちしたってことじゃ?
その内容を少なからず参考にする人もいるし無駄ではないと思うよ
一人立ちできるレベルになったら公式掲示板には書き込めなくなるよな
ちょっと特殊な使い方なのですが、kagかtjsでウインドウモードで
ウインドウそのものを半透明にしたり、ウインドウモード時のタイトルバーを
消したりとか常にウインドウの最手前に表示されるようにとか出来るのでしょうか?
(ゲームではなくちょっとした小さなウインドウを表示させようと思っているのですが。)
半透明以外は出来る
>>50 うっ・・・・吉里吉里2の命令なんてものがあったなんて。。。
tjs2=吉里吉里2ってず〜と思ってたんでtjs2のリファにも載ってないし
kag3のリファにも載ってないしみんなどうやって命令探してるんだろう
と思ったら、kag3やtjs2の他に吉里吉里2リファレンスなる物があるなんて・・・・
結構前からず〜と疑問に思いながらだましだましKAG3のサンプルなどを
手がかりに作っていましたが・・・
お騒がせしました・・・orz
52 :
42:2006/10/16(月) 22:50:53 ID:c7+RCTxf
>>44 みんなちゃんと作ってたのか!
いや、らんか氏の掲示板みても完成報告とかないから
てっきり大半は投げ出していると思ってたんだよ
あそこってサポートに限定しているわけじゃないし・・・
失礼なこと書いてゴメンな
完成報告とか利用者から「宣伝乙」言われるだけだろ
54 :
47:2006/10/17(火) 01:23:47 ID:sMHt8DE4
タイトルバーを消す=borderStyle
常にwindowを手前=stayOnTop
と命令はわかったのですが、kag3から記載して
@eval exp="kag.borderStyle = bsNone"はうまくいくのですが
@eval exp="kag.stayOnTop = True"をやっても常に手前には表示してくれません。
たぶん、MainWindow.tjsにstayOnTopに関する変数や命令がないから
なのかなぁなんて考えているのですが、kag3上からやりたい場合どのように記載
したらよいのでしょうか?
3D使いたいが為だけにDelphi勉強してるのがちょっとだけ悲しくなった
なんでDelphi?
VCLフル活用する以外でのDelphiの利用価値が分からない
60 :
58:2006/10/17(火) 21:41:53 ID:voQNdiP7
自分の能力その他の理由によってDelphiになりました
要は自分がアホだからorz
結構役に立ちそうなんでいいですけどね(;´д` )
krkr.STGのSTGって今DLできないんですか?
単純に画像を表示したいのですが、
var fore = new Layer(kag, kag.fore.base);
fore.loadImages("graphic");
fore.visible = true;
fore.setSizeToImageSize();
だと表示されるのですが、
var fore = new Layer(kag, kag.fore.layers[1]);
fore.loadImages("graphic");
fore.visible = true;
fore.setSizeToImageSize();
だと表示されません。
前景レイヤで表示したいのですが何が間違っているのでしょうか。
>>62 そもそもkag.fore.layers[1]がvisible==trueなのかどうかとkag.fore.layers[1]のサイズが小さすぎないかどうかをチェック
64 :
62:2006/10/17(火) 23:11:09 ID:4kWXjZzy
>>63 ありがとうございます。
visible==true
kag.fore.layers[1]は画像サイズであることを確認しました。
ですが、表示されてないようです。
65 :
62:2006/10/17(火) 23:18:18 ID:4kWXjZzy
>>63 すいません。。。
勘違いしました。
kag.fore.layers[1].visible==0
kag.fore.layers[1].width==32
kag.fore.layers[1].height==32
でした。
なぜこのような値になるんでしょうか
>>65 とりあえずまずは日本語を勉強してこよう。
>>62では、kag.fore.layers[1]のコンテキストでの操作なんて何も行ってない。
だから、kag.fore.layers[1]の各プロパティの値が
何でこうなるんですかとか言われても、俺らが知るわけない。
そうなってるからとしか言い様がない。オーケー?
67 :
62:2006/10/17(火) 23:42:49 ID:4kWXjZzy
気づいたんだろうけど、
var fore = new Layer(kag, kag.fore.layers[1]);
これはforeという名の、"kag.fore.layers[1]を親とした新しいレイヤの生成"。
直接kag.fore/layers[1]を弄りたいならkag.fore.layers[1].setSizeToImageSize();
とかってすればOK。長ったらしくていやなら
var fore = kag.fore.layers[1];
とでもしてからforeから触ってやればいい。
69 :
47:2006/10/18(水) 01:44:11 ID:Q7aVtzFn
誰か
>>54を・・・・これをクリアすれば完成なんですが・・・orz
>>69 確かに俺の環境でも最前面に行かないなあ。一番シンプルなこれでも駄目だった。
// startup.tjs
var win = new Window();
win.stayOnTop = true;
win.visible = true;
bringToFront()も1回だけみたいだし、もしかしたら不具合かも知れない。
ちょっと格好悪いけど、これをどこかに挟んでおくと良いかも。
kag.onDeactivate = function() {
kag.bringToFront();
};
フルスクリーンでも正しく動くかとか、細かいことは確認してないので、後は自分で何とかして。
頭がふらついている状態で書いたので、思いっきり間違ってたらご免よ。
WindowクラスじゃなくてSystemクラスのほう。
72 :
47:2006/10/18(水) 13:09:10 ID:Q7aVtzFn
>>70 kagのfirst.ksに
@eval exp="kag.onDeactivate = function() {kag.bringToFront();};"
を入れてみたいけどだめだったっす。。。orz
それとこの命令だと自動的にこのアプリがアクティブになっちゃうんですよね?
他のソフト使いながら常に最前面に表示されている状態が理想なのでちょっと無理です。
それでもこういう使い方でkag上から吉里吉里2の命令を呼び出せるのはとても参考になりました。
>>71 もうちょっとkwsk!!
stayOnTopでの最前面ってのは、吉里吉里で制御してるウィンドウの中での最前面ってことだよ。
>>47が期待してるであろう動作は、吉里吉里では実装されてない。
74 :
47:2006/10/18(水) 14:31:18 ID:Q7aVtzFn
>>73 ありがd
やっぱりそういうことなのか・・・・orz
tjs2から直接winAPI叩いたりして簡単に制御出来ないかなぁ・・・
プラグインとかで大がかりになっちゃうのかしら?
77 :
76:2006/10/18(水) 23:51:40 ID:IXyJPfxj
あーごめん。ウィンドウそのものを半透明にしたりって部分の話な
78 :
名前は開発中のものです。:2006/10/19(木) 12:32:22 ID:Bcr7/81d
79 :
47:2006/10/19(木) 15:53:11 ID:s5y7xPQ1
[fadeinse storage="目覚まし.ogg" loop="true"]
[seopt volume="25"]
でvolume="25"までfadeinしつつ再生させようとしたのですが、いったん100までいったあと、25になりました。
このようにフェードインさせつつ最大音量を25に抑えるのはどのようにしたらよいのでしょうか?
[seopt volume="25"]
[fadeinse storage="目覚まし.ogg" loop="true"]
セーブ、ロードのたびに確認ウィンドウが出てうざいのですが、これを消す方法がわかりません
どうすれば消せますか?
>>82 @iscript
kag.superSaveBookMarkWithAsk = kag.saveBookMarkWithAsk;
kag.superLoadBookMarkWithAsk = kag.loadBookMarkWithAsk;
kag.saveBookMarkWithAsk = function(num){
if(readOnlyMode) return false;
if(bookMarkProtectedStates[num]) return false;
return saveBookMark(num);
};
kag.loadBookMarkWithAsk = function(num){
if(num < numBookMarks && bookMarkDates[num] == "")
return false;
return loadBookMark(num);
};
@endscript
何かもっといい方法ある気がする。。。
>>81 できました!
ありがとうございます。
追加でもうひとつ質問があるのですが、
[seopt volume="25"]
[fadeinse storage="目覚まし.ogg" loop="true"]
から50までフェードさせるのはどうしたらよいのでしょうか?
>>84 [fadese time="1000" volume="50"]
>>83 とりあえず今の俺のレベルではわからないことがわかりました。
ありがとうございます。
TJS勉強してレスの意味を理解してみます。
>>85 できました。
ありがとうございます。
もうひとつお願いします。
クリックひとつで、吉里吉里を終了させつつwebサイトへリンクをさせたいのですが、
[link exp="System.shellExecute('http:・・・・.html)" hint="公式サイト" exp="kag.shutdown()"]ここをクリック[endlink]
をしましたところ、吉里吉里は終了するのですが、リンクされませんでした。
どうすればできるのでしょうか?
>>87 [link exp="System.shellExecute('http:・・・・.html'), kag.shutdown()" hint="公式サイト"]ここをクリック[endlink]
ID:WPORuRsz
全部KAGリファレンス見れば載ってる事やんけ。
何度も聞く前にちゃんと読めや。
努力の痕跡の見えない追加質問の連続は掲示板では嫌われる
典型的なパターンだから無自覚なら直そうね
それを懸念してはじめから答えない人もいるほどだから
>>91 すいません。
資料を読みつついじっているのですが、どうにもうまくいかないんです。
imageタグのmode属性について質問させてください。
[image storage="妹" layer="0" page="back" left="100" top="-150" grayscale="true" rgamma=1.3 ggamma=1.1 visible="true" mode= ]
セピア調で表示させつつ、幽霊みたいに透過させたいのですが、mode属性がわかりません。
ググって見ましたが、それらしい資料がみつかりませんでした。
どのようにすればよいのでしょうか?
>>92 >資料を読みつついじっているのですが
>ググって見ましたが
いいからまずリファレンス読みなさい。(※imageの項参照)
opacity=100
>>93 すいません。
そこを失念していました・・・。
>>96 ちなみに、おまいの落とした吉里吉里にも梱包されてる説明書です
効果音を任意のタイミングで再生することはできますか?
トランジションで絵が切り替わり終わる瞬間に鳴るようにしたいけど
トランジション後に効果音を挿入すると、wevを読み込むときのちょっとしたラグで僅かにタイミングが遅れます
トランジション前に交換音を挿入して、再生開始タイミングの遅延時間を設定できれば
絵が切り替わり終わる瞬間に鳴るようにできると思うんですが
何か言い方法は無いでしょうか?
>>98 お手軽に、波形編集で効果音の最初にトランジションの間の分の空白を入れて調節するんではダメ?
スキップされれば簡単にズレるけど。
[trans]と[wt]の間で、[wait]を入れて[playse]すればいいんじゃね
>>100 やってみたけど駄目だった……
よく考えたら、使う効果音は少ないから
その場面で使う音楽ファイル全部に無音挿入でもそんなに手間は掛からないか。
レスありがとうございました。
なんで>100の方法で駄目なのか不思議だ
>>101 100を詳しく解説してみた
@image storage="画像" layer=base page=back
@trans time=1000 method=crossfade
@wait time=800(任意で調節)
@playse storage="効果音"
@wt
俺はうまくいったよ
>101こうするのだ。
;スキップ禁止の場合
@backlay
@image storage=bgHoge visible=true page=back layer=base
@trans method=scroll time=2000
@wait time=1500 canskip=false
@playse storage=seHoge
@wt canskip=false
;スキップ可の場合
@backlay
@image storage=bgHoge visible=true page=back layer=base
@trans method=scroll time=2000
@eval exp="kag.clickCount = 0"
@wait time=1500 canskip=true
@if exp="kag.clickCount"
@playse storage=seHoge
@stoptrans
@endif
@if exp="!kag.clickCount"
@playse storage=seHoge
@wt canskip=true
@endif
105 :
101:2006/10/20(金) 07:17:52 ID:uLPNzZpH
ほんとだ使えたああ!
ありがとう
結局理解が足りなかったというオチ
メッセージウィンドウにマス目をつけて、
1文字が1マスにぴったり収まるように表示させたいと考えています。
フォントを固定にして、あとは特殊文字などに気をつけて文章を書けば可能だと思ったのですが、
変数の中身(具体的には主人公の名前)に半角文字や特殊文字が使われた場合、
それを表示させるとズレてしまうことに気がつきました。
editで入力する変数の中に使うことを許す文字を、どうにかして指定する方法はありませんでしょうか。
名前を固定にしたり、ズレたままでも突き進んだりするようなことは、
できればやりたくありません。
1〜2行目のようなことをやっているゲームって私は見たこと無いのですけど、
やっぱり大変、もしくは不可能なのでしょうか・・・
>>107 TJSをもっと使うために > 正規表現
入力させた後半角を全角に強制的に変えるとかすりゃいいんじゃね
>>110-111 ボケかお前ら。火種を持ち込むな。
オマエラのドコがプレイヤー本位なんだよ。
自分が使ってるツールの優位性を示したいだけのクズじゃないか。
LiveMakerは更新停止してるから無理
>>111 リンク先の書き込みは流石にネタ、だよね? きっと。ガクガクブルブル
っていうか、更新停止してるって、そのスレ見て初めて知ったよ。
やっぱり吉里吉里の最大の利点は、製作者の姿勢だわな。
吉里吉里も初期は「デカイ」「重い」と言われてたけど、
時代の流れ&W.dee氏の継続した努力のおかげで、最近はあんまり言われなくなったよね。
>>110のでも、「重い」って意見は98ユーザのが一件あるだけだし。
っていうか、吉里吉里はそもそもノベル専用ツールじゃないんだから、
比較すること自体おかしいだろ。
KAGのみでの比較ならまだしも。
まぁプレイヤー向けの投票なら、こうなるよな…
プレイヤーにしてみれば、製作側にとって作りやすいかどうかなんて関係ないわけだし
どのツールもマイナス面はあるだろうし、特に悪いツールだとは思わないが、
そのレスみたいにプレイヤーに文句言うのは我儘かも
スクリプトにかける時間を省くか、プレイヤーの人気取るかどっちかだよな。
俺は弄りたくて吉里吉里使ってるだけだから、人のこと言えないわけだがorz
>>111 それ、明らかに釣りでしょ。
偽装ネガキャンじゃん。
ごめん、驚くほど釣られたorz
よく見たら素敵なテンプレ案だった
>>115 ユーザーからしたら、吉里吉里もLMも、ジャンル分けとしては大差ないんじゃないかな?
吉里吉里でkagを全く使ってないゲームってのもかなり希少だと思うから。
アホ。
>>119 まあそうなんだろうな。
せっかくの機能を生かしている人がほとんど居ないという可哀想なツールだよ吉里吉里は。
……やっぱりアホって言われると思ってました。
ただ、ミニゲームっぽいことをしようと思うとちょっと大きいんで配布しにくいね。
どんなに小さくしようと思ってもexeだけで3MB弱あるからな
一発ネタでもそれだけの大きさになってしまうのはきつい
>>122 圧縮しないで配布する人は見た事ない。
exeだけだと配布する時に1.2MBくらいだね、1.2MBってでかい?
いまさらどうでもいいぐらいのサイズ
1Mも10Mも大差ないな。
ミニゲームならフラッシュの方がよさげ。
吉里吉里サンプル&プラグインサイトの管理人さんが
他界されたらしい…
マジ?!
どこ情報だそれ
管理人さんの別館のBBSと、
その情報の投稿者のブログに書いてある。
・・・うわぁ、マジでショックだ。
ネットで活躍する人たちって、なんだかんだで若い世代なんだよね。
プロフ出してるのでは、20〜30代が多いんじゃない?
利用サイトの管理人の訃報というのは、意外とショックなもんだね。
ご冥福をお祈りします。
KSPは、最近は更新なかったけど、TJSの勉強に凄い役に立ってくれたから、
どうにかならないかな……
リンク集とプラグインにはものすごくお世話になった
ここなしでは完成することはなかっただろう
ありがとう、ありがとう
てっきり不謹慎なネタだと思っていたが、
なんか流れ的にマジっぽさが漂っているのはなぜだ・・・
…ネタ…じゃないよな
ソース見つけられない俺はどっちを信じたらいいんだぜ?
>136
d
マジっぽいな……ショックだ…
ご冥福をお祈りします。
俺もかなりお世話になりました。
自分もお世話になった。かなりショック。
ご冥福をお祈りします。
ご冥福をお祈りします。
自分もかなりお世話になりました。
本当にありがとう、ありがとうございました。
ショックだ・・・・・・
KSPのサイトは本館と同じURLみたいだから
ロリポの契約が終了しだい無くなって
しまうのだろうか・・・・・・
釣りをするにも相応の知性が必要だな。
見込み無いからやめとけ、な。
カスタマイズ性能についてはツクールなぞ比較にならんぐらいあるわけだが
吉里吉里ってWin32API使えたっけ
>>140 うん、吉里吉里はノベルゲーム作るのに適してるね
>>143 ちょっと上のレスで出てたよ。
API使うためのプラグインが公開されてるけど
最近のバージョンの吉里吉里に対応してるかは不明、らしい。
デフォでは今のところ無理。
外部DLL使えばなんでもできるじゃん
拡張性高ぇw
Nスクスレで火種まいてる
>>143にも親切だなおまいら
ところで
>>146はツクールが外部dll使えないとか思っているんだろうか
いくらなんでも外部dllが使えないツールなんて糞すぎる
ヒント
ツクール:9800円
吉里吉里:0円
ツクールってDLLの仕様公開されてんの?
っていうか外部DLLって表現は頭痛が痛いになってるぞ
external dynamic link library
ツクールもいいが、
俺は自分の作る糞ゲに一万も払う気にはなれないYO…
面識は無くてもお世話になってるサイトの管理人さんが
いなくなってしまうのもとても悲しいことなんだな。
ご冥福をお祈りいたします。
あのサイト閉鎖されたら
半人前の俺はどうしたらいいんだ orz
とりあえずファイルは一通り保存した。
プラグインはとりあえず保存したが
辞書みたいのはどうしたらいい?
え、誰?
>>158 >>127あたりからの流れ参照。
>>ID:nJdrPH6X
なんで日を跨いでるのにID変わらないんだ? なんかすげぇ。
マジレスしていいものかどうか
IDはきっかり00:00に切り替わるわけじゃない
全然知らんかった。
表示されてる日付とIDは直結してるのかと。
流れの速い板とかで、00:00:0xとかに書き込んでもIDは変わってるからさ。
おしえてくれてありがと&スレ違いスマソ
激しく既出かもしれんが、もうギブアップなんだ。答えを教えてくれorz
TJS入門(サイトOUTFOCUS内)でTJSの勉強をはじめたんだが、
TJSで組んだもぐら叩きを、KAGのシナリオ内に組み込む方法がサッパリ;
カンニングさせてくれ;
>>163 (1) eval でTJS系の処理を起動
(2) waittrig でKAG を停止
(3) TJS 側の処理がおわったら kag.trigger("トリガの名前"); してKAGを再開
これが基本かな。
日記読んでみたけど吉里吉里3は少し負荷軽くなるのかな?
古いパソコンでもクロスフェードとトランジションくらいは表示滑らかになると嬉しいんだが
800x600だとやっぱりきつい
あれぇ……アップデートしたらなにも画像が表示できなくなったよ
なんだよこのウンコツール
氏ね
マジレスしていいものかどうか
シナリオファイルも画像フォルダもいじってないのに
システムフォルダをアップデートしてコンフィグファイルを引き継いだだけなのに
今までは表示できてた画像が全部エラーになったよ
ヘルプ用画像までエラーになるからファイル指定間違えてるとかじゃないもん
ウンコ
ああもうウンコ
吉里吉里kagはウンコです
ごめん、非常に心苦しいんだが、
どこが笑い所か分からないから解説してくれ。
笑いどころを解説する漫才師なんて、ウンコ
どこを間違ったかもう一度よく見ようね
気付いたとき恥ずかしいだろうから
早くレスが流れるよう協力してあげる
絵が上手く描けないのを道具の所為にする人みたいだ。
早くレス流れるといいね。
>>168 全ての画像ファイルが読み込めないわけでしょ?
それって引継ぎに失敗したわけじゃないんでは?
ID:tuoh/tGm はやればできる子。
と言われて育った子。
さすがに「このウンコで上手い絵を描け」なんて要求はこなせませんが
>>159 あ…
上のほう見てなかったんだけど
なぜか真っ先に気になって、KSP確認しに行って
大丈夫そうだと思ったから
ちょっと安心して
でもまさかと思って聞いたのに
そうなんだ…。
ご冥福をお祈りします
177 :
163:2006/10/25(水) 18:50:49 ID:dz1gegBS
こんな風にしてみたんだが、どうにも上手く行きません orz
どうやらゲーム開始の時点で躓いてる…?
---------------------------------
[iscript]
■サンプル前編そのままコピぺ■
// 残り時間を更新する
with (fore) {
.copyRect(0, 0, parent, 0, 0, 160, 30);
.drawText(0, 0, "残り時間:"+(rest_time--), 0x000000);
}
if (rest_time < 0) {
kag.conductor.trigger("game_over"); //game_overトリガーっぽいもの?
stop();
}
}
}
■class GameWindow extends Window 以降ごっそり削除■
[endscript]
[wait time=200]
*start
[cm]
[layopt layer=message0 page=fore visible=false]
[layopt layer=1 page=fore visible=true]
[image storage="stage" layer=2 page=fore visible=true]
[backlay layer=2]
[wait time=1000]
;ゲーム開始
[eval exp="tf.game"]
[waittrig name="game_over"]
[layopt layer=message0 page=fore visible=true]
得点=[emb exp="tf.point"]
とりあえずサンプルの動きが全然わかってない
GameWindowクラス消したならその動きの代わりを書かなきゃならんわけだが
で、GameWindowクラスでは以下のことをやってる
・ウィンドウの作成
→KAGでやっているのでいらない
・メニューの作成
→少なくともゲーム開始の代わりに何か必要でしょ?
・プライマリーレイヤを作成
→imageタグでやってるのでおk
・ゲームマスターオブジェクトを作成
→これがないと話にならん
まずGemeMasterクラスのオブジェクトを作成しないと・・・
[iscript] 〜 [endscript]のところ等は全く必要ない
残り時間、得点の計算&表示はGameMasterクラスでやってる
しっかりサンプル読んだことあるのか?
カレントメッセージレイヤにマウスが入った時、
ボタンが表示されるようにしたいのですが、
メッセージレイヤの上に子レイヤを表示し、
子レイヤのonMouseEnter()を使うとメッセージを進めることができなくなります。
kag.fore.messages[0]のonMouseEnterをいじれればいいのですが見つかりません・・・
>179
その子レイヤのonMouseDown()で
メッセージレイヤの同じ関数叩いてやればいいじゃん。
あ、違った。メッセージレイヤはイベント全透過だった気がする。
kag.fore.baseのクリック受け取るところを叩く。
182 :
179:2006/10/26(木) 23:58:24 ID:jruoOnRY
回答ありがとうございます
リファレンスなど調べてみたのですが、
kag.fore.baseのクリック受け取るところを叩く
のやり方がわかりません。
kag.fore.base.superOnClick = kag.fore.base.OnClick;
// 参考:前スレ
>>964 kag.fore.base.onClick = function(x, y){
/*
ここにonClickの中身
参考:TJS2リファレンス >関数 >無名関数
*/
};
とりあえずクリック受け取るところ(onClick)の叩き方
だが
>>179のやりたい事はonMouseMove使うと思う
>184
>だが
>>179のやりたい事はonMouseMove使うと思う
kag.fore.baseで一括処理するなら使うけど
179のように、制御用に別レイヤ使うんならいらんでしょ。
>182
子レイヤのonMouseDownで
kag.fore.base.onMouseDownを引数そのまま引き継いで呼び出すだけでいい。はず。
ちなみにGraphicLayer.tjsのBaseLayerクラス(kag.fore.baseの中身)見ればわかるが
あくまでkag.fore.base.onMouseDownな。
kag.fore.base.onClickじゃだめだぞ。
185 :
179:2006/10/27(金) 02:01:58 ID:dIG/4Gub
>>183 >>184 ありがとうございます
kag.fore.base.onMouseMove = function(x, y) { }
で無事実装することができました。
保守
187 :
青衣:2006/10/29(日) 16:07:38 ID:UkBbYt9p
『次の選択肢まで進む』などで文章をスキップする際、
効果音の再生待ちのせいでスムーズに文章が流れていかないのですが
これはなんともならないものなのでしょうか?
[playse storage=***.wav cond="kag.skipMode<=1"]
ふーん。
もっといい方法は無いですか?
荒らさないでね。
>187-188
再生待ちが問題なんだから、こっちのほうが。
@ws canskip="&(kag.skipMode > 1)"
って、単純にcanskip=trueってするほうが早いけどね。
あと、あえてwsを使わないという手もある。
文章文章文章文章文章
[playse storage=seHoge][ws]
文章文章文章文章文章
ではなく、
文章文章文章文章文章
[playse storage=seHoge]
文章文章文章文章文章
[stopse]
としておけば、効果音のせいで進行が止まることはなくなる。
どこで止めるか神経使う分、面倒ではあるけど。
>>192 効果音の再生待ちって、普通演出のためにやるもんでしょ。
なんていうかそれじゃ本末転倒。
っていうか、そういうふうにするなら
[macro name=playse2]
[stopse]
[playse *]
[endmacro]
みたいにしとく。俺なら。
いや、192は、効果音再生をこんな(↓)風に、
[macro name=myplayse][playse storage=%storage][ws][endmacro]
硬直的に使っている人とか居そうだから、あえて分離する形を提示してみたわけで。
もちろん、常に使える形じゃないけど、音によっては文章にかぶせても不自然じゃ
ないこともあるので、この形も検討してはどうかという提案だったり。
ちなみに193のplayse2は、playseと同じ機能ですよ?
キーボードによるショートカットが出来るようにしようと
if ( key_target.getKeyState(VK_1) ) key_state ='1';
if ( key_target.getKeyState(VK_2) ) key_state ='2';
・
・
・
といった感じの記述をしていたのですが、
kagのウィンドウがアクティブで無い状態でもキーの入力を拾ってしまい、困っております。
kagがアクティブかどうかを判別するにはどうしたらよいものでしょう?
System.onActivateじゃダメ?
吉里吉里のプロジェクト管理にWHiNNY使ってるんだけど、
これプロジェクトツリーと実際のフォルダやファイル同期できる?
エクスプローラーでファイル追加しても、WHiNNYのプロジェクトツリーの方で同期が取れないというか
更新してもファイルの追加・削除が反映されないのが凄い不便だ
>>194 ああ、
>>192の例を見てたらなぜだか、トランジションのエラーをSEのエラーと混同しちゃったんだ。ハズカシー
199 :
168:2006/10/30(月) 00:56:03 ID:2ly6lEzA
やっと解決できた
kagのリファレンスにシステムフォルダ内のファイルを更新すればアップデート完了
とか書いてあったからそれだけしかしなかった
しかし問題はそのせいで起きたようだ
システムフォルダだけでなく吉里吉里の実行ファイルも更新したらちゃんと動いた
いやいやマクロの画像表示でエラー出るわ
マクロ使わず画像表示するとエラーは出ないが画像が表示されてないわで
謎現象に困ったが
なんとか解決できたよウンコ
ああウンコ
このスレにこの謎を解けたホームズ氏は存在しなかったようだがな
ウンコ
ついでに200没収
ちゃんと頑張ってたんだね
偉いね
というか実行ファイルを更新してなかったって……
初心者がやることは予想の遥か上をいくって本当だったんだな
>199
>KAG のアップデートをする場合は、基本的には、新しい KAG の system フォルダの中身を、
>既存の system フォルダに上書きするだけで OK です。
基本的には、
基本的には、
基本的には、
あと「吉里吉里」と「KAG」の違いは分かってるかな?
よく勉強して賢くなろうね
基本的な場合と基本的でない場合を逃げずに22分以内に書いてくれ
はい終了です。
ひさびさに覗いたらウンコウンコとくっさいスレですね。
一つ質問させて下さい。
以下の様な事は可能でしょうか?
可能な場合、どの様な命令を使うと出来るか教えて下さい。
よろしくお願いします。
example.ksファイル
[macro name=called]
(処理)
[endmacro]
MainWindow.tjsファイル
(ここから↑のexample.ks内にあるcalledマクロを呼び出す)
その説明だけだとよく意味が分からないけど、
kag.callExtraConductorを使うのは駄目ですか
つ【KAGリファレンス「TJSをもっと使うために」】
208 :
206:2006/10/30(月) 12:12:18 ID:xfioDu3D
>>207 回答ありがとうございます。
呼び出し元がtjsファイル内の為、頭のkagを取って
試してみましたが、上手く動きませんでした。
原因は2番目の引数が「呼び出すラベル」となっている為だと思います。
これの「呼び出すマクロ」版があれば最高なのですが、
やはり、こういうtsjからks内のマクロ呼び出しなんてやり方は
無理があるのでしょうか。
それって、ラベル書いて、そこに[called]置いとけばいいのでは?
というか、何がしたいのかサッパリわからん。
tjsからタグを呼び出すだけならともかく、それをMainWindow.tjs中でやる必要のある状況が一向に浮かんでこないんだが。
211 :
206:2006/10/30(月) 13:42:10 ID:xfioDu3D
>>210 すみません。
それを初めに書くべきでした。
まず、現状でメニューバーに「○○を表示する」と言う項目を追加しており、
そのOn、Off時に実行したい処理というのが、ksファイル内のマクロそのもの
であるという状況です。(マクロ内で実際の表示・非表示を処理)
このマクロは、元は他のks(シナリオ)ファイルからも呼び出されている物で、
それを流用出来ないかと考えた次第です。
>211
KAGリファレンス「TJSをもっと使うために→メニューのカスタマイズ」
ただ実行したいマクロの実際の内容にもよるけど、
インターフェイスの切り替えならメニューからよりは
システムボタンからの操作をオススメするよー
ちょっと待って>208読んでなかった
>呼び出し元がtjsファイル内の為、頭のkagを取って
>試してみましたが、上手く動きませんでした。
なんか根本的に勘違いしてるような気がする
あとMenus.tjsじゃ駄目なの?(AfterInit.tjsの方が楽だけど)
214 :
206:2006/10/30(月) 15:27:08 ID:xfioDu3D
>>209 回答ありがとうございます。
やってみましたが、以下のエラーメッセージが表示されてしまいました。
MainWindow.tjsでclass KAGWindow extends Windowとしてほぼ全体を囲ってありますが、
(エラーメッセージ)
右クリックサブルーチン内/extraCondutorサブルーチン内では
保存可能なラベルを記述できません
>>213 >頭のkagを取って
【KAGリファレンス「TJSをもっと使うために」】 の中で
前景レイヤ操作の際、kag.fore.layers[n]とありますが、
そのままではエラーが出て、fore.layers[n]とした時に動いたので、
そのように考えていました。そういう事では無いということでしょうか?
もう少し勉強してみます。
>Menus.tjs
Menus.tjsファイルの中には既に「○○を表示する」を追加する記述が存在し、
その際、KAGMenuItemの第4引数に実行する式として、MainWindow.tjs内にある
functionを指定してあります。
ここで指定されているfunctionは、既に他の仕組みが組み込んであるのですが、
追加で、そこからksファイル内のマクロを呼び出せないものかと考えていました。
>>211では簡素に書こうと色々と端折り過ぎました。すみません。
無理そうならまた別の方法を考えて見ます。
色々と考えてくださってありがとうございました。
215 :
206:2006/10/30(月) 15:32:37 ID:xfioDu3D
連投すみません。
訂正させてください。
× MainWindow.tjsでclass KAGWindow extends Windowとしてほぼ全体を囲ってありますが、
○ MainWindow.tjsでclass KAGWindow extends Windowとしてほぼ全体を囲ってありますが、
これが何か関係してたりするのでしょうか?
216 :
209:2006/10/30(月) 16:05:22 ID:dCKm/Z9v
>214
エラーメッセージの通りでは?
callExtraConductorで呼んだサブルーチンに保存可能なラベルがあるのが
ダメなんでしょ。
ラベルに|を付けちゃってるんじゃないの。
217 :
206:2006/10/30(月) 16:34:41 ID:xfioDu3D
>>216 回答ありがとうございます。
|は付けてませんでした。
具体的には以下の通りでした。
1.ksファイル内のマクロの先頭に"*ラベル名"を追加
example.ksファイル
*called_label
[macro name=called]
(処理)
[endmacro]
2.MainWindow.tjs内にあるfunctionから以下の通り呼び出し
callExtraConductor("example.ks", "*called_label");
3.krkr.exe起動中にエラーメッセージ表示
218 :
213:2006/10/30(月) 17:06:46 ID:O+6lQRWF
>217
さっぱり状況が掴めないなー
AfterInit.tjsに↓書いて試してみて
あと>209の指摘は注意すべき点だと思う
example.ks自体からはreturnしてるよね?
function CallMacro(){kag.callExtraConductor("example.ks","*called_label");};
kag.menu.add(kag.CallMacroMenuItem = new KAGMenuItem(this,"テスト",0,CallMacro,false));
>>206は何がしたいのか、何をしているのか
ちゃんと自分で理解してくれ。
で、macroタグはマクロを定義するもの。
>>209が言いたいのは↓じゃないかと。
[macro name=called]
(処理)
[endmacro]
*called_label
[called]
[return]
220 :
195:2006/10/30(月) 17:57:52 ID:JxOCUzTv
>>196 >System.onActivateじゃダメ?
調べてみたところ、
どうやらSystem.onActivateがtrueになるのは×押して終了する時とか…?
ウインドウがアクティブかどうかとは関係が無いようでして…
>220
Window.onActivateはどうだろう
あとWindow.onKeyDownでキー割り当てても症状起きる?
このへんは詳しくないので見当違いだったらゴメン
222 :
206:2006/10/30(月) 18:24:12 ID:xfioDu3D
>>219 示してくださった例の通りにしたら出来ました。
本当にありがとうございます。
その他のみなさんも色々と教えてくださってありがとうございました。
次にここに来るまでにもう少し勉強してきます。
223 :
209:2006/10/30(月) 19:06:41 ID:dCKm/Z9v
>218-219
フォロー、dクス。
そういうオチだったか……。
やっぱ、ちゃんとコード書かないと伝わんないね。
>220
onActivateはプロパティでなくイベントだから、trueになったりするもんじゃ
ないよ。
アプリケーションがアクティブかどうか判断するなら、
System.onActivate
System.onDeactivate
で、アクティブかどうかのフラグをON/OFFして、それを参照すればいいハズ。
具体的にはOverride.tjsに、
var appActive = 1;
System.onActivate = function(){appActive = 1;};
System.onDeactivate = function(){appActive = 0;};
とか書いといて、appActiveの値で判断すればいいと思うよ。
225 :
195:2006/10/30(月) 20:29:45 ID:JxOCUzTv
>>224 ありがとうございます!早速やってみます!
226 :
195:2006/10/30(月) 20:46:27 ID:JxOCUzTv
できましたー!
ありがとう御座いました!
linkタグにcondって使えますよね?
cond内の式の評価が偽になると、エラーを吐くんですが……
>>227 linkがないのにendlinkがあるとエラーになるんじゃなかったっけ?
あー、もしかしてendlinkにもcond指定しないといけなかったのか……
ちゃんと動作しました、ありがとうございました
句点とか指定した文字のところで自動的にクリック待ちするように出来ますか?
簡単にできますよ
タグリファレンスの一番上じゃねぇか。
作ったデータを、リリーサーでdata.xp3(それか実行ファイル形式)で出力して起動しようとすると
「スクリプトで例外が発生しました
ANSI 文字列を UNICODE 文字列に変換できません。現在のコードページで解釈できない文字が含まれてます。
正しいデータが指定されているかを確認してください。データが破損している可能性もあります」
となって起動できないんですが、どうすればいいんでしょうか?
吉里吉里で作られた他のゲームは普通に動きます。
文字コードを見直せば良い
プロジェクトフォルダのexeへのD&Dだと、普通に起動できるんですが
xp3にすると、どうして駄目なんでしょう・・・
原因が分かりました。
xp3enc.dllで暗号化しようとしてたのが駄目だったみたいです。お騒がせしました。
238 :
青衣:2006/11/01(水) 14:50:52 ID:W/igmp/l
返事が遅くなって申し訳ありません
みなさんからもらぅっあアドバイスを参考にやってみます
誰だ???
TJS、吉里吉里の拡張について詳しいページってどっかにないものか?
誰か『TJSと心中』作って。すきゃんてぃと一緒に
吉里吉里は講座が充実してるって言うけどそんなにないよな。明らかに供給不足。
しかし講座サイト作れるほどの人は1円にもならんことするぐらいなら
自分の作品を作るので需要が満たされることはない。
充実してるのは講座じゃなくて公式掲示板。神のような方々がいる。
たまに嘘をおしえまくる邪神がいるが。
TJSの講座ってどの位のレベルのもの書けばいいのか
よく分からないから、躊躇してしまう。
contextofの詳細な解説
>>246 incontextof?
自分も詳細が知りたい。
C++の foo->bar() な感覚で使ってるけど違うのかな?
~~~
いや違うんじゃ・・・。
TJSの関数も含めたオブジェクトは全て自身のアドレスとコンテキストのアドレスを持ってる。
例えば、
function func()
{
left = 0;
top = 0;
}
という関数は、func(); とやって普通に呼び出したら変数未定義でエラーになるが、
(func incontextof kag)();
とやって呼び出してやれば、kagコンテキスト上で呼び出されたものと判断されて、
kagウインドウがあら不思議、(0, 0)の位置に来るわけです。
つまり、foo->bar()ってのは、ポインタfooが示すクラスのメンバ関数にアクセスしてるに過ぎないから、
上の例で言えば、global.func()と同じようなもの。(funcのコンテキストはglobal)
一方、incontextofを使えば、kag.func()と同じようなイメージで、
kagが本来持たない関数をkag上で呼び出すことが出来る。
つまりC++の->*ということで
250 :
名前は開発中のものです。:2006/11/03(金) 09:19:52 ID:pMREOX1H
evalの左辺に配列を使う方法がわかりません
[eval exp="f.kuda_dict = %[]"]
[eval exp="f.kuda_dict['りんご'] = 'ringo'"]
[eval exp="f.kuda_dict['みかん'] = 'mikan'"]
[macro name="eigo"]
→[eval exp="f.fruit = f.kuda_dict[mp.kudamono]"]
[image storage="&f.fruit" layer=0 page=fore visible=true left=0 top=0]
[ch text="%kudamono"]
[endmacro]
[eigo kudamono='りんご']
「りんご」をマクロに伝えてファイル名ringo.pngを表示させたいんだけど
矢印のところでエラーになる
検索のヒントだけでもいいので教えてください
>>250 特に異常なかったけど・・・eigoマクロ定義の中に
[trace exp="mp.kudamono"]
[trace exp="f.kuda_dict[mp.kudamono]"]
を埋め込んで、コンソールで確認すれば一発じゃね?
>251
スペルミスってました(;´Д`)
ありがとうございます
traceマンセー
253 :
名前は開発中のものです。:2006/11/03(金) 17:32:34 ID:jbcUfQx6
>254
ありがとうございます。
お教えいただいたサイトの二つの方法でメッセージ枠の外側が透過されました。
【スクリプトをちょっと紹介させてください】
アドベンチャーゲーム用スクリプトシステム「MICoスクリプト」を開発しました。
軽いこと&商用ゲームでの使用可能な高性能を目指して設計しており
複雑な演出も簡単に作れるシステムです。
詳しい紹介は公開サイトにありますので、よろしければ使ってみてください。
公開サイト
ttp://mico.x0.com
他言語のスレに殴りこみにくるとはいい度胸だな
とりあえず吉里吉里に比べて圧倒的に重いので勝負にならないね。
あと、スクリプト記述は、実際にはマクロで大分隠蔽されるんだとはおもうけど、
スクリプタが泣きそうなスタイルだった。
画面トランジションの例はなかなか面白いのがあったので、
誰か吉里吉里に移植すればイイナと思った
別に作者同士でもあるまいにいがみ合わなくてもいいじゃん
ただ変数の実装がダサくて使う気がしないな、今時これはない
>>軽いこと&商用ゲームでの使用可能な高性能を目指して設計しており
>>とりあえず吉里吉里に比べて圧倒的に重いので勝負にならないね。
速攻で否定されててなんかワロタ
正直こういうのを開発して公開にこぎつけるだけで尊敬に値する
>>256 サンプルのBU回転させたらフリーズして終了できなくなった
>256
後発は大変だろうが頑張ってディベロップしていってくれ
尊敬も何もただの金儲け狙いじゃん。
広告はNGだから本来ならレス削除対象。
吉里吉里とNスク以上のものって無理だろ
>256
なんでfirefoxだとほとんどの画像が見えないんだろう。
あと人を誘導したいのなら魅力的にみせないとだめだよ。
サンプルDLだけじゃなくて開発画面や強調したい仕様のスナップショットをとったりしないと。
この時点でのマルチはちょっと感心しないな。
>>256 <a href="files\hoge.zip"></a>
これが通るIEが本来おかしい
>>258 の続き
よくよく考えてみると、個別レイヤの拡大縮小回転の自在な操作は素のKAGではできなくて、
素人さんに同等のことをさせるのは無理だから、その点は評価に値すると見直した。
重いのとジャギがひどい(一応補完はあるらしいのだがマニュアルによるとさらに重くなるらしい)のと
なにより拡張性皆無なのとで結局のところ選択対象にはならんのだが、アイディアの良いところは
拝借しようと思うw
つーか、明らかにゆずソフト関係者だよね?w
ゆずソフト「ぶらばん!」は吉里吉里/KAGEX採用して
いるんだけど変更するのかね
サンプルのイベント絵EV0102A.bmp(1407KB)を
画像フォーマットコンバータにかけてみた
EV0102A.png 349KB
EV0102A.tlg 270KB
サンプルに含まれているファイル
EV0102A.mgp 735KB
orz
>270
ちょっと解析してみたけど、単純なランレングス圧縮っぽい。
ヘッダ部を除くと、
WORD count ピクセル数(最上位ビット以外)
[count最上位ビット=0] BYTE[3] RGB このピクセルをcount回繰り返し
[count最上位ビット=1] BYTE[3*count] 非圧縮
の繰り返し。
>>272 仕事早ええな、GJ
>>273 それはVistaなら余裕なんじゃなくって、Vista用に組んだ奴なら余裕ってことじゃねーの
これはキモイ
スキップ時に、未読部分でスキップを停止するか、否か、をオプションで設定できるようにする方法はありますか?
んっ、sf.ifSkipOnUnread みたいなものに設定内容を憶えておいて
@wt canskip=sf.ifSkipOnUnread
とかすればいいんじゃね
ありがとうございます
やってみます
KAGはわかるんですけど、TJSはさっぱりわかりません
皆さんはTJSはどうやって学んだんですか?
これ以下をAfterInit.tjsに記述して、scenarioフォルダにでも置く。
//メニュー追加
kag.systemMenu.insert(
kag.midokuSkipMenuItem = new KAGMenuItem(
this,
"未読もスキップ(&M)",
0,
function(sender) { sf.midokuSkip = sender.checked = !sf.midokuSkip; },
false), 3);
if(sf.midokuSkip === void) sf.midokuSkip = false;
kag.midokuSkipMenuItem.checked = sf.midokuSkip;
// メソッドの書き換え
kag.onConductorLabel_org = kag.onConductorLabel;
kag.onConductorLabel = function(label, page)
{
// コンダクタがラベルを通過した
if(!usingExtraConductor)
{
incRecordLabel(true);
setRecordLabel(conductor.curStorage, label);
}
//つづき
setUserSpeed();
if(!usingExtraConductor)
{
if(!getCurrentRead() && ((!sf.midokuSkip || (skipMode != 3)) && skipMode != 4))
cancelSkip(); // 未読なのでスキップを停止
currentLabel = label;
}
if(page !== void && page !== '')
{
if(page[0] == '&') page = Scripts.eval((page.substring(1)));
currentPageName = page;
}
if(page !== void)
{
pushHistoryOfStore();
stablePosibility = false;
dm(conductor.curStorage + " : ラベル/ページ : " + label + "/" + currentPageName);
if(usingExtraConductor) throw new Exception("右クリックサブルーチン内/extraCondutor"
"サブルーチン内では保存可能なラベルを記述できません");
storeFlags(), storeLabelPassed = true, setMenuAccessibleAll();
if(recordHistoryOfStore == 1) // 1 : 保存可能なラベルごと
setToRecordHistory();
}
//つづき
return true;
} incontextof kag;
kag.onConductorAfterReturn_org = kag.onConductorAfterReturn;
kag.onConductorAfterReturn = function()
{
// コンダクタが return タグを実行した後
if(!usingExtraConductor)
{
setRecordLabel(conductor.curStorage, currentLabel = conductor.curLabel);
}
setUserSpeed();
if(!usingExtraConductor)
{
if(!getCurrentRead() && ((!sf.midokuSkip || (skipMode != 3)) && skipMode != 4))
cancelSkip(); // 未読なのでスキップを停止
}
} incontextof kag;
// 参考:
// KAG System リファレンス − TJSをもっと使うために − メニューのカスタマイズ
//
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/TJSTips.html#id282 // 公式掲示板ログ 2470 メソッドの入れ替えについて
//
ttp://www.kirikiri.info/bbslog/log/002470
>>279 たぶんTJSをっていうより、一般にそういう何か言語を使って物を書くみたいなことを
学んだら一通りのことはできるようになると思うよ
俺はCGIの改造から入ったお
俺はjavaスクリプトからだー
僕は警察官!
僕はくまたいよう!
僕はLOADしらず!
僕は童貞!!
じゃあ私はウェブデザイナー!
>>288 LOADしらずってなんだよ、と思ったが
公式BBSでネタ元をみつけて笑ってしまった
292 :
276:2006/11/07(火) 00:12:16 ID:NVPgdFnj
>>279-281 ありがとうございます。
でも上手くいきませんでした。
メニューに「未読もスキップ」は追加されたんですが、チェックしてもしなくても、未読部分でスキップ停止してくれません。
書かれたとおりに、AfterInit.tjsに記述して、scenarioフォルダに置いたんですが。
私がTJSをほとんど理解していないのが悪いのかもしれません。
ちょっと質問をば。
長さの不定な2^(8)以下の数値の配列の中身をオクテット列に格納することって
現在のTJSの仕様では不可能なんでしょうか?
真っ先に思いついたのは Scripts.eval だけど
メッセージレイヤーの濃度調節機能を4時間掛けても実装できない俺オワタ
positionマクロじゃだめなのか?
297 :
293:2006/11/07(火) 08:18:54 ID:WLoL7Sns
>>294 Scripts.evalは多分関係ないかと……。
もし見落としがあったらごめんなさい><
メニューのセーブで、セーブデータ名が
(日付) (ラベル名)
ってなってるのを
(日付) (ラベル名) (セーブ時のメッセージウインドウの一番上の行の先頭10文字)
っていうふうにして記録できますか?
>>297 Scripts.evalを真っ先に思いついた
>>294は凄いと思うのだが…。
つまり、動的にオクテット列を文字列として生成して
それを Scripts.eval に突っ込む、と。
ちょいと質問〜。AVG風のスタイルはKAGだけでもいけるんだっけ?
でもアイテムを視覚的に(アイテム欄作ってそこに画像を表示)表示するにはTJS弄らなきゃ無理?
日本語でおk
KAGだけで行ける
>>300 そんな遣り方があったのか!?Σ(゚Д゚;
>>294 凄すぎます。そんな裏技を一瞬で思いつくとは…。
関係ないとか失礼なことを言ってしまってごめんなさい。
>>294さん
>>300さん、どうもありがとうございました。
あまりキレイなコードじゃないけど。
これ以下をAfterInit.tjsに書いて、scenarioフォルダにでも置く。
kag.currentMessage = ""; //見出しへの追加文字(メッセージレイヤの一番上に表示されている文字)
kag.storeCurrentMessages = 10; //見出しに追加する文字数
kag.tagHandlers.ch_org = kag.tagHandlers.ch;
kag.tagHandlers.ch = function( elm )
{
// 文字表示
var acs = actualChSpeed;
if(updateBeforeCh)
{
if(acs) { updateBeforeCh--; return -5; } else { updateBeforeCh--; }
}
var len = currentMessage.length;
if((len < storeCurrentMessages) && (!f.noStoreCurrentMessage))
currentMessage += elm.text.substring(0, storeCurrentMessages - len); // 見出しへの追加文字を記録
return tagHandlers.ch_org(elm);
} incontextof kag;
kag.tagHandlers.cm_org = kag.tagHandlers.cm;
kag.tagHandlers.cm = function( elm )
{
currentMessage = ""; // 見出しへの追加文字をリセット
//つづき
return tagHandlers.cm_org(elm);
} incontextof kag;
kag.saveBookMarkToFile_org = kag.saveBookMarkToFile;
kag.saveBookMarkToFile = function(fn, savehist = true)
{
if(readOnlyMode) return false;
pcflags.currentMessage = currentMessage; // 見出しへの追加文字を栞に保存
return saveBookMarkToFile_org(fn, savehist);
} incontextof kag;
kag.saveBookMarkWithAsk = function(num)
{
// 栞番号 num に栞を設定する
// そのとき、設定するかどうかをたずねる
if(readOnlyMode) return false;
if(bookMarkProtectedStates[num]) return false;
var prompt = "栞 ";
if(num < numBookMarks) prompt += (num + 1);
if(bookMarkDates[num] != "") // bookMarkDates が空文字の場合は栞は存在しない
prompt += "「" + bookMarkNames[num] + "」";
prompt += "に「"+ pcflags.currentPageName + " " + currentMessage + "」をはさみますか?";
var result = askYesNo(prompt);
if(result) return saveBookMark(num);
//つづき
return false;
} incontextof kag;
kag.getBookMarkInfoFromData = function(dic, num)
{
// 辞書配列 dic から栞のページ名と日付を読み出し、
// bookMarkDates[num] や bookMarkNames[num] に設定する
if(num < numBookMarks)
{
bookMarkNames[num] = dic.currentPageName + " " + currentMessage;
var date = new Date();
date.setTime(dic.storeTime);
date = "%04d/%02d/%02d %02d:%02d".sprintf(
date.getYear(), date.getMonth() + 1, date.getDate(),
date.getHours(), date.getMinutes() );
bookMarkDates[num] = date;
setBookMarkMenuCaptions();
saveSystemVariables();
}
} incontextof kag;
// 最後に通過した[cm]タグから、kag.storeCurrentMessages文字分だけを見出しへの追加文字とする
// ただし、f.noStoreCurrentMessageが真の間に表示した分は除外
// (見出しにしたくない文字を表示するときは、上のフラグをONにする)
>>300 thx
>>304 あーうん、言葉足りなくてごめ
function toOctet(a){
var s = "<% ";
for(i=0; i<a.count; i++){
s += toHexa(a[i]) + " ";
}
return Scripts.eval(s+="%>");
}
みたいなイメージでやればとりあえず
何か動くものはできると思って
KSPにアクセスできなくなったね
今までありがとう
ほんとだ。404になってるね
いろいろお世話になりました
311 :
名前は開発中のものです。:2006/11/08(水) 01:53:56 ID:mt1aPMaZ
吉里吉里SDKヘルプの出し方を、教えて
>>307 うおーすげー、まさか作っていただけるとは…
ありがとうございます!
勉強になります
プログラム上手くなったら楽しいだろうなー
314 :
276:2006/11/08(水) 22:49:14 ID:vJan3sVP
>>298 >KAGのラベル記述と既読処理については理解してる?
理解していたつもりだったんですが、上手くいかないってことは間違っているのかもしれません
>念のため、リファレンスを読み直してみては。
そうしてみます
とりあえずお手本を作っていただいたので、大変助かりました
理解できるまで頑張ります
315 :
名前は開発中のものです。:2006/11/08(水) 23:17:06 ID:mt1aPMaZ
>>312
>ありがとう
316 :
名前は開発中のものです。:2006/11/09(木) 01:19:37 ID:+wAjXamd
そりゃWindows標準のやつじゃできない
あきらめな
DLLとか自作すれば出来ない?
319 :
276:2006/11/09(木) 05:52:00 ID:z9y3sIb8
既読判定について質問です
未読部分でスキップを停止する場合についてです
リファレンスには
これらの「部分」が既読と見なされるには条件があります。
原則として、「次のラベルに到達したり [s] タグに到達した」場合にその「部分」が既読であると見なされ、システム変数に記録されます。
とあるのですが、
*label01|01
文1 [p][cm]
文2 [p][cm] ←(A)
文3 [p][cm]
文4 [p][cm]
文5 [p][cm]
*label02|
文6 [p][cm]
文7 [p][cm]
文8 [p][cm]
上記の(A)の文2が表示されている時点でスキップを開始すると、label02の開始点までスキップされてしまいます。
文2の時点ではまだ次のラベルが現れていないので、文3でストップしないといけないと思うのですが、私の理解が間違っているのでしょうか?
リファレンスちゃんと読もうよー
>>319 それはKAGの仕様。
KAG側で、未読の途中でスキップが動作しない処理ってのはされてないし、
スキップの停止はラベルのあるとこでしか判定されてないから、
未読部分でスキップすると次の未読ラベルまでスキップされてしまうわけ。
それが嫌なら今のラベルが未読の時はスキップ自体がされない処理を
自分で入れとくか、細かくラベルを置いとくかしかないと思うよ。
322 :
276:2006/11/09(木) 11:27:27 ID:z9y3sIb8
323 :
276:2006/11/09(木) 11:28:11 ID:z9y3sIb8
>>317 ありがとうございます。
Windows標準でない方を使うようにいたします。
タイトル画面はどう作ればいいでしょうか?
スタート、ロード等のメニューはどう作ればいいのかなど、わからない事がたくさんで・・
宜しくお願いします。
吉里吉里 タイトル画面でググれ
ありがとう
選択肢などのテキストをメッセージ履歴に載せない方法ってありますか?
history
history output=false
ありがとうございます
頼むから一度はリファレンス読んでくれ…
Deeたんが頑張って書いたんだぞ
リファレンスは調べたいタグの名前が分かっていて属性を調べるときに使う物。
こんなタグある?とかこんな機能ある?って質問に対してリファレンス嫁は見当違い。
リファレンスはキーワード検索するものであって読む物ではない。
調べたい機能からもリファレンスは検索出来るでしょ。
でも、どんなタグがあるのか一度でもざっと目を通しておくべきだと思うんだ
リファレンスは調べたいタグの名前すら判らない時にまず一通り読むもの。
リファレンスに当然の如く書いてある様な質問に対して、リファレンス嫁は基本中の基本。
リファレンスは全て読み、なんとなくでも頭に内容を入れておく物である。
マクロでtimeの値をデフォルトでは変数"&sf.a1"を代入
シナリオ中に t=値 で数字を入れたときはその数字を代入というような動作をしたいのですが
@trans method=crossfade time=%t|&sf.a1
こういう感じだと代入されません
変数を使う場合は何か別の書き方をしないといけないんでしょうか?
[playbgm loop=true storage="曲名.mid"]
で音楽を鳴らそうとしてるんですが、なりません。どこかおかしいのでしょうか。
何度か試してみて、タグリファレンスも一応拝見させて頂いたのですが直し方がわかりません。
効果音タグを使っているのですが、ちゃんと[ws]で終了させてはいるのですが・・
どなたかお助けください。
>337
・初期設定
・MIDIファイル不良
・MIDIファイル名
・MIDIファイル場所
・音量設定
・吉里吉里壊れてる
この辺り。
>>338 思い当たる原因は調べたのですが、もう一度調べなおしてみます。
今日はもう寝ますが、明日調べます。ありがとうございました。
wavファイルで試してみろ。config.tjsが一番怪しい
>>336 確かデフォルト値に変数ってのは未対応だったはず…
マクロにevalを追加して、tが指定されてなかったらtにsf.a1の値を入れるようにしとけばいいかと
@eval cond="mp.t===void" exp="mp.t=sf.a1"
@trans method=crossfade time=&mp.t
>>340 config.tjsを徹底的に漁ってみましたが、どうやらそのとおりでした。
MIDI形式に変更した所、すんなりいきました。
初歩的なミスでした;
>>338 >>340 ありがとうございました。助かりました。
吉里吉里でテンプレートを読み込んでフルスクリーンにしたら
>tvp(kirikiri)2.core/scripting platform for win32がインターネットにアクセスしようとしています。
って警告が出たんだけどこれって許可していいの?
ファイルとか全然いじってない。
>>341 できました
ありがとうございます
吉里吉里はすごいな、ほんとに細かい所まで融通が利いて
サンプルプラグインのページが消えてる
全部保存してた俺は勝ち組
>347にうpして貰った俺も勝ち組。
って事でよろ
KKDE使ってるんですけど、たまに文字が消えたりするのは仕様なんでしょうか。
それともウチの環境のせいなんでしょうか。
使いやすくていいんですけど、もっと他に使いやすいものがあれば教えて頂けない
でしょうか? 教えて君ですみません。
KKDE俺の環境でもバグあるな
351 :
名前は開発中のものです。:2006/11/14(火) 12:03:57 ID:Ryp1nSAn
あらかじめズームアウトした立ち絵をトランジションで表示させたいのですが、どうすればよいのでしょうか?
失敗例。
[call storage="zoom.ks"]
[backlay]
[fgzoom storage="立ち絵" layer="0" page="back" visible="true" mood="transp" sl=90 st=0 sw=640 sh=480 dl=100 dt=100 dw=320 dh=240 time=0 sccel=0]
[image storage="背景" layer="base" page="back"]
[trans method="crossfade" time="1000"][wt]
バー表示プラグイン保存するの忘れてた…orz
誰か全UPしてくれないか。
そしたら作者様に確認とって、配布サイト作るんだがなあ。
バー表示は棒グラフマクロのこと?
情報局のBBS検索からメル欄のメール調べて連絡とったらどうだろう。
>351
俺ならズームした部分をあらかじめトリミングして表示する。
>>351 立ち絵が一枚だけなら背景と同じ絵をレイヤー1に表示して
moveで透明度0にしていったらクロスフェードみたいになるんじゃね?
>351
stretchCopyすればいいとオモ
[backlay]
[image storage="立ち絵" layer=0 page=back left=0 top=0]
[eval exp="kag.back.layers[0].stretchCopy(0, 0, 320, 240, kag.back.layers[0], 90, 0, 640, 480, stLinear)"]
[eval exp="kag.back.layers[0].setSize(320, 240)"]
[layopt layer=0 page=back visible=true left=100 top=100]
[image storage="背景" layer="base" page="back"]
[trans method="crossfade" time="1000"][wt]
>352
連絡取れるといいんだけどな…。
127辺りからの流れを見てみるとorz
358 :
352:2006/11/14(火) 22:19:55 ID:3tOQTFlm
ああいや管理人さんは亡くなられたもんだと思ってるから
(ご冥福お祈りします)
プラグインの作者の方ってことね。
あそこに公開してたプラグイン、作者の方のサイトにいっても
全く載ってなかったりするんだよね。
もしかしたら作者ご当人ですら、もうファイルが無いという展開も
無きにしも非ずだから、誰かがファイル持ってれば
適当にサーバー借りて、作者の人に個別に連絡とって
許可もらえたらウプして公開したいなと思ったわけ。
自分個人で問い合わせてもいいんだけど
(もちろん、そのつもりなんだが)
製作者の人にしてみれば、何通も何通も
自分みたいな「プラグインないっすかー」メールきたら
返信大変だろうなと思ったからさ。
>>358 自分、いつページ消えてもおかしくないなと思ってたから
ツールで丸々保存してあるよ。
ごめん、半端に言葉が足りなかった。
自分ではあちこち許可貰って鯖うpとかは考えてないんで、
やりたい・やってくれるって人がいたらどっかロダに上げてもいいよ
>358
あ…そういうことか、ゴメンorz
あれだけ凄いサンプル群が廃れるのは勿体ないよな。
俺も保存してた派だけど、そうじゃない人やこれから手着ける人にも有り難いサイトになると思う。
362 :
352:2006/11/15(水) 01:38:07 ID:I5m+WIo6
ウプしてくれそうな方がいるっぽいので、やってみることにした。
何処かロダに上げてくれたら、ロダのアドレスメールで送ってくだされ。
(内容はアドレスだけでいいお)メル欄の■を@にしてけれ。
内容チェックして個々の作者さんに確認とって
公開できそうになったらアドここに貼り付けるわ。
プラグイン欲しいよーって奴らは少し待っててくれな。
全部確認するのは大変そうだが頑張ってくれ
ページごとミラーリングすれば?
ページ作者に許可とってサンプルブラグインのページを引き継ぐ形にすればいい
それならサンプル作者の許可は必要ないと思う
ページ作者が死亡確認されたのよ
ひとつだけ要望というか只の希望だけど
そういうサイトなら2chの匂いはなるべく排除して作って欲しい
元がKSPという事を鑑みてそれは違うと思うから
すみません、callとreturnの存在意義が判らないんですが、教えていただけないでしょうか。
サブルーチンにはcallとreturnを使うと、どの本にも講座にも書いてあります。
しかし、jumpタグで別のksファイルに跳び、またjumpタグで戻って来ればcallもreturnも
一切使わないで済むと思うんですが、何故callとreturnがメインのコマンドとしてあるのでしょう。
現在作っているADV。本編をfirst.ksで進め、途中で入るミニゲームを別のksファイルに
一時的に跳ぶようにしたんですが、callを使うとスクリプトの書きミスによりreturnの数が
合わなくなって失敗しやすいです。
jumpタグだけで全く同じように進められると思うんですが、先行きに何か問題が出てくる
でしょうか?
jumpで不都合を感じるまではそれでいいんじゃない?
シナリオが1から10あるとして番外編のミニゲームがAだとする。
ジャンプだとシナリオ1〜10のどこからでもジャンプでミニゲームにいける。
cllaならシナリオ何番から飛んできても「元いた番号(変動)」の場所に戻れる
ジャンプでは何番から飛んできても「決まった番号(固定)」にしか行けない。
右クリックメニューみたいにいつ呼び出されるか不確定なものはcallでないと駄目。
ミニゲームの発生場所が完全に固定ならジャンプでいい。
入ってきた扉から元いた場所に帰って行くのがcall
入ってきた扉に戻れず専用出口を使うのがジャンプ
>>367 そのミニゲームを別のところでもう一回使う場合はどうする?
というか普通に作ってればcallとreturnの数が合わないとかはないと思う
2ch派生ぽくっても別に気にしないけどなあ。
元のサンプルプラグインのサイトだって、雑談スレのまとめサイト
リンクで張ってたくらいだし。
まあ、やりもしないでサイトUPされるの待ってる俺や
>>366に選択肢はないと思うよ?
■jumpの場合
*ラベル1
jump サブルーチン
*ラベル2
jump サブルーチン
*ラベル3
jump サブルーチン
・
・・
・・・
*サブルーチン
if ジャンプ元がラベル1
jump ラベル1
if ジャンプ元がラベル2
jump ラベル2
if ジャンプ元がラベル3
jump ラベル3
・
・・
・・・
■callの場合
*ラベル1
call サブルーチン
*ラベル2
call サブルーチン
*ラベル3
call サブルーチン
・
・・
・・・
*サブルーチン
return
■jumpの場合
*ラベル1
eval if用ジャンプ元判別変数
jump サブルーチン
*ラベル2
eval if用ジャンプ元判別変数
jump サブルーチン
*ラベル3
eval if用ジャンプ元判別変数
jump サブルーチン
・
・・
・・・
こうじゃまいか。
■jumpの場合
*ラベル1
eval ジャンプ先='*ラベル2'
jump サブルーチン
*ラベル2
eval ジャンプ先='*ラベル3'
jump サブルーチン
*ラベル3
eval ジャンプ先='*ラベル・・・'
jump サブルーチン
・
・・
・・・
*サブルーチン
jump ジャンプ先
377 :
367:2006/11/15(水) 17:48:56 ID:frWAY5nY
皆さんありがとうございます、何か判ってきました。
繰り返し使うサブルーチンを「それが終わったら元のシナリオに戻る」と
いうルールにしてるのがcallなんですね。
私の今回の場合、ミニゲームの登場は1回。その結果で戻るシナリオが変わるものの
これ自体はサブルーチンでなく、単に見やすくする為にksファイルを分けただけだったのに
ようやく気づきました。これはjumpで処理すればよかったんですね。
あとcallとretrnの数が合わなくなりやすいというのは、顔グラの表示や立ち絵の差し替えを
マクロにしていて、これらをマクロ専用のksフイルから呼び出すサブルーチンにしてるので、
その関係からcallが2重・3重になるためのようです。
このマクロの使い方は講座本のやり方をそのまま真似ただけで、意味を理解していた
わけじゃないので、ちょっと混乱しました。
ただ、これから作り込むミニゲームの内容そのものには、やはりcallとretrnの処理が
必要になるだろうことにも、またようやく気づきました。
単純に使わずに済む‥とはいかなそうです。もう一度スクリプト見直してがんばります。
>375
そいやそうだorz頭固いな俺。
>375までしてやるのは、サブルーチンの中に
セーブ可能ラベルを置くときぐらいだとは思うけど。
380 :
352:2006/11/15(水) 19:44:19 ID:lTTgK4av
ありがとう、受け取りました。
ありがたいことにページ丸々保管してくれていたので
連絡先には直ぐにメールが出せそうです。
アーカイブと照らし合わせながら、今日はメール書くよ(゚∀゚)書くよ!
KSP管理人さんの作られたマップサンプルだけは
さすがに確認もできませんので、そこだけは掲載不可になりそう。
2chぽくないサイトとのご要望ですが、あんまセンスっつーのがないので
シンプルイズベストなサイトになると思うお。
というより2chぽいサイトってどんなんだ?(;´Д`)
(゚∀゚)(;´Д`)
こういう顔文字や
>思うお。
こういう語尾を使うのをごく当たり前に思っているのが2chぽいサイト。
痛々しいな。
そういうスラングはTPOぐらい弁えて使え。
すみません、最近吉里を使い始めたのですが
目パチ口パクをやろうと思い
@loadcell
@loop
;
@macro name=anim
@copy dx=%dx dy=%dy sx=%sx sy=0 sw=%sw sh=%sh
@wait time=150
@endmacro
;
*mepachi
@anim dx=200 dy=120 sx=0 sw=80 sh=30
@wait time=1000
@anim dx=200 dy=120 sx=80 sw=80 sh=30
@anim dx=200 dy=120 sx=0 sw=80 sh=30
@anim dx=200 dy=120 sx=80 sw=80 sh=30
@anim dx=200 dy=120 sx=0 sw=80 sh=30
@wait time=1000
@anim dx=200 dy=120 sx=80 sw=80 sh=30
@anim dx=200 dy=120 sx=0 sw=80 sh=30
@jump target=*mepachi
;
*kuchi
@anim dx=230 dy=160 sx=160 sw=20 sh=20
@anim dx=230 dy=160 sx=160 sw=20 sh=20
@wait time=2000
@anim dx=230 dy=160 sx=180 sw=20 sh=20
@anim dx=230 dy=160 sx=180 sw=20 sh=20
@anim dx=230 dy=160 sx=160 sw=20 sh=20
@home
@jump target=*kuchi
というasdファイルを用意したところデフォルトのセグメントでは
*mepachiも*kuchiも動作するのですがanimstartでseg1を動かそうとすると
メンバ"anim"が見つかりませんというエラーが出てしまいます・・・
ログを漁って見たのですが今ひとつ原因がわかりません、どうかお力添えを・・・
385 :
352:2006/11/15(水) 21:38:57 ID:lTTgK4av
いや、もちろん製作予定のサイトじゃ(゚∀゚)アヒャな顔文字とか
語尾におとかは付けないよ?w
サンプルプラグインの再公開サイト
やる気になってアヒャってるんで、気に障ったらスマソ。
なもんで2chの中でくらい多めにみてくれや。
期待してるぜ!
>>383 そりゃmacro animが定義されてないからだ。
その書き方だとデフォセグが一度実行されないとmacroは定義されない
ラベルの後でmacro定義してみい
388 :
383:2006/11/15(水) 22:42:25 ID:5UO4EHTG
>>387 助言有難うございます、試してみたところ解決致しましたm(_ _)m
>>349 亀レスだが、俺的にはかぐや姫Studioがお勧めだ。
軽いし落ちない。
更新も止まっているけどな。
そういやこのスレのテンプレも古いままだな。
本家のほうのリンクも準備中のままだし。
誰かリンク集作って本家に送れば採用してもらえるんじゃね?
390 :
名前は開発中のものです。:2006/11/15(水) 22:51:43 ID:cp53OKVl
メッセージ履歴に表示されるメッセージが詰めて表示されるので、
1ページごとに1行分の空行を挿入しようとしたのですが
HistoryLayer.tjsみても分からなかったorz
どなたかアドバイスいただいてもよろしいですか。
1ページごとに[hr]入れろ。このド素人が!
>391
thanks.
改ページマクロに組み込んだらうまくいきました。
どう致しまして。製作がんがってください
394 :
名前は開発中のものです。:2006/11/15(水) 23:11:38 ID:N4jnKCri
395 :
352:2006/11/15(水) 23:52:24 ID:lTTgK4av
製作者の方にメール送信しました。
ですが棒グラフマクロを製作された方のみ
現在アドレスが無いらしく、エラーで届きません。
本家過去掲示板ログみても、どうやら同じアドレスのようで。
もしかしたらその方の作品だけは公開できないかもしれません。
ひとまず返信待ち。
既にサイト閉鎖?されてる方もいらっしゃるので
無事届いてるか不安ではありますが。
取り急ぎ進行状況ご報告まで(´ω`)ノ
>>395 > ですが棒グラフマクロを製作された方のみ
> 現在アドレスが無いらしく、エラーで届きません。
あーもしかして俺かな?
棒グラフのいくつかあった改造版の一つを書いてるわ
トップからリンク貼ってもらってたんだけど
今あのサイトは鯖屋が逃げちゃってて無いです。ごめん
新サイト期待してますよ。取りまとめ乙です。
履歴をリセットする事って出来ないのですか?
[eval exp="kag.historyLayer.clear()"]
399 :
397:2006/11/16(木) 18:03:24 ID:qCT9uXBm
やって見ます、ありがとうございました
400 :
352:2006/11/16(木) 19:05:21 ID:y8ACjNSi
今の所、お一人ご許可いただきました。
多分396氏かと思うのですが、395のエラーの方とは別に、
もうお一方エラーで届きませんでした。
396氏もしよろしければメールにてご連絡ください。
ここでご許可頂いてもいいんですが
お名前出すわけにも行かないし、間違ってたら失礼ですし。
どうにも目パチがうまく行きません。
「萌えるゲーム」の本で勉強してるのですが
吉里吉里のBBSのログを見ても原因がさっぱり分からんです。
同じ名前で、拡張子もちゃんとしてるのですが
何かさっぱりです。
エスパー待ち
そういうときはまず原因の切りわけから
システムフォルダのクリック待ちのアニメーションを使って表示できるか試す
>>401 というか、どううまく行かないのかわからないからな。
元の絵は表示されるけど動作部分が全く表示されないとか、
一応アニメ表示はするけど動きがヘンとか、他にも色々。
>>400 あー別に俺は名乗ってもいいんだけど空気的にあれかね。
おkメールしますー。
目パチをやらなければいい。そんなに必要な機能じゃない。
>403
今、その方法を試そうとアニメレイヤtjs読んでますが
英英辞典状態です。がんばります。
>404
元の絵は表示されるのですが_a.pngのセル部分がダメで
前のヴァージョンの吉里吉里でも同じでasdファイルを読むための
何かの指定を自分がコンフィグでやってないのかもしれません。
ちなみにこの本は立ち絵とセル、ファイルネームを間違って
指定してました。リネームしても結果は同じでしたが。
>406
「信念を持ってやらなくても良い」からは問題は無いでしょうが
自分のように「やりたかったけど出来ませんでした」では
見てもらう人に失礼だと思うのですが…
絶対やりたい信念がないからやらないと諦めるのも頑張るのもどっちも自由なんだぜ
>>407 案外絵のサイズが違う(1ピクセルズレてるとか)なんてケアレスミスが
多いもんだが、もちろんそっちは完璧に確認してるだろうな?
410 :
405:2006/11/16(木) 23:50:35 ID:q0Ojzmeo
>>400 言い忘れてたけどtで始まるgooメールが俺です。
>>407 その本のとおりにやったらちゃんと動くん?
勘違いで悪く直しちゃうってのはよくあるよ
一度動いてる状態の何かものを用意して
それを少しずつ改造して近づけていったら
どこから悪くなってるかがわかるんじゃね
何がしたいのかさっぱりだな
ココの住人に解決法を聞きたいのか、自分の日記帖なのかはっきしろや
>406
失礼になんかならん。出来るのにやらないでも出来ないのでやらないも
結果的には同じだ。見てくれる人にはあまり関係ない。
お前の自己満足度がさがるかあがるかだけ。
>406
目パチがどうとか言うよりも、信念の方向が間違ってるような…。
一つか二つフリゲでもやってみるといいよ。
間違いとかは俺には分からないけど、まずは特に最初は
ともかく動くものを完成まで持ってくっていうのが肝心だと思うよ
いろいろ改善の余地は残るだろうけど、ひとまず簡単なものを
構想から仕様決めて、それを動くものにして、テストして調整して
これで完成ですって言って人に見せるまでやりきるのが
「My Documents\kirikiri\」に構想と仕様書と作りかけばかり
山ほど積みあがってしまっている人のいかに多いことか
VistaのAeroでもMPEGをオーバーレイで表示させる事は出来るのでしょうか?
>>415 やってみなければわからないし、そこの対応は(VistaがXP以前の
アプリケーションへの互換を謳うなら)DeeさんでなくMSの仕事
すいません、今TJSでゲームプラグインを作っていて
ゲームパッドの入力を仮想キーコードを使って処理しようとしてるんですが
うまくいかないです。
デバッカーを使用して全仮想キーコードから変数の変化を見れるようにして
見てるとパッドの上下左右はキーボードの上下左右に反応し、
ボタン1,2,3,4はEnter,ESCキーとかに反応しているようです。
パッド用の仮想キーコードには全く反応しないのですが
なにかプラグインを読み込むなどの初期処理が必要なのでしょうか。
使用しているのはUSBのPS2ゲームパッド変換器を使っています。
一応コントロールパネルのジョイスティックメニューを見てみましたが
反応は正常で認知はされているようでした。
まだ正式に機能が実装されていないのでしょうか。
突然の質問で失礼しますが、よろしければ答えてくださるとうれしいです。
とりあえず何のゲームパッドを使ってるのか書きなさい
ごめんなさい読みすごしました
> USBのPS2ゲームパッド変換器
変換機は質の低いドライバが多いので別のパッド使ってみてください
デバッカーはひどいな
つか、その変換機の仕様が怪しいな
ボタンが押されると上下左右とかのキーが押されたように
パソコンに伝えるという代物なんじゃないかね
どっちみち、最終的にテストで使うことを考えれば
普通のゲームパッドも一つ二つ持っといて損は無いと思うな
PS2ってプレステ2のことだと思ったけど
もしかしてPS/2じゃないよな?
USBのゲームパッドをPS/2端子につなぐためのアダプタとかじゃないよな?
417じゃないけど。
デバッグウィンドウでSystem.getKeyState()してみたけど、
VK_UP、VK_RETURN、VK_RSHIFT
辺りは全部取れるのに、
VK_PADUP、VK_PAD1、VK_PADANY
とかパッド関係は何一つ取れなかったよ。
ちなみにパッドはプリンタポート接続のサタパ変換。
吉里吉里で普通に使えるし、他のゲームでもトラブルは特になし。
パッド関係はドキュメントに記載無かったと思う。
仕様かもしれないんで、公式で聞いてみては?
パッドもってないんで確認できないけど、MainWindow.tjsの中でパッドの
キーマッピングされてるのが影響してるとかいうことはないの?
マッピングされてないはずの4ボタン押してても、
System.getKeyState(VK_PADANY)
System.getKeyState(VK_PAD4)
が両方とも0になるから、違うとオモ。
あれ、422と424はコンソールでやって検知できなかったけど、
[emb exp="System.getKeyState(VK_PADANY)"]
ってKAGで書いたら、どのボタンでも1を返した。
なんか特定の条件下で、キーボードの検知はちゃんと出来ても、
パッドの検知が上手くいかないことがあるっぽい。
詳しいことは良くわからんけど。
うちの環境ではまったく問題ないけどな。
パッド(ドライバ)の種類によるのか環境依存じゃないか?
マウスホイールの認識方法って変えられないかな
ホイールが使えないマウスドライバがある
Nスクではホイールちゃんと動くから何らかの対象法がありそう
>>427 環境設定ツールの「マウスホイール回転検出方法」はためした?
429 :
352:2006/11/18(土) 20:57:35 ID:2im3EVM3
352です。
現在ご許可頂けたのはお二人
メールは届いているようなのですが、お返事が無いのがお一人
メールすら送れない方がお一人となってます。
メールを送れない方はサイトのTOP等で
ご連絡待ってますと告知する予定なのですが
何分ご連絡待ちの最後のお一方が、公開されていたプラグイン数が一番多かったので
この状態でサイトを先に公開するべきか判断がつきません。
少しでも早く、既にご許可頂いた製作者様のサンプルが欲しい!というユーザーも
いらっしゃるでしょうし、
全部そろってからのがイイヨって方もいるでしょうから
スレ住人の方にどちらが良いかお伺いしたいのですが。
ご意見ありましたらお願いします。
エラーが帰ってこないので、メールは届いているようなのですが
届いたメールを閲覧されているかは、こちらには解らないので
お返事待ちがどのくらいかかるかも検討がつきません。
月曜までに来なかったら、再送信する予定です。
>>428 ドライバ新しくしたら治りました
スマン
>>429 ただの倉庫にしたいなら揃ってからだろうが
今後も新しいの募集って事で続けていくなら、揃わなくてもいいんでないかい。
関係サイトにリンクお願いして広まれば
「〜の作者の方連絡下さい」とか書いておけば目につくだろうし。
もうないのは作る勢いでがんばって欲しいw
アド乗せると教えて君が群がりそうで心配だな…。
ぶっちゃけこれ作り直した方がいいだろって
いうようなものも結構あるしなw
どこでもセーブ、誰か作り直してくれないかな
あれ実装したら、不完全な未読スキップ禁止まで実装されちゃった
全然気付かなかった…
>不完全な未読スキップ
アフォな質問でごめん、
不完全てのは未読スキップが効かないってことか?
>不完全てのは未読スキップが効かないってことか?
基本的に未読のところで止まる
エンター押しっぱなしのクリックスキップも未読のところで止まる
でも、ずっとエンター押しっぱなしにしとくと、トランジションの部分辺りからいきなりスキップ状態になったりする
なんか不安定
音声と台詞を同期させたまま「自動的に読み進む」ができません。
台詞が出終わると、音声が切られてしまいます。
どうすれば同期が取れますか?
(クリックスキップを有効にしていきたいと思っています)
[ws]
レイヤごとのlocklinkって不可能?
可能
>437
d
気になるね。俺の環境じゃ確認できなかったけど…。
>438
[ws cond="kag.autoMode"][l][stopse]
タイトル画面でだけ右クリックメニューを使えなくしたいんだけどどうしたらいいの?
一周目はともかく二周目以降どうしてもタイトルメニューで呼び出せるようになってしまう
>>444 [rclick enable=]じゃ無理なの?
@rclick call=false enabled=false
でいいんじゃまい?
>>444 エンディングの終わりとかタイトル付近に
[rclick enabled=false]
して、
タイトル終了後
[rclick enabled=true]
では駄目かな?
違ったらすまん。
448 :
名前は開発中のものです。:2006/11/19(日) 21:41:43 ID:CYDx0Npi
クリッカブルマップについて教えてください。
下記のサイトなどを参考にクリッカブルマップを作ったのですが、
変更後の画像が各場所で違う
(スーパーにフォーカスが当たるとスーパーが明るくなり、
病院にフォーカスがあたると病院が明るくなる等)場合、
下記の方法はそのまま流用できませんでした。
ttp://homepage1.nifty.com/gutchie/kirikiri_kag3/dev_clickablemap001.html 一応、下記の方法で実装することはできました。
1. すべて同じサイズ(640x480)のマウスカーソルがあたった状態の画像を用意する。
2. 一画面中にフォーカスが当たる箇所が3箇所ある場合、前景レイヤ3枚で対応。
ただ1の方法は例えば40x40の範囲を変更したいだけにもかかわらず、
640x480の画像を用意しないといけないため画像の容量に無駄があり、
2の方法では例えば一画面中にフォーカスが当たる箇所が10箇所ある場合、
10枚前景レイヤを用意する必要があり無駄が多いと思います。
そのため、フォーカスがあたる範囲の画像で、かつ前景レイヤ1枚のみで
実装したいと思うのですが、そのような事は可能でしょうか?
もし可能であればアドバイスをいただければと思います。
お、俺も[rclick]を教えたほうが良いかな?
>449
wwwwwww
リロードしたら大変なことになってたwww
451 :
417:2006/11/19(日) 21:54:51 ID:dIi5D2qk
お返事遅れました。
変換機はプレイステーション2のゲームパットを使用できるようにする
ELECOM社製の製品です。
http://www2.elecom.co.jp/peripheral/gamepad/jc-ps102u/ これですね。
奴隷バーもWINDOWS標準のではなくELECOMのを使用しています。
吉里吉里ではwindowsのゲームパッドの認識をそのまま拾ってるわけではないのですね。
ちゃんと認識してキーコードを返すゲームパッドがあるとの事で
とりあえずこちらの環境依存と言うことが解って良かったです。
ありがとうございました。
ところで差し支えなければ正常動作したゲームパッドの
製品名を教えて頂ければ幸いです。
>448
アイコンを選ぶ程度のマップならクリッカプルマップでなくボタン画像を10個配置した方が早いと思う
453 :
417:2006/11/19(日) 22:04:15 ID:dIi5D2qk
>>448 もしフォトショップをお持ちでしたら透明レイヤーを維持したまま
画像をpsdで保存し、画像フォーマットコンバーターにかけてTLG6で
保存すれば透明部分のデータを省いて保存してくれますので
容量的にも座標指定の手間も省けて美味しいです。
2の方法ですがpimageとかを駆使すれば1レイヤーで出来るかもしれません
クリッカブルマップでマウスオーバーした後
シナリオファイルの任意の場所に飛ばしてpimageタグを使用して表示する
と言う寸法です。
condオプションを付ければ状況に応じて同時表示する画像の数や
画像の種類を変えれる……と思います。
※憶測多数なアドバイスで申し訳ないです。
>>448 maファイル内で位置指定すればおk。
kag.fore.layers[レイヤ番号].loadImages(%[storage:'画像名',left:横位置,top:縦位置])"
455 :
417:2006/11/19(日) 22:13:53 ID:dIi5D2qk
>>448 すいません、なんだかマウスオーバーしたら「同時に表示させたい」
と勘違いして読んでいたみたいです。
>>454 さんの方法でレイヤー番号を同一にしておけば別にレイヤーを選択肢
分用意しなくても大丈夫です。
フォローdです。
ちょっと抜けてたので念の為訂正。
onenter="kag.fore.layers[レイヤ番号].loadImages(%[storage:'画像名',left:横位置,top:縦位置])"
457 :
名前は開発中のものです。:2006/11/19(日) 22:48:16 ID:CYDx0Npi
>>449 orz
>>452 ご解答ありがとうございます。
確かに仰るとおりかと思います。
ただ、今後下記のようなものも作りたいということもあり、質問を差し上げました。
ttp://homepage1.nifty.com/gutchie/kirikiri_kag3/dev_r_click001.html >>454、
>>456 多分私がやりたいことはこれで実現できそうです。
今まで下記のように記載し、別途TJSスクリプトを記述していたのでその方法に置き換えてみます。
1: target="*scene1"; onenter="over1(130, 86)"; onleave="out1()"; exp="out1()";
【変更後】
1: target="*scene1"; onenter="kag.fore.layers[2].loadImages(%[storage:'over',left:100,top:80])";
結果はエラーは発生しないものの、画像が切り替わらずorz
前景レイヤ2がfalseになっているのかな???
もう少し粘ってみます。
>>455 アドバイスサンクスです。
458 :
457:2006/11/19(日) 23:14:26 ID:CYDx0Npi
アドバイスいただいた皆様ありがとうございます。
うまくいきました。
今までTJSスクリプト内で前景レイヤを有効にしていたため、
変わりに下記のようにダミーの1x1pixelの透明画像を事前に表示するようにした所うまくいきました。
[image layer=2 visible=true page=fore storage="dummy"]
ごめん、アドレスの先見てなかった…orz
別途記述する場合でもやってることは同じ
(呼び出すか直接書いてるかの違いだけ)なので、
関数over1に位置と同じく画像名も渡してやれば同じ動作になるよ。
無駄手間かけさせてごめんorz
あと一応、このまま直接記述するなら、
onenterのloadImagesにvisible属性を追加、
onleaveにkag.fore.layers[番号].visible=false
でおk。
お詫びに例も書いときまつ。
●別途記述して呼び出す場合
1: target="*scene1"; onenter="over(横位置,縦位置,'画像名')"; onleave="out()"; exp="out()";
[iscript]
function over(x, y, image){kag.fore.layers[2].loadImages(%[storage:image,left:x,top:y,visible:true]);}
function out(){kag.fore.layers[2].visible = false;}
[endscript]
●直接記述する場合
1: target="*scene1"; onenter="kag.fore.layers[2].loadImages(%[storage:'画像名',left:横位置,top:縦位置,visible:true])"; onleave="kag.fore.layers[2].visible=false"; exp="kag.fore.layers[2].visible=false";
コピペして使ってみて。
461 :
438:2006/11/20(月) 09:09:14 ID:NYNj+8lB
ボタンのonMouseLeaveについて質問させてください。
onMouseLeave処理が割り当てられたボタンで
「最初に戻る(goToStartWithAsk)」をさせようと思ったのですが、
いざ実行すると最初の画面に戻った後でエラーが起きてしまいます。
どうやら画面が変わって、もとのボタンが消えたために、
onMouseLeaveを処理できなくてエラーが起こっているようなのですが、
解決案はあるでしょうか?よろしくお願いします。
>>462 試してみたことないけど一回別のラベルにジャンプさせて
そこにスタートに戻るのジャンプ書いてもダメ?
>>462 たまにでいいからAsyncTriggerクラスの存在意義について思い出してあげて下さい
>>460 重ね重ねありがとうございます。
正常に動作することを確認しました。
以前の方法ではonleave用の画像を用意する必要があるなど、
割と無駄が多かったのですが、
教えていただいた方法により無駄を省くことが出来ました
(maファイル内でvisibleを変更するすべを知らなかったので、
onleaveやexp用の画像も用意して実装してました)。
なお前者の別途記述の方法は一回書いておけば各場所で流用できそうなので、
こちらの方法を採用し、専用の前景レイヤを一つ確保して組んでいこうと思います。
また後者の記述方法も今後の参考にさせていただきます。
466 :
名前は開発中のものです。:2006/11/20(月) 23:56:16 ID:C/fDEkmQ
467 :
417:2006/11/21(火) 00:26:20 ID:pl77JE+1
>>466 テストプログラムを作って頂き、有り難うございます、
早速ダウンロードして試してみたところしっかりとパッドの入力をすべて受け付けていました。
ソースを見てみると、私の方で仮想キーコードの使用方法を勘違いしていた様でした。
お騒がせし、申し訳ございませんでした。
私の方での使い方は以下のように使用していました。
key_D = system.getKeyState(0x28);
key_U = system.getKeyState(0x26);
key_L = system.getKeyState(0x25);
key_R = system.getKeyState(0x27);
てっきり仮想キーコードの16進数の数値を使う物だと思っておりました。
VK_LBUTTONなどの方を利用すれば良かったのですね。
今回、とても勉強になりました、本当に有り難うございました。
>>466さんにはソースを作成して頂き、感謝しております。
今更ですが、私の吉里吉里環境を書いておりませんでした。
吉里吉里[きりきり] 2 実行コア version 2.26.2.915 ( TJS version 2.4.20 )
失礼致しました。
468 :
352:2006/11/21(火) 00:36:07 ID:yBYld7fF
352です。
お返事待ちしてた方のプラグインが
お魚さんの方で公開されていました。
お返事が届かないので、閲覧されていないのかなと
メールを再送信しようと思ったら本家BBSのほうで発見しまして。
ユーザー的にはとても嬉しいのですが
すんません、なんか少し切なくなっちゃったよorz
ジブン ミゴトニ カラマワリ
現時点でご許可頂いたお二人のみで
スタートしたいと思います。数日お待ちください。
ご連絡取れない方の分はTOPで呼びかけさせていただきます。
お返事待ちの方の分は、既に別箇所で公開されておりますので
当方で扱うことは致しません。
お前に期待してる人間はすくなくともここに一人いるぞ、頑張って長く公開してくれ
それは切ないな…
ここにも一人いるので頑張ってくれノ
ノシ めげないで頑張れ、俺も期待してるから
あー、あの人が来ないんだ。寂しいね。
あちらはあちらで乙だけど、こっちはこっちで
新しい提供者とかも交えて
別の何か役割持てていったらいいよね。
期待してるよー。
まぁ、争うもんでもないしな。
俺も応援してるので、気負わずマターリ頑張ってくれ。
474 :
401:2006/11/21(火) 03:42:56 ID:DZJFXMnN
どうも。以前目パチが出来ないと質問した者ですが
理解出来ない方法で成功したので報告させて貰います。
Win98マシンに同じヴァージョンの吉里吉里で作ったテンプレートに
動作しなかったXPマシンの吉里吉里の画像、asd、シナリオファイルをコピーして
98上で動いたので、それをXPマシンの動作しないプログラムフォルダと
同じ吉里吉里のディレクトリに移して実行、ちゃんと動いたので
システムフォルダに不備があると思い、動かない方のテンプレートにコピーして上書き
しかしそれでも動かないので途方にくれました。
(どちらも内容は同じなのに片方だけ動く)
で、試しに動く方の残ったフォルダ(中は空)を上書きしてみようと
image、bgmフォルダを上書きすると動くようになりました。
これらを考えると、XPで作ったフォルダには
フォルダじたいにユーザーに認識できない
何らかの手が加えられているとしか思えません。w
>>474 まず真っさらな状態からどこも弄らずアニメーションが表示できるか試してみれば?
>image、bgmフォルダを上書きすると動くようになりました。
bgmフォルダに同名ファイルコピーしてしまってまぎれてたとかじゃないのか。
>>474 >これらを考えると、XPで作ったフォルダには
>フォルダじたいにユーザーに認識できない
>何らかの手が加えられているとしか思えません。w
そんな問題だったらもっと騒がれてる。もともと目パチなんて初歩の初歩だ。
このスレでも出来ない騒いでるのはお前だけだろ?
・そもそもお前のマシンがおかしい。
・お前の吉里吉里がDL時かいじくったときにおかしくなった。
・お前の凡ミス
これら以外ありえない。
>>474 空のフォルダを上書きして症状が直ったっていうのは、
かなりの確率で、勘違いだと思うよ。
もっと別の要因があるんじゃないかな。
もし本当に、空のフォルダを上書きして直ったようなら、
それはWindows自体が壊れてるんだよ。
しかし分かりづらい日本語を使うね。
もしも高校生以上で、この言語能力だったら深刻だ……
俺もXPだがちゃんとパチパチしてるぞ。
そもそも、触れてないって事はクリック待ちグリフはまともにアニメーションしてる訳だろ?
何でそういう考えになるのか不思議で仕方ない。
エラーが出ないなら、俺も同名ファイルが原因だと思うけどな。
ちゃんとテンプレート以下にあるフォルダ全部調べたのか?
481 :
401:2006/11/21(火) 07:53:13 ID:DZJFXMnN
他の書き込み理解できてるか?
PC不具合よりもケアレスミスの可能性の方がはるかに高い。
・bgmフォルダにコピーミスで同じ名前のイメージファイルができた。
・同フォルダ内にasdファイルがないから当然アニメしない。画像は出る。
・bgmフォルダとimageフォルダだとbgmフォルダを先に参照する。
その後に同名ファイルがあっても無視されるからiamgeフォルダをいくら
変えても吉里吉里には無視されてるので反映されない。
・imageフォルダの該当ファイル+シナリオとコピーして別の機械で動作させれば
当然bgmフォルダにある同名ファイルがないのだからアニメが表示される。
・bgmフォルダに空フォルダ上書きで同名ファイル消去され晴れてimageフォルダの
ファイルを参照してくれるようになった。
症状的にはコレですべて説明がつく。おもしろいぐらいに。
あぁは言ったがそんな他の動きは正常でそこだけPCがおかしくなるほど
偏った使い方が>401に出来るとは思えない。
>>481 人に見てもらおうと思うならちゃんと正しくリンク貼ってくれよ
使ってるのも開発版だし…
でな、原因はasdファイルのコレ↓
× @copy dx=50 dy=72 sx=%x sy=0 sx=116 sh=29
○ @copy dx=50 dy=72 sx=%x sy=0 sw=116 sh=29
むしろWin98では動いたっつー方が不思議なんだが。
ほんとだ直リンエラーだww
>>481 俺もうpろだの使い方熟知してるわけじゃないけど、
そういうとこは最後に .html を付けたアドレスを貼っとくと安全だよ。
そういえば、誰も当該部分のスクリプト晒せって言わなかったんだよね。
スレの対応的にはそこが失敗だった。
俺も、公式のそつない対応を見習うようにしよう。
imageの下にもうひとつフォルダ作ってて認識されてない可能性が一番高いな
486 :
401:2006/11/21(火) 12:53:53 ID:DZJFXMnN
>482-483
あれこれ試してるうちに失敗の派生系も産出していたようです…ort
まさに「無能な働き者」を体現してしまいました。思考の呪いです。
ご指南ありがとうございます。
>>481 要するにXPのみの動作で言うと、
「systemフォルダをデフォの状態にしても動かなかったが、
image、bgmフォルダをデフォにしたら動いた」てことだろ?
ならそのimage、bgmフォルダに原因がある。
>どちらも内容は同じなのに片方だけ動く
プログラムファイルごと全く同じならそうはならん訳だが、
もし本当に空フォルダに空フォルダを上書きして直ったなら
不可視の同名ファイルが紛れ込んでる、くらいしか思いつかんな…
ごめん、リロ忘れorz
インデントを二重三重にすることは出来ますか?
1.******
1-1.********
1-2.********
1-2-1********
1-3.*******
2.*******
こんな感じにしたいときはその都度[locate]で指定しないと駄目?
スフィアスキターーー!!イミフ(ry
ttp://huromueruhu.hp.infoseek.co.jp/test.lzh これが他人の環境でどう動くか知りたいんだってさ。
人柱になる勇者はいねーかww
俺は今出先だから帰っていじるかw
サブジェクトと本文がイマイチ一致してないな
本家の神達も駄目な例を上げるかテンプレ必須にして質問す奴は
的確に必要な情報を明かさせれば良いのに・・・
( ゚∀゚)O彡 本家マジでガンバレ! 超ガンガレ!
( ・∀・ )>” 乙であります!!
>グ=ASUS X1600
[move]の数だけ[wm]って誰か教えたって。
人見知りな俺に公式の掲示板は敷居が高いガクガクブルブル
493 :
名前は開発中のものです。:2006/11/22(水) 17:51:29 ID:dZUXH/Xl
>>491 >>492 [wm]以前の問題だと思われ。
ttp://cgi.2chan.net/up2/src/f196304.lzh imageタグのtop,left
move のpath
の指定値が思っている動作と違ってると思う。
以下
現状のレイヤの動き
0〜3の数字はレイヤの番号
□は見えてる画面
[img]→ [move]→ [img] →[move]
01 → 0□ → 0 →0□
□3 23 □3 13
2
本当は
01 → 0□ → 0□ → 01
□3 23 23 □3
になるんじゃないか?
494 :
493:2006/11/22(水) 18:13:28 ID:dZUXH/Xl
[wm]4つ入れたら、ちゃんとなった。
すみません。_| ̄|○
おいらが未熟でした。
>491
突っ込みどころ:
・3回と言いながら4回ループしてる
・吉里吉里のバージョンは2.26なのに、KAGは3.22r2
でも、原因は別のところにありそうな気がする。
3.22r2で動かしてみたけど、これがずっと左下に流れないのは確かに謎だ。
途中で右上に向かってムーブしてる箇所があるんだよなぁ。
[move]の1500ミリ秒より、[wait]の1500ミリ秒のほうが早く終わってると
しか思えないんだけど。
まあスフィアスの書き方がおかしいというのは確かで、[wait time=1500]
の代わりに[wm]を4入れればちゃんと動くんだけどさ。
496 :
495:2006/11/22(水) 20:22:53 ID:+Khd8gYw
ああ、そうか。
直後の同timeの[wait]より時間がかかるかもしれないのが非同期か。
ハロ氏がレスしてたのはそういう意味なのね。勉強になるなぁ。
何か不正な計算結果を発見したんだけどこれってバグ…だよね?
公式に報告した方がいい?
Math.floor(1.01*100) == 101
Math.floor(1.001*1000) == 1000 ←
Math.floor(1.0001*10000) == 10001
Math.floor(1.01*1000) = 1010
Math.floor(1.001*10000) = 10009 ←
Math.floor(1.0001*100000) = 100010
Math.floor(1.01*2000) = 2020
Math.floor(1.001*20000) = 20019 ←
Math.floor(1.0001*200000) = 200020
(int)キャストでも同じ結果
浮動小数にはよくあること
吉里吉里には通貨型がないしな
というかまず1.001*1000やってみろよw
質問させてください。
選択肢で、
1教室
2廊下
3トイレ
とあって、3以外の選択肢を選ぶとまたこの選択画面に戻ってくるしくみにしています。
わからないのはここからで、
二回目以降の選択画面でさっき選択したのと同じ選択肢を選ぶと、
「そこはもう行ったじゃん・・・・」
というセリフとともにまたこの選択画面に戻したいのですが、
タグは何を使えばいいでしょうか。
教えてください、お願いします。
変数とifとjumpなりcallなり
504 :
名前は開発中のものです。:2006/11/23(木) 18:09:30 ID:dn+I0zA3
そこまで局所的なタグなぞあるわけねぇだろ
ifやらを駆使して自分で組め
condで選択肢自体消した方がいい。
わかりました。ありがとうございます、頑張ります。
すいません、あともうひとつだけ。
苗字[edit name="f.苗字" length=100 maxchars=10]
名前[edit name="f.名前" length=100 maxchars=10]
で、苗字と名前設定画面が出る時に、
あらかじめデフォルトの名前をテキストボックスに表示させておきたいのですが
どうしたらいいでしょうか。何度もすみません。
自力で解決しました、お騒がせしました。
普段はNスクを使っている者です。質問失礼します
吉里吉里/KAGではADVしか作ったことがないのですが、
今回アイテム作成系のSLGの製作に挑戦しています
変数処理など一部にのみTJSを使っていたら
製作途中の段階で150Mを越えてしまいました
なるべく簡単に容量を小さくしたいと思うのですが
やはり判定など、TJSで処理する部分を増やしたほうがいいのでしょうか
それともいっそのことNスクで製作し直したほうが簡単で容量も少なく済むでしょうか
あまりTJSを使っていないので、仕組みをまだよく理解していません
どなたかご教授お願いします
どの部分に150MBかかってるのか知らんが
スクリプトの部分はテキストだから
TJSでもそうでなくても容量の面では大差ない
スクリプトの方だろうが、保存データのことだろうが、容量の面では大差なかったと思う。
スクリプトが150MB?
なにやってんだかしらないけど
フツーはそんなことにはならない
画像とか入れて150MBってこと?それでTJSつかって
それが小さくなるとおもったからそういうこといってんの?
どうにしろなにいってんだか分からん
文字情報だけで150Mってどんだけだしwwwwww
すみません、全体での容量でした
シナリオで約3M、それを合わせたスクリプトで20Mくらい使っています
データの処理が多少重いです
で、何をしたいの?
>>509 リソースのフォーマットを圧縮重視にした方が現実的だ
たとえば256色しか使ってないならgifより8bit pngの方が圧縮率高いとか
むしろ画像データとかで無駄に色数保持してたりする可能性の方が高いよ
動画のフレームレートが無駄に多かったり、ビットレート無駄に挙げてたりさ
そっち方向を考えろ
>>509 状況を正確・詳細に伝えられるようになってから質問してくれ。
アンタがするべきは150MBの内訳をもっと細かく書くことだ。
背景画像が何枚で何MB、何形式を使っているのか
前景画像が何枚で何MB、何形式を使っているのか
その他の画像が何枚で何MB、何形式を使っているのか
(αチャンネルつき画像なのかマスク画像を使っているのかも)
音声が何個で何MB、何形式を使っているのか
動画が何個で何MB、何形式を使っているのか
シナリオが何MBあるのか→3MB
KAGシナリオが何MBあるのか→20MB
自作TJSスクリプトが何MBあるのか
せめてこれくらい書いてくれ。
KAGシナリオ、自作TJSスクリプトに関しては一部で構わないから
晒してくれた方がより適切な回答が来るだろう。
状況から察するに、似たり寄ったりのタグを繰り返し書いてるだけ
じゃないのか? 力業でそう言うことをやる人は確かにいるけどな。
518 :
509:2006/11/24(金) 00:55:34 ID:krWk++Jq
皆さんレスありがとうございました
すみません、製作途中なので画像などの全体的な容量は把握できていません
僕は担当ではないのでわかりませんが、サウンドはフリゲなので軽くしてあるそうです
画像もひとつひとつはそんなに重くはないです
ただ、移動箇所が多いので場面がよく動きます
自作TJSは知識がないので使えません。KAGシナリオの容量はまだ増えます
純粋にシナリオファイルのことを訊きたかったので、話が大きくなってしまい申し訳ないです
もう少し頑張ってみますが、皆さんのご意見ではテキスト分はあまり大差ないようなので
今後のために勉強してTJS処理を増やして吉里吉里で完成させてみようと思います
スレ汚しすみませんでした
日本語って
難しいな……
俺たちって
無力だな……
520 :
名前は開発中のものです。:2006/11/24(金) 01:18:31 ID:bg88eBhF
言葉って言うのは同じ文字でも意味が多数ありますからね
一応文字の容量としては
半角文字1文字が1バイト、全角文字1文字が2バイトの計算になりますね。
あとフォルダからのプロパティーでの容量表示ですが
クラスタサイズが64KBとかで大きいと、たとえ一つ一つのファイル容量が
小さくても。
たとえば1KBしかなくても64KBの容量を使います。
正しい容量を見る場合は「ディスク上のサイズ」ではなく
「サイズ」と書いている方の容量を見た方が良いですね。
シナリオを抜いて17Mのスクリプトって、ちょっと想像も出来ないくらいの巨大さだな。
SLGってことは、何度も再現される場面をその都度記述してたりしないか?
マクロで重複部分を圧縮するとか、気をつけてる?
あとTJSを使用しなくても、おそらくそのスクリプトの増加は
同じような処理のスクリプトを何度もコピペしているかもしれませんね。
その場合はマクロを使った方が良いかもしれません。
TJSはKAGの機能と言うよりプログラムそのものですから
JAVAやVISUALBASIC.NET、C++並のオブジェクト指向プログラムの
基礎が解ってないと弄ることもままならないと思います。
そう言う物を理解した前提でのマニュアルになっていますし。
>純粋にシナリオファイルのことを訊きたかったので
なら初めに150Mって数字を出すな。
…と言いたいが、フリゲなら許せるw
かなり大作っぽいな。ぜひがんがってくれ。
SLGってことは、アイテムとかの各種データとかそういうのあるんだよね?
まさかそれらをコード内部に含めてないよね…?
それ抜いて17MBなんだよね…?
本人が詳細を語らないんだから推測するだけ時間の無駄だよ。
うちのノベルもシナリオ100kbでスクリプト1MB越える。
想像出来ないは言いすぎでは。大体セリフ一つで20行くらい使ってる。
セリフ一つに一行しか使わない俺はまだまだですねw
>527
それも凄いな…
そうとうアクティブなノベルなのかな
マクロ使ってないんでしょうな
どっちにしろ圧縮すりゃ4分の1から5分の1くらいに縮むかな?
>531
普通にセリフ毎にラベル打ったり、立ち絵表示変えたり、
ボイスのボリュームキャラごとに変えたり、キャラごとのテキストカラー変えたり。
あとサブルーチンからの復帰はtargetをラベルにしてるので
セリフの履歴重複表示を禁止したりかな。
まぁ基本的にみんなが言うようにマクロはほとんど使わず必要最小限にとどめてる。
あと余談だけどFFDとまでは言えないけども吹き出しセリフ処理とカットイン、
コマ内スクロールなんかも座標さえ求めておいたら出来るようにはしてあるよ。
見せ方が大変だから実用にいたってない(´A`)
FFDがスゴイのはシステムじゃなくて演出を考えるセンスと労力だと思う。
>>532 なんでマクロを最小限にとどめているんだ?
そんなにスクリプトばかりあるとシナリオの修正が大変じゃないのか?
確かに…。
あんまり多機能マクロ作るのも良くないかも知れんけど
それくらいは一つに纏めちゃっていいんじゃないか
単純計算で容量も1/20になる訳だし、デメリットは特にないと思うけどな…。
>533-534
自動出力してるからむしろマクロにするメリットがあまりないんだ。
軽量化といってもゲーム全体で数百MB以上あるところから数MB程度の話だし。
うちは1MB以上のシナリオなんて作ったことないからw
スクリプトひな形→自動プログラムに組み込み→出力
スクリプトひな形→マクロ作成→自動プログラムに組み込み→出力
こんな感じで一手間増えるだけの感覚。
マクロ呼び出しは最適化されるからかなり実行速度が上がるぜ
最適化はしないだろう
エラーログがもりもり増えて、100MB超えたのを気が付かずにいた俺が参上
自動出力可能なほど単純なら、それこそマクロ化でもすればいいのにと考える俺の方が特殊なのかな
>>539 どう考えても
>>539の方が正常
マクロ使わないんじゃなくてマクロ使えなくて強がってるだけです。
変換後のコードの可読性を気にする方がおかしくないか?
よほど遅いならともかく、問題なく動くなら別に悪くはないだろ。
変更があるたびに全部変換するって発想だとしたら悪い。太刀が悪い。
>>541 別に悪いとかじゃないです
そのほうが楽でスクリプトも軽い、というのは俺の勝手な考えですから
でもゴリゴリ自動変換出力したものを
>うちのノベルもシナリオ100kbでスクリプト1MB越える。
>想像出来ないは言いすぎでは。大体セリフ一つで20行くらい使ってる。
ってのはちょっと特別な例じゃないかなと思ったんで
そうだなぁ
普通の事みたいに言ってたが、
普通はマクロ使うからな
>543
楽かどうかでいったらマクロは書くのにも直すのにも変換プログラムと
マクロスクリプトを弄らないといけなくなるから楽じゃないんだよ。
「想像出来ない」は言いすぎって思っただけで誰もがやってるとか
そんな事言う気は無いよ。
変換後のスクリプトに手を加えなければ別にいいんじゃね?
スクリプトがデカイ分、読み込む速度とメモリ使用量には影響出るだろうけど
実行速度は問題ないだろうし、作業量が増えるばかりか
エンバグ何てことになったら目も当てられない。
>楽かどうかでいったらマクロは書くのにも直すのにも変換プログラムと
>マクロスクリプトを弄らないといけなくなるから
どんだけ糞なマクロ書いてるんだよwww
ところで、マクロってどのタイミングで展開されるんだっけ?
マクロタグで囲まれた場所を読まれた時点じゃないかな?
だから俺はマクロ専用シナリオファイル作って
first.ksの先頭で読ませてる。
ともあれマクロ使うのにも実行する処理の理論的理解や
何処をどう弄ればシンプルになり、共同の処理に出来るか
とか、結構お勉強通りの数学だけじゃなくて
発想力がいるよね。
絵に挫折してプログラムに走ったけど
最終的に必要な創造力は変わらなくて大変だった。
最後に表現するのが絵か計算かの違いだけでプログラマーもクリエイターなんだと思ったよ。
擬似CALLだと思ってたけど、展開されるの?
おまえらちょっとまて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もあったらクラスタの問題じゃない
まあ煽ってるわけじゃないんだ。自分が何やってるかも分かってない奴に許容量以上の情報を流し込んだら暴走するんジャマイカ?
と言いたいんだ。
暴走したくなってきますた
>548
KAGリファレンス>マクロの属性
これ見る限りだとmacro〜endmacroで定義後、どっかで展開されてるみたい
(プラグインなしで)マクロ中のラベルが機能しないってことは
使用時に展開してるんかな
ごめん、>550ね
展開も何も文字列として保存してそこからgetNextTagしてるだけじゃねえの?>マクロ
ちゃんと確認してないから知らないけど。
kagクラスのfunctionとして追加されたりオーバーライドするのでは?
KAG→TJS→きりきり って変換されていくんだよね?確か。
まぁ俺も上に続いてあてずっぽうなわけだが。
>547
マクロが糞でも上手くてもそこの作業工程はかわらんだろ。
>>558 変更内容にもよるが、普通はマクロだけ弄ればいいように設計する。
絶対にどっちも弄らないと変更できないようなマクロはマクロのメリットが生きてない。
>559
新規作成するときは絶対にどっちも触らないといけない。
変更も属性の追加とかだとやっぱりどっちも触らないといけない。
マクロの変更で属性の追加なんてそんなに特殊なケースでもないと思うけど。
はっきり言って、そんな回り道を好んでやる奴の話なんてどうでもいい
スクリプト組んでる途中で仕様変更or追加とかどんなデスマですか
まぁ糞だしな
564 :
556:2006/11/25(土) 19:21:41 ID:9uvhzloz
>>557 幾ら何でも俺はお前ほどあてずっぽうじゃないよ(;´Д`)
565 :
名前は開発中のものです。:2006/11/25(土) 20:44:10 ID:/hiLFfxn
クリッカブルマップでkag.close()またはそれに類する動作を行いたいのですが、
領域アクション定義ファイルにexp="kag.close()";と書くと終了するのですが、
一瞬エラーメッセージ?が出てしまいます
(ポップアップは一瞬で消えるためどのようなメッセージが表示されているかは
確認できませんでした)。
クリッカブルマップを文字またはグラフィックボタンに変更して
linkタグやbuttonタグの後にexp="kag.close()"と記述すれば問題ありませんでしたが、
出来ればクリッカブルマップで実現したいので、
本件でエラーメッセージを出さずに終了する方法をご存知の方がいらっしゃいましたら教えていただけませんか。
>>565 分からないなら少し頭使えばいいと思う
例えば
*end
@eval exp="kag.close();"
とか書いといてtarget="*exit"するとか
↑
×target="*exit"
○target="*end"
568 :
名前は開発中のものです。:2006/11/25(土) 21:37:00 ID:/hiLFfxn
>>566 アドバイスありがとうございます。
早速evalで試してみました。
現象は変わりませんでしたorz
別の部分に問題があるのかもしれませんのでもう少し調べてみます。
なおログには下記のように表示されておりました。
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)
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
kag.close()の代わりにcloseを使用した所、解決しました。
なお吉里吉里に付属のマニュアルに下記のように書かれていました。
> kag.close と kag.shutdown
> kag.close は、KAG を終了させます。終了確認を行う設定にしている場合は終了確認があります。
> kag.shutdown も KAG を終了させますが、終了確認はありません。
> なお、終了に System.exit() を使用すると、システム変数が保存されずに終了される場合があるので使用しないでください。また、これらは eval タグの exp 属性では指定しないでください (代わりに close タグを使用してください)。
お手数をおかけしました。
572 :
名前は開発中のものです。:2006/11/25(土) 22:22:50 ID:/Uaszx6j
シナリオ中にいきなりkag.close()を呼ぶのは100kmで走ってる車でいきなりエンジンを切るようなもんだ
closeタグが停車してギアをPにしてエンジンを切るという一連の流れをやってくれてると思っておけばいい
>>571 正直、スマンカッタ
ソンナノスッカリワスレテタヨ
>>572 分かりやすい例え、ありがとうございます。
心に留めておきます。
>>573 いえ、アドバイスいただきありがとうございます。
evalから調べる事が出来たので助かりました。
Alt+Rで無確認リセットしたいのですが、ボタンが出ているときに
オブジェクトはすでに無効化されているというエラーが出ます。
どこを直せばいいのか教えてください。
function onKey_GameResetStart(key, shift)
{
if(key == VK_R && (shift & ssAlt))
{
kag.goToStart();
}
}
kag.keyDownHook.add(onKey_GameResetStart);
kag.processKeys = function(key, shift) { if(kag.checkProceedingKey(key, shift)) return;
if(key == VK_R && (shift & ssAlt)){ kag.goToStart(); return; }} incontextof this;
こうしても無理?
Configで;draggable = true;としたのですが
レイヤを移動させても 改ページ?すると
元の場所にもどってしまうのです
初期位置をいじったり リファレンスを調べたのですが
どうしても解決できません
ヒントだけでも教えて貰えませんでしょうか。
579 :
578:2006/11/26(日) 22:31:57 ID:jXmud19p
よくわからないけど自己解決できました。
既出っぽい質問してどうもすみません
昨日から吉里吉里始めた超初心者ですが
頑張ってゲーム作ろうと思います。
下記のようなマクロでフェードアウトを行おうとしています。
しかしレイヤー座標の取得でつまづいています。
[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]
---------------------
>>580 つっこみどころが……あなたは多分、リファレンスの読み方が下手なのです。
1. &は属性の最初に置かないと意味がない。
2. ' で囲まれた範囲は文字列扱いになる。その中に変数名があっても、変数とは認識されない。
3. 文字列に付け足しをするときは + を使う。
4. [move]はレイヤを動かすタグ。フェードには通常[layopt]と[trans]を使う。
5. [move]のpathは一つでもOK。
あと、これは飽くまで好みだろうけど、その[move]のlayer属性は % や * でも行けるよね。
ところで、_tmp ってなんなんだろう? TJS詳しくないからわかんないんだけど……
それぞれ何か特殊な用途のために、あえてやってるんだとしたら、見当違いのつっこみは鼻で笑ってやってください。
確認はしてないけど、embで正しい数値が出てるなら
[move layer="&mp.layer" time="1000" path="&_tmp.fadeLayer.left+','+_tmp.fadeLayer.top+',255 '+_tmp.fadeLayer.left+','+_tmp.fadeLayer.top+',0'"]
これで動くかな
あと余計なお世話だったらすまん、
フェードアウトさせるだけなら前半のパスはいらないんじゃないか?
ごめんな>581
何でこう被るかなorz
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);
}
}
これで正解ですか?
狙った動きはしてるんですが何か弊害が予想されるならご指摘頂けると有難いです。
知らない言回しが出ても調べますんでよろしくです。
>>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;
などとして使おうかと考えています。
連想配列などは参照渡しになるので、おそらく動作的には問題ないかなと思っています。
自分的にソースの見渡しがよくなりますし。
共同作業で…と考えると難があることは否めませんが。
>>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"]
では駄目なんだよね。
フェードアウトさせながら文字を表示したいんじゃないかな?
>>587 transでフェードアウトしながらでも、文字表示はできるでしょ?
なんか俺勘違いしてる? う〜ん……
あっ、でもフェードにmoveを使う状況がひとつ思いついた。
複数のレイヤを同時にフェードさせる場合だ。
>>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] ←全体のフェード
だと文字を表示させながらが出来ませんでした。
度々すいません。
KAGの[if]では if〜else〜 や if〜else if〜else
のようなことが出来ないようですが、
皆さんが上記のような分岐をするときはどのように記述していますか?
593 :
591:2006/11/27(月) 23:03:26 ID: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
594 :
591:2006/11/27(月) 23:04:11 ID: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
これを一つにまとめるというのは可能でしょうか?
>>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
596 :
595:2006/11/28(火) 00:40:03 ID:rz9M3VhY
・・・[elsif]なるものがあるらしいorz
↓↓
[if exp="e1"]
b1
[elsif exp="e2"]
b2
[else]
b3
[endif]
>>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
単純にまとめるとこうなるはず
>>596 else、elsifは2.27から。つまり安定版には非実装。
ADVを作っています。
総勢立ちキャラ9人、主人公、表情結構多め(一人当たり10枚前後)
で作りたいと思います。
それで、ちょっと作っていて思ったのですが、
ファイルサイズを1人一つの表情につきどれ位に収めたほうがいいか知らず、
何か不安になってきました。
初めての制作なので、一歩一歩手探りなのですが、
配布を視野に入れるならファイルサイズはどの程度に収めたほうがいいでしょうか。
それはプレイ時間によるとしか言えない。ベクターでも覗いて余所の作品でも見てこい。
老婆心から言うと処女作でキャラ9人はまず完成しない。
登場人物は主人公入れて5人以内にしなさい。
俺の今作ってる処女作はキャラ30人オーバーです
完成させるのが先さ。
>>601 え?なんでですか?
ちなみにそのうち4人〜5人はただの脇キャラです。表情3・4こ。
>603
9人ということは脇であるとしてもそれなりの量になるよね?
それぞれに主人公あるいはメインキャラが絡むわけだし。
>599のような質問するようでは制作になれてないんだから、
慣らしの意味で最初はもっと規模を小さくした方が良いって事だと思うよ。
免許とりたてがカーレースに出ようとしてる感じがする。
>>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]じゃないかというと、サブルーチンに引数を渡す方法が分からないからです。
サブルーチンは引数受け取れないのですよね?
606 :
584:2006/11/28(火) 03:34:09 ID:ont2w1QS
>>588 ありがとう。前述のまま進めていたので安心しました。
607 :
584:2006/11/28(火) 03:42:11 ID:ont2w1QS
>>590 フェードアウトするレイヤの裏に透明な同サイズの画像を用意して読み込んでから
transでは?生理的に許せませんか?俺はそうしてますけど。
指定レイヤの反対側に透明画像を作ってゴニョゴニョ〜ていうプラグインを
作れば格好が良いかもですが、とうの昔ににありそうな予感。
初めて一ヶ月なもんで、言うことが力技で申し訳ない。
正直フェードしてから文字出ようが、文字出てからフェードしようが、
文字出ながらフェードしようがプレイヤー的にはかなりどうでもいいよね。
ノーウェイトで進めちゃう人もわりと居るわけだし。
609 :
591:2006/11/28(火) 10:15:42 ID:m48y1SBr
>>597 理想通りの動きになりました。ありがとうございました。
皆は開発のためのツール何つかってる?
KKDE重いから他のに乗り換えようかなあとか考えてるんだけど
俺メモ帳ですw
Peggy。
Perl覚えたての頃に買った本の付録だった。
KKDE確かに重いよね。
なんかのソフトと同時に立ち上げると、格段に重くなる。
ネトゲで回復休憩してる間にスクリプト打つかーと思っても
他のソフトはそれほどでもないのに、KKDE重くて立ち上げる気がしねえ。
615 :
名前は開発中のものです。:2006/11/28(火) 19:06:18 ID:k11C1BXt
動作確認できるのは便利だけど重さがネックですよね。
私は最初はPeggy使ってたけど今はもうメモ帳です。
なんでメモ帳なの?使い辛くない?
メモ帳ではないけど普通のテキストエディターを使ってますよ。
>616
まぁ、軽いし。
スクリプトは殆どマクロに入れちゃってるから、そう不便でもないかな。
それこそ好みだけどな。
「自動的に読み込む」ボタンを作ろうと思い、
[button graphic="〜" exp="kag.onAutoModeMenuItemClick()"]
とやるところまではわかったのですが、ボタンを「押されたままの状態」にする方法がわかりません。
なにかよい方法はないでしょうか?
自分で kag.fore.messages[3].links[2].object.drawState(1); とやる方法も試してみましたが、
onMouseUpとonMouseLeaveによって戻されてしまいます。
>>619 ちょっと無理矢理ですが実現できました。
if( kag.autoModeMenuItem.checked ){
kag.fore.messages[3].links[2].object.loadImages(押された状態だけの画像);
次は「画面をクリックして自動モードを解除した時に、画像を戻す」
という部分に手を付けたいと思います。
>>619 ON/OFF状態のボタンを別途用意して、押されたら
・モードの入れ替え
・ボタン画像の差し替え
を行うfunctionを[iscript]で書いてやる。ではいかがか?
先週あちこちみながらたどり着いた自分なりの解ですが。
>>620 おめでとさんです。なんだ、そこまで30分足らずでやれるなら余裕じゃないw
>620
確かwikiに応用できそうなのが乗ってたな
…と思ったんだが今見たら乗ってないっぽい
ごめんorz
>>625 >>626 ありがとうございます。それをヒントに作ってみました。
長いので次の発言で。
行数制限のため行を切りつめてます。
読みにくくてすいません。
使うときはこんな感じに。
[button graphic="オフ時の画像" exp="kag.onAutoModeMenuItemClick()"]
[DaMenuItem_addButton id="0" type="auto" off="オフ時の画像" on="オン時の画像"]
id = 何個目のボタンか(0〜)
type = autoモードか、skipモードか。とりあえず今回は autoのみ
628 :
619:2006/11/29(水) 01:53:59 ID: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();
629 :
619:2006/11/29(水) 02:18:15 ID: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); }
}
で??
実際のクライアント領域と kag.primaryLayer の位置が違うぅぅぅ。
Window.innerLeft & Window.innerTop が無いみたいだけど
勝手にずらしても大丈夫なんだろうか。
選択肢表示レイヤーに画像を敷き、かつ行間を設定していると、
オートモード、スキップモード中に選択肢に行き着いた時、
選択肢の文字が消えてしまうのですが、他の方も同様の現象はありますでしょうか?
--------------------------------
[position layer="message3" frame="背景画像"]
[style linespacing="36"]
[nowait]
[link 〜]選択肢1[endlink]
[link 〜]選択肢2[endlink]
[endnowait]
--------------------------------
結局、[nowait]の前に下記2行を加えることで対応しました。
[eval exp="kag.cancelSkip()" coud="kag.skipMode"]
[eval exp="kag.cancelAutoMode()" coud="kag.autoMode"]
環境:吉里吉里2 SDK version 2.26 stable rev.2 / KAG 3 3.26 stable rev.2
>633
モードのせいじゃないと思うんだが……。
それほんとに、モード解除したら直ってる?
選択肢以外の所クリックしたら選択肢消えない?
[s]入れてないなんてことはないよな?
吉里吉里プラグインの再公開してくれるって人は元気か?
文字表示の「ページ末まで一気に」を
右クリックサブルーチンから変更し、
メニューに反映させるにはどうすればいいですか?
*option
[checkbox name="kag.chNonStopToPageBreak"]
[checkbox name="kag.ch2ndNonStopToPageBreak"]
*exit
[commit][er]
メニューに反映されないのです……。
>>637 Afterinit.tjsとかであらかじめプロパティの形で処理を組んでおく
---------------------------------------
property nonstop {
getter() {
return kag.chNonStopToPageBreak;
}
setter(v) { // 例その1 メニューをクリックしてしまう
v = v != 0; // 念のため true/false に置換
if (v != kag.chNonStopToPageBreak) { // もし現状と違うようならメニューをクリックする
if (typeof kag.chNonStopToPageBreakItem != "undefined") { // 一応存在チェック
kag.chNonStopToPageBreakItem.click();
} else {
kag.chNonStopToPageBreak = v;
}
}
}
// setter(v) { // 例その2 どうせきめうちなので直接メニューの状態書き換え
// kag.chNonStopToPageBreak = v != 0;
// if (typeof kag.chNonStopToPageBreakItem != "undefined")
// kag.chNonStopToPageBreakItem.checked = kag.chNonStopToPageBreak;
// kag.saveSystemVariables();
// }
};
---------------------------------------
それを kag で指定する。
*option
[checkbox name="nonstop"]
変数でなくメニューを操作するのがコンフィグ画面とメニューの同期をとりたいときの基本テクニックです。
メニューの構成定義は Menus.tjs にあるので、どのメニュー項目がどういった変数名で保持されているのかはそれ参照。
>>638 TJSから逃げまくって結局捕まってしまった……。
すごく助かりました。ありがとうございました。
キャラの表示の際、テキストの内容を保持したまま、メッセージレイヤをフェードアウト→
キャラ表示→メッセージレイヤのフェードインという事は出来るんでしょうか。
transでフェードしたらテキストがクリアされてしまい、どうにも行き詰ってます。
今のところ、直前のテキストをノーウェイトで表示すると言う力技を使ってるんですが、
もっとスマートな方法があればお教えください…。
すみません、立ち絵を表示しようとする時、エラーで強制終了が起こることがあります。
条件が一緒でも起こらない時もあり、ログを見ると、いつも下記のエラーのようです。
何でエラーになっているのか、ご教示いただければ幸いです。
==== An exception occured at historyextension.tjs(376)[(function) nextRecordLine], VM ip = 39 ====
-- Disassembled VM code --
#(376) record.pagemove = window.current.lineSize + window.current.lineSpacing;
00000031 gpd %1, %-2.*5// *5 = (string)"window"
00000035 gpd %2, %1.*6// *6 = (string)"current"
00000039 gpd %3, %2.*7// *7 = (string)"lineSize"
-- Register dump --
%-6=(object)(object 0x019B2154:0x019B2154) %-5=(void) %-4=(int)7 %-3=(int)7
%-2=(object)(object 0x0012E54C:0x00000000) %-1=(object)(object 0x035AA150:0x035AA150) %0=(void)
%1=(object)(object 0x019B2154:0x019B2154) %2=(void) %3=(int)0 %4=(int)0 %5=(void)
%6=(object)(object 0x018FB378:0x018FB378) %7=(void)
--------------------------------------------------------------------------------------------------
(void) から Object へ型を変換できません。
(void) から Object へ型を変換できません。Object 型が要求される文脈で Object 型以外の値が渡されるとこのエラーが発生します
642 :
633:2006/12/01(金) 01:25:52 ID:yp0WXRoh
>>634-635 これを試してみてください。first.ksにこれだけ記述すれば確認できます。
画像はTLG6形式でやりました。
---------------------
[cm]
[current layer="message0"]
[position layer="message0" frame="適当な画像" visible=true]
[style linespacing=36]
[nowait]
[link storage="aaa.ks"]test1[endlink][r]
[link storage="bbb.ks"]test2[endlink][r]
[nowait][s]
---------------------
↑のソースで、表示したあとに選択肢以外をクリックすると文字が消えます。
それ以前に [p]の時に出るアイコンが表示されてしまうのもおかしいです。
linespacingを消すか、frameを消すと正常に動作します。
>>640 こういうことですか?
[cm]
;背景とテキスト表示
[image storage="../image/bg.tlg" layer="base"]
あああああ
[l]
;テキストフェードアウト
[backlay]
[layopt layer="message0" page="back" visible="false"]
[trans method="crossfade" time="1000"]
[wt]
;キャラ表示
[image storage="../image/chara_azusa.tlg" layer="0" visible="true"]
[l]
;テキストフェードイン
[backlay]
[layopt layer="message0" page="back" visible="true"]
[trans method="crossfade" time="1000"]
[wt]
644 :
633:2006/12/01(金) 01:43:40 ID:yp0WXRoh
>>642 すいません、貼りつけたソースだと問題ありませんでした。
もう一度確認してきます。
645 :
633:2006/12/01(金) 01:50:03 ID:yp0WXRoh
>>642 度々すいません。現象が発生する条件は下記の通りのようです。
・テキストレイヤーのフレーム画像がスクリーンサイズ以外であること。
・linespacing、もしくは locateによって表示位置を調節していること。
>>642 で示したソースで
・フレーム画像をスクリーンサイズ(640*480)にしたら問題ありませんでした。
・linespacingを削除したら問題ありませんでした。
皆さんの環境でも同様の現象は発生しますでしょうか?
恐らく、行間を大きくしすぎてメッセージフレームからテキストがはみ出してるんじゃないかな。
ちょっと訂正。
行間って言うより、最後の[r]が原因ぽいね。
あとKAG2互換モードにしてるなら\も忘れずに。
648 :
633:2006/12/01(金) 03:03:12 ID:yp0WXRoh
>>646-647 反応ありがとうございます。
テキストはみ出しが原因だとしたら、「フレーム画像を無くすと正常に動作する」の説明がつかない気がします。
最後の[r]を消しても同じでした。
ちなみに KAG2互換モードではないので「\」は不要です。伝え忘れてすいません。
設定画面を作る時に音量調整を加えたいのですが、
スライダコントロールのプラグインや、スクリプトなどを公開しているサイトはありますでしょうか?
少々検索してみたのですが見付かりませんでした。
>>648補足
ちなみに現在は背景画像サイズをスクリーンサイズにすることで対応しました。
透明部分がすごい無駄なことになっていますが、動作的に問題ないのでひとまずということで。
>642
>それ以前に [p]の時に出るアイコンが表示されてしまうのもおかしいです。
なんで▼がでるかというとテキストがメッセージレイヤと比べて長すぎて
一度に表示できないから。その場合初期設定だと[p]じゃなくても自動で差し込まれる。
>>648 ちゃんとフレーム画像の高さは108以上にしてるんだよな?
なら試しに、[r]を消した上でpositionにmargin="0"足してみ。
あ…クリックで消えるってことは、字は納まってるわけか。
108云々は忘れてorz
>>643 あああありがとうございます。前に同じので試した時になぜか
出来なかったんですが、上手くいけました。何が悪かったんだろう…。
ともかくありがとうございました。
>>653 字は収まってても、最後の[r]で自動改ページ発動してる可能性は十分ある。
うん、忘れて欲しいのは108のとこだけな。
[r]消しとmarginはやってみて。
とりあえずID:yp0WXRohはもう少し落ち着いた方がいい。
こいつ上でアニメできないと騒いでたヤツじゃないのか?
ProjectLipsの吉里吉里講座も年内で終了か。
KAGと心中やプラグイン集も消えたし次スレはテンプレ大幅改変だな。
OUTFOCUSのgutchie氏のwikiがそれに換わるものになるんじゃないか
mixiで・・・本家のイミフ以上に相手にしたくないな。
続いてる吉里吉里のコミュニティーが減ってる今貴重だが
ユーザー数に対して情報を公開してる奴らが少ないな
画面には出力しないけれど、履歴にだけ表示する(例えばイベント名とか)のに
良い方法ありませんか?
今は非表示のメッセージレイヤーを使っていますが、もっと良い方法がありそうで。
>>663 AfterInit.tjs に
-----------------------------------------------------
kag.tagHandlers.htext = function(elm) {
if(historyWriteEnabled) historyLayer.store(elm.text);
return 0;
} incontextof kag;
-----------------------------------------------------
と足して、あとは KAG から
-------------
[htext text="ヒストリに出力"]
[hr]
-------------
とかこんなかんじで
>>664 ありがとうございます。
無事、出来ました。
>662
苦労して覚えた知識を簡単に教えてたまるかって奴もいるかもしれないが
講座サイトが少ないのはプログラムとはまた別の才能が必要だから。
名選手(プログラマー)が名監督(講座サイト)とは限らないってやつだな。
体系立てて分かりやすくまとめるには文系の能力がかなり必要になる。
理系の奴が理系の書き方しても自分と同レベル以上の人間にしか読めないものになる。
667 :
名前は開発中のものです。:2006/12/01(金) 21:06:22 ID:4tRnWELa
情報公開するのは思ってるよりめちゃくちゃ手間掛かるぞ
実作業時間やそれに伴う思考時間を合わせるとね
週末がそれで潰れてしまう事もある
さらに質問にも答えるとなると…
>666
そもそもリファレンスすら読めないので講座作るレベルじゃないって問題があると思うんだ
TJSって他の言語やってれば新たに覚えるのはcontextof演算子位だから簡単な方なのにな。
KAGも一番複雑なパーサがネイティブ実装されてて実装は隠されてるから難しいのは文字を描画する際の計算位だし、
あれ位なら読めるだろう。
他の言語から簡単にADVが作りたくて吉里吉里に手出したのって少ないのか?
それとも、そういう連中にとっては吉里吉里は講座で解説する程じゃないのか・・・
KAG・Nスクと並ぶがNスクの方が講座も書籍も多いのはなぜだろうな。
>名選手(プログラマー)が名監督(講座サイト)とは限らないってやつだな
C++とかJAVAの本見ると名監督がコード書けるとは限らんからな。実際にKAGでゲーム作った所が本出すと売れそうだな
>669
確かになぜか吉里吉里よりもNスクの方がユーザーコミュニティが
発展しているような気がする。
最近は公認サイトが消えたり、講座サイトでも途中で止まっているところばっかで
なんか活気がないというか何というか。
>>656 ありがとうございます。
margint、marginbを指定したら上手くいきました。
無指定=0 というわけではないのですね。
>>658 何が言いたいのかわかりかねますが、とりあえず違う方だと思います。
なんだか吉里吉里の各所に厨が増えてきましたね
TJSなんかの応用テクに関することならともかく
KAGのリファレンスも読んでないのが丸判りな質問連発してる奴は
ライブメーカーとかコミックメーカーに行けと言いたくなる。
こんなの相手にしてるであろう講座サイト運営してる人達を素直に尊敬するよ。
俺は人間小さいから絶対無理。
[image]を説明するだけでもかなり大変だぞ。
page=foreってなに?それはトランジションで〜〜
トランジションってなに? それは画面の切り替えで〜
画面の切り替えって何? クロスフェードとスクロールとユニバーサルがあって〜
ユニバーサルってなに? それはルール画像があって〜
ルール画像ってなに? PNG形式で作られた〜
PNG形式ってなに?
って感じで「image]だけを説明しようとしても他の要素がどんどん絡んできてる。
かといって[image]の前にトランジションの解説から始めることも出来ない。
pageはpageなんだよ!黙ってろ!ってんじゃ解説になってない。
なんか子供とおっさんが二人で漫才するように説明してたサイトあったよね?
気づいたら閉鎖してたけど
あそこわかりやすかったと思うんだけど、何で閉鎖したの?
>>673-674 「KAGリファレンスを参照して下さい」
もしくは
「質問の意図が掴めないのでKAGリファレンスのどの部分が分からないのか明示して下さい」
ってレスすればおk。
俺は厨の質問にはそう答える
>673
俺も無理だなぁ。
リファレンスどころかレスすら読まない奴もいるからな。
何しに来たんだと言いたい。
厨な質問へのレスの仕方じゃなくて
筋道を立てて分かりやすく講座を構築するのは難しいって話でしょ
ちょっと待て、なんでお前らにそんな質問が来るんだ?
>671
違うなら断片だけで状況判断して説明してる人に詳しくもないのに
「その理由は違うと思う」とか言い出してる失礼なヤツが増えてるって事だ。
しかもそれ以外考えられない状況なのに。
簡単にADVを作りたい、でもいろんな機能がついてるのがいいよね
そんな人がいきなり吉里吉里に手を出すんだろうね
>680
661の講座鵜呑みにしてたのかもな
ちょっと覗いて見たんだが、
こっちも[endlink][r][s]こうなってる
>そんな人がいきなり吉里吉里に手を出すんだろうね
ここら辺頑張ってTJS書いてる奴は良いがKAGの既存のコード書き変えてる奴とか質問にそういう答え方する奴とかは
KAG本体にパッチ当てちゃうと実装変わって動かなくなるかもってのは考えないんだろうか?
何のためにわざわざAfterInit.tjsがあるのかと・・・
実際初めからイジル気満々の奴はあんなもん使わずに必要な部分をサブクラス化しちゃうのに。
その場合良くてブートストラップ的な使い方しかしないからなきゃ無いで良いし。
KAGの設計がdeeたんの意図している使われ方とズレてるのかもな。
MainWindow.tjsはパッチ当て過ぎでリファクタリング出来たもんじゃないし
MainWindowとは明らかに関係無い処理が含まれてたり別クラスかもせんと。
KAG3もいままで頑張ったよな。そろそろソース捨てる時期だw
MainWindow.tjsさえ捨てれば何とかなるがそれやると根本から設計やり直しな罠orz
MainWindow.tjsをリファクタリングしようと思ってソース読んだ瞬間挫折した奴は居るはずだぞw
#KAG4の開発はメーリングリストちょっと出て以来音沙汰なしだな
>MainWindow.tjsをリファクタリングしようと思ってソース読んだ瞬間挫折した奴は居るはずだぞw
ノ
まあ数年前の話だがな。
Fateが吉里吉里/KAGで作られてるって聞いて飛びついた俺が来ましたよ。
実際にやってみたり、Fateのソース見て甘くはないなぁと思う今日この頃。
パクる気も失せるほど膨大だったので普通にイチから勉強してる。
まぁわからんままコピペしても虫取りの時泣くだけだしね。
こんな俺みたいな奴が大量発生してるだろうけど頑張って>>偉い人
ROMって肥やしにしてますよ〜
KAG4なんて要らないよ。
そんなもんはDeeたんじゃなくても作れるし、
吉里吉里3の開発に専念して欲しい。
KAG4開発は吉里吉里3に対応させる必要が出来てからで十分。
キミキスの体験版とやらが吉里吉里製らしいと聞いてダウンしてみた
目パチとかどうやってんだろこれ
URLキボン
ありがとう
今は眠いのであとでやってみる
692 :
352:2006/12/02(土) 13:46:25 ID:Nt06spb/
693 :
352:2006/12/02(土) 13:50:19 ID:Nt06spb/
連投失礼
前回の書き込み後、現在おさかなで公開されてる方からも
ご連絡とご許可を頂けましたが
既におさかなさんの方で全て公開されている事もあり、
当方では扱わない結論で進めました。
694 :
名前は開発中のものです。:2006/12/02(土) 14:10:16 ID:FRISUBqC
ご苦労様です!
私は落としてなかったので嬉しいです!
>692
ルーレットプラグインDLしたら時間依存メッセージプラグインだったくさい。
696 :
352:2006/12/02(土) 14:19:09 ID:Nt06spb/
うおマジだ。
修正しておきます。
>>683 プログラミングできなくてもADVが作れるみたいに言われてるのを拡大解釈して
何も知らなくてもかっこいいのが作れるんだと勘違いしているのが多いんだろうて
>692
おお、お疲れ様。
作りもシンプルで分かりやすいね。
699 :
名前は開発中のものです。:2006/12/02(土) 15:41:28 ID:43ZblYgw
また沸いてきた…
独自暗号を簡単に導入できるようにすりゃ
汎用解析プログラムは意味なくなるんだがな
ゲーム配布側が暗号生成のキーを弄れば
独自暗号化できるというようなのは無理なんだろうか
懇切丁寧に暗号化プラグインの作り方書いてあるだろ
また馬鹿が一人
>>703 (;^ω^) Deeたんに氏んで侘びてください
最近KAGを知って初めてのゲーム作りに挑戦してるんですが
あとから配列や辞書といった便利なのが出てきて
次々取りこんでいるうちスクリプトがごちゃごちゃしてきました。
それで一度
「最初にこれを使ってこれを設定しておくと楽」みたいな
ベテランの技を参考までに聞いておきたいなぁと思うのですが
よかったら聞かせていただけないでしょうか。
>>686 >KAG4はW.Dee氏ではなくてsugi氏が担当(?)たった気がするが。
これに加えてKAG4って吉里吉里2対応じゃなかったか?
>>690 おkテックジャイアン買ってくる
>>697 それは拡大解釈じゃなくて御都合主義(ry)
>>699 見たところでfate用に作られてるんだから再利用性は低いし、あんなもん書ける奴には簡単に書ける。
NGChartEditorにfateで使ったプラグインのごく一部が付いてるから落としてみれば?
ライセンスは吉里吉里独自だから自由にいじれる
>>703 吉里吉里のソース読んでみろ
[showhistory] に相当する処理を行うには [eval exp="kag.showHistory();"][waittrig name="history"]
の2つが必要ですけど、この2つに相当する処理を TJS から直接行うことは可能ですか?
onClick などのイベントハンドラから上記操作を行おうとしても、Conductor に -2 を返せないので KAG が進行してしまう点が困っています。
当方が考えていることは、画面上のボタンを押すことで 「セーブ画面」「ロード画面」 などを出すことです。
callExtraConductor を使用して一度 KAG に戻れば上記の操作を行えるのですが……できれば TJS だけで行いたいなーと。
>>707 なら書いてみろと。
学歴なんて関係ないと東大出てからいってみたい、ってCM昔あったじゃん。
Fateなんて簡単だと それ以上のもん組んでから言ってみたいぜ俺は。
>>708 要は[showhistory]をTJSでやりたいのだな?
MainWindow.tjsを見ると[showhistory]ではshowHistoryByScenario()
を使ってる。それだけではダメなのか?
もしくはkag.tagHandlers.showhistory()でタグ呼んでもできるはず
TJSでやらなきゃダメな理由を教えていただければ解決策が見つけやすいかもしらん
>>711 実は、そのどちらもダメなんです。
showhistory は、『showHistoryByScenario を呼び出し』 て 『Conductor に -2 を返す』 処理を行うんですけど、
停止に必要なのは後者の処理みたいなんです(というより、waiting の実体は後者)
だから単純に showHistoryByScenario を呼び出すだけでは停止しないっス…… (´・ω・`)
Conductor に -2 が返されたときの処理を自前でやってしまえば良いような気もするんですが、
それだと現在実行中のシナリオに影響が出るかもしれないな……と不安でして…… orz
>>712 要は、TJS からレイヤを色々操作している間、KAG スクリプトの進行を一時停止しておきたいんス (´・ω・`)
>>713-714 何がやりたいのかさっぱり分からないけど
コンダクタのコンテキストで↓をやるんじゃ駄目ってこと?
timer.interval = 0;
inProcessing = false;
reentered = false;
>>715 う、うん。それは考え付いたんだけど、それをやることで後々面倒なバグに悩まされるのは嫌だな、と (^-^;;
今 Conductor の中を眺めている最中ス
waittrigをやりたいのなら、
kag.tagHandlers.waittrig(%[name=>'history');
かな?
まだ渡すべきものがあるかもしんない。
>>715 ……ごめん。ダメだった orz
[eval exp="kag.showHistoryByScenario(); window.conductor.sleep();"]
を実行しても、eval が返る時点で sleep() の変更が帳消しになってしまいます orz
eval を介さずに行ったとしても、その時点で実行していたタグが帳消しにしてしまう予感……
やりたいことはただ1つ
function onClick() {
// ここで KAG を停止させる
loadlayer.show(); // ロード画面表示
window.conductor.wait(%[ my_config_close: function { /* ここで KAG を再開させる */ } incontextof this ]);
}
……これだけなんですけどね orz
素直に KAG 経由したほうが早い気がしてきた orz
kag.tagHandlers.waittrig(%[name=>'history']);
後ろの]が抜けてた
>>719 [eval exp="kag.showHistoryByScenario(); kag.tagHandlers.waittrig(%['name' => 'history']);"]
これ、止まらないんスよ orz
>>716 経験上は
停止
mainConductor.interrupted = true;
extraConductor.interrupted = true;
setMenuAccessibleAll();
復帰
if (mainConductor.interrupted) { mainConductor.interrupted = false; }
if (extraConductor.interrupted) { extraConductor.interrupted = false; }
setMenuAccessibleAll();
が無難ぽい。interrupted は Conductor の機能としては組まれてるけど、KAG 本体では
全くつかわれてないようなので、こういった用途のために存在してるのだと認識してる。
setMenuAccessibleAll() は Conductor の制御そのものには関係ないけど
制御が流れなくなってるので念のためメニューの状態を手動補正ってことで。
あ、ちなみに俺は、「終了しますか?」とかのダイアログとかをレイヤで処理する時に使ってる。
そこまでして拘るのは何故なんだぜ
>>721-722 [iscript]
function __my_stop() {
kag.mainConductor.interrupted = true;
kag.extraConductor.interrupted = true;
kag.setMenuAccessibleAll();
}
[endscript]
[eval exp="__my_stop();"]
[l]
first.ks に↑だけ書いて実行しても、[l] が実行されてしまうのは何故なんだぜ? orz
>>723 もはや意地です。ごめんなさい。・゚・(ノД`)・゚・。
ちゃんと呼んでなかったけど、
シナリオファイル内の任意の場所を進行中のコンダクタを止めたいってことだったのね。
何の為にそんなことしたいのか分からないけど、
正直言ってあまりお勧めしない。かなり不安定な動作になるよ。
タイマ止めたところで、
すでにTimerCallBack()を処理中だった場合はそのタグを
外から止めることなんて出来ないし、oneshotトリガ引かれちゃったらそれで台無し。
無闇にinterruptedなんてしちゃった時にはシナリオ進行がそこで止まっちゃう恐れがある。
何かもうConductorの実装方針ガン無視だね。
ああ、流れよんでなかった。すまん。処理に割り込みかけたいなら以下のテクニックを。
(1) kag.tagHandlers に処理起動のため独自タグを登録しておく
kag.tagHandlers.myfunc = function(elm) {
myfuncstart(); // じぶんの必要な機能を起動
return waitTrigger(%[ name : "myfuncend"]); // 適当なキーワードでトリガ待ちさせる
} incontextof kag;
(2) 処理を行いたくなった時点でそれを conductor に割り込み登録する
function onClick() {
kag.conductor.pendings.insert(0, %[ tagname : "myfunc" ]);
}
これで KAG がその処理を最優先で呼び出して合法的に停止してくれる
(3) 必要な処理がおわったら kag.trigger("myfuncend"); でトリガを送って KAGを起こす
OK 姉さん。interrupt() 使って main と extra の両方を止めたらちゃんと止まりました。・゚・(ノД`)・゚・。
>>725 了解……です orz
>>726 その手があったか!!
それを使います。本当にありがとうございました m(_ _;)m
KAGから操作するのは駄目で
pendingに直接insertはOKってどういう基準なんだよ。
むしろ逆だろうと。
混乱して頭痛くなってきた(つД`) タスケテ・・・
>>692 乙ですー。
これから盛り上がっていくといいねー。
あーメルアド公開にしちゃったんだ。
まあ別にいいんだけど
BBSとかは置かないの?
KAGの中で eval で処理しても Conductor に決して -2 は帰らないからね。
waitTrigger で情報を登録した上で -2 を Conductor に返せないと処理としては意味を成さない。
あ、次回のなにかしらの wait処理で登録した情報が有効になっちゃてバグの原因になるね(笑)
pending にタグとして登録して実行させることで、waitTriggerして、さらに -2を返すことができるわけ。
>>731 pendingに直接アクセスすることが好ましくないってことを
言いたいわけなんだが(;´Д`)
TJSはアクセス制限子ないからあれだが、
pendingは間違いなくprivateとして扱われるべき変数だろ。
変なバグを出さないためにもむやみに外部から参照すべきじゃないよ。
本来の実装方針無視してキモいコード書くことに何の意味があるのかと。
TJSのみこれからも使っていくんなら構わないかもしれんが、
おかしなコーディングばっかに慣れちまってどうする。
そもそも不満をこの際ぶちまけちまうと、シナリオファイルの中から
ところ構わずkagの関数に直接アクセスして中身書き換えたりが
ほとんど当然のようになっちゃってるあたりとか、
MainWindowクラスのごちゃごちゃっぷりとか、
Conductorの挙動とか、
kag自体の設計が何かおかしなことになっちゃってるよね
もう本当に捨て時なのかもしれない(´・ω・`)
>>729 KAG から操作するにしても callExtraConductor っスから、
どっちもどっちって感じはしますけど……どうなんだろう。
まぁ、βでなくなった時から考えても2002年から4年以上に渡って切った貼ったされてきてるからなぁ…
2002年の段階で、数年後ここまで膨れ上がるとはdeeさん自身正直予想もしてなかったんじゃないだろうか。
[eval exp="kag.callExtraConductor('first.ks', '*test');"]
サブルーチン実行中にこの文章は表示されないはず。
[s]
ここにはたどり着かないはず。
*test
callExtraConductor がちゃんとサブルーチンを呼び出せていれば、この文章は表示されるはず。
[waittrig name="testtest"]
waittrig でちゃんと停止していたら、この文章は表示されないはず。
[return]
……結果は、『サブルーチン実行中に〜』 と 『callExtraConductor が』 が表示されました orz
callExtraConductor 呼び出しても、元の KAG ファイルの進行は止まらないのですね orz
えーっと、タグを挿入する
>>726 方式だと、クリック待ちの状態では一度クリックしないと挿入したタグを実行できなくて、
それを回避しようよ kag.skipToStop2() を挿入……っと。
すると、処理からクリック待ちのところまで戻りたいのに、クリック待ちは既に終わっていて…… orz
吉里吉里って本当に難しいですね。・゚・(ノД`)・゚・。
@call
と
kag.extraConductor
の違いくらい理解しとけ。リファレンスに書いてあるから。
何の為にExtraConductorがあるのかも調べておいで。
本当いい加減うざいよ。死ねばいいのに。
kag.callExtraConductorでした。callが抜けていました。
ごめんなさい、俺も死んどきます。
まぁおいおい理解していけばいいんでないかい
とりあえず素直にKAGで処理したほうが無難だと思うがいかがか。
>>732 んー、pendings はわりとさわっていい部類に入るとおもうけどなー。処理を割り込みする手順としては正当だし。
まあ、このへんは感覚の差として、もう設計がぐちゃぐちゃになっちゃってるのは同意ね。
現実問題として内部関数よばないと要件みたせないことが多いからね。
個人的にはKAGそのものを拡張してタグを増やす方向で対応してるよー。
というかそれ以外は基本的にコンダクタの処理を妨害するからだめですね。
ごめんなさい。色々と迷惑をおかけしました orz
一応、色々と割り切ってみることにします。
完全停止しなくとも、スキップとか自動読みとかを表示前に切るだけで大分違うでしょうし……
お騒がせいたしました orz
>>739 KAGでは記述しようがないことだから困ってるんじゃない?
>>736 あー、それは方法論として間違い。
kag.conductor.status をみて待ち状態ならタグをつっこまないのが正解。
しかし、そのままだとクリックされると処理がすすんでしまって結局不幸に陥ると予想。
透明レイヤを全面にはってイベントが通らなくなくなるようにするとかこざかしい方法もあるけど、いまいち。
やっぱ一環した処理がほしいなら、
OnClick() など UI処理からの呼び出しなら conductor.interrupted は適切に機能する(次のコンダクタ呼び出しから
処理が停止する)から、それを使ってコンダクタの wait系の処理とは無関係にとめてしまうしかないんじゃないかなぁ。
ただ、conductor.interrupted は、処理中にタイトルに戻るとかの処理をされて復帰処理がよばれなかったりすると
地獄におちるので、kag.onConductorJump をフックして、別のシナリオに切り替わる流れではかならずその状態を
強制で戻す必要があります。自分ではまったのを忘れてたよ。あ、あと、そのレイヤ処理とやらの
強制後始末も忘れずにね。
本来は、こういった機構の汎用処理を KAG のコアが提供してくれると一番いいんだろうけどね。
まあ贅沢な悩みだよな
何だかんだと多彩な実装は可能なんだし
人の欲望はげに恐ろしい
いや贅沢なんかじゃない。
ゲーム作るのに煩わしい処理を隠蔽する為にフレームワークを使うんだから。
ただ単に当初予測されていた以上の使い方が現れただけ。
だから本当にKAG3を捨てる時期なんだろ。
利用のされ方に応じた同じジャンルのゲーム作るフレームワークがあっても良いジャマイカ?
同じ車でも軽のタイヤとダンプカーのタイヤは違うんだから再開発は必要なんだろう。
題してKAG3を窓から投げ捨てるプロジェクト(笑)
低レベルな質問なんだが「input」の入力画面と「edit」の入力画面の使い分けが分からん。
機能的にはほとんど大差ないよね? こんな時はこっち使えとか暗黙のルールあるの?
> 機能的にはほとんど大差ないよね
大差あるよ
input のほうはモーダル(終わるまで次いけない)で edit はそうではない
というのが一番の違いなのでそこに着目して使い分けたい
決まった順番で順次入力するようにさせるときは input を使うといいし
自由な順番で何度も行ったり来たり直しながらのときは edit がいいね
今サラダけど
>>706への回答ないのかな。
自分は706じゃないし吉里吉里での制作は未経験なんだけど、
こういう経験者ならではの話も聞いてみたい。
最初に設計をしっかりしておくってのは大前提だと思うけど。
それがよく言う「最初から大作は無理、まずは小さいのから」の中身でないかな、と。
確かに細かいTipsは知りたいかな。
ガキのころからやってる人だと「基本中の基本」で説明するまでもない事でも、
最近始めた人にとっては「そ〜なんだ!」だったりするし。
その「基本中の基本」やTipsを纏めたものがリファレンスなんだけどな…。
Tipsで思い出した、そういや熊野なんちゃらって奴の解説サイト、書いてる事が嘘八百だらけなんだが。
初心者向けに敢えて間違ってても理解し易く、とかじゃなくて本人の思い込みや脳内補完だらけだ
やる気のある中途半端ほど手に負えないもんはないな
>748
>最初に設計をしっかりしておくってのは大前提だと思うけど。
冗長性もたせてたけど、その冗長性を忘れて結局組み直す俺がいる。
っていうか読み直すよりそっちのが断然早いし、
当時よりもいろいろわきまえて使い勝手良い物作れるし。
コーディング完璧、これ以上直す事はそうそうないって人じゃないと意味ない。
>>751 一部の例外を除いて、今ある講座の多くはシナリオライター出身が
書いてるみたいだから仕方ないんじゃね?
気になるなら指摘してやればいいと思う
そういうのをいちいち指摘してるとバカが叩かれてると思い込んで突然反乱起こすことがあるんだよな。
揚げ句の果てに人を悪者扱い。嘘八百が広まると究極的にweb pageがhome pageみたいな事になるから
嘘ばらまいてる奴のために言ってるんじゃなくて嘘を刷り込まれてる奴のために言ってんのに。
文だけじゃ分かり辛い話だな。
>>751 せっかくだからどのへんが間違ってるか例をあげてみてほしい。
そこのサイトをぱっと見た感じ、読んだ初心者が盲信しそうな雰囲気だと思った。
(きっぱりはっきり書いてあるあたりが)
ていうか初心者っておれだけど。
ぐぐって引っ掛かったのがこのページだったら100%参考にしてたと思う。
>上級者向けの命令はあえて「出来ない」と書いたり、正しくない用語を使う場合があります。
まずこれの意味が分からない
>756
そのサイトしらんから見てないけど好意的に解釈するなら
・前者は、出来ないことはないけど、初心者にはややこしいから出来ないことにしておく。
・後者は、厳密には違うけど説明が煩雑になるので一般的に広まってる言葉で統一。
スクリプト→プログラム ウェブサイト→ホームページみたいな。
ってところじゃないのかなぁ。
軽く読んでみたけど、確かに間違い多いな
基礎知識編
1.吉里吉里の定義
この時点ですでに怪しいorz
2.フォルダの中身を理解する
フォルダの名前が間違ってる
5.KAGと tjs
ksはKAGシナリオの略じゃ・・・
7.命令文の定義
@も[]もKAG2の頃から使えた
作成準備編
2.文字装飾をつける
R40% G90% B20% → 409020じゃねぇw
シナリオ編
3.別のシナリオに移動する
同一シナリオ内のラベルは全て違う名前を付ける必要があります→推奨なだけ
音声編
1.音声ファイルの種類
OGG(おっじ)形式→オッグです
http://ja.wikipedia.org/wiki/Ogg 極め付けが企画管理編
8.動作環境
CPU 200MHz、メモリ64MBなんて、そもそもXPが動かねえw
この様子だとほとんどのページに何かしら間違いがあると思われ
h 切り忘れたorz
一つの講座サイトを作り上げた労力とやる気はすごいと思うんだが、
間違いが広まるのは何とも…
まぁ、ゲームは作れるだろうけどな
おっじ…
プラグインが拡張機能だもんな。
どいつもこいつもわざと言ってるとしか思えん・・・Plug-insとExtensionsを何故同一視するんだろうか?
俺のKAGにはKAGPluginクラスを継承したExtensionクラスがあるんだがw
因みにプラグインに必要なものをXP3に固めてスクリプトからXP3をロードすれば必要な処理と管理は勝手にやってくれるようになってる。
762 :
tom@:2006/12/04(月) 12:58:42 ID:3g9V4ANI
コンニチハ、今秋、KAGをはじめたモノです。
大体のことは、タグで間に合ってしまうけど、随所、tjsすると嬉しいこともあり・・・・・・
地道にノロノロ「吉里吉里&tjs」の腕を上げようか?小手先で済まそうか?思案の今日この頃。幾つか、質問させて下さい。
1.例えば、「MessageLayer.tjs」内の「setFocusToLink(n, true)」とか、KAGのtjsファイル内のメソッドとかで、
「もっとTJSを」に示唆はないけれど、シナリオファイルの中でも、
便利に使い回せそうなものを、まとめてあるみたいな文献ってWEB上で入手可能でしょうか?
解析の腕はないけど、手軽に利用できるものは、利用してみたいといったスタンスです。
2.「tjsマニュアル」を読んでも、「クロージャ」とか「incontextof」とか辺りの説明が、
ざっぱん理解できません、「猿でも解る」的な説明がどこかにないでしょうか?
3.もしかして、ストレージ(.mid)からファイルの属性(特にタイトルとコメントと作成者)を取得するプラグインとかってないでしょうか?
以上、よろしくお願いいたします。
(入手済みの資料には、「gutchie」氏の「TJS入門(ダンロード版)」があります)
単発tipならやってる所はあるだろうがある程度体系だったものとなると
質以前にリファレンスとTJS入門の2ヶ所しかないのが現状。
>>762 closure とか incontextof とかは、javascript やっていると理解しやすい……と思う
ある程度他のプログラム言語弄ったことがあれば、TJS にもそのまま応用利くよー
下記のボタンを画面上に常に表示し、クリックすることでヒストリ表示を
させたいと思っています。
[button graphic="hoe.png" exp="kag.onShowHistoryMenuItemClick()"]
しかし文字が表示しきっていない時やトランジション中に実行すると
おかしなことになってしまうので、それらの動作中は実行しないように
したいのですが、どのようにしたらいいでしょうか?
上記タイミングだとメニューバーの文字がグレーになるので
それと同じようにしたいです。
過去ログでconductor関係が書かれていたのでそれをやってみましたが、
トランジションまで止めるわけではないんですね。
>>765 そのメニューバーのグレー処理を行っているところの判定文をまねればよろしい。
具体的には setMenuAccessibleAll() を覗くべし。
まあ、すでにそのメニューバーがグレーになってること自体をつかって
if (kag.showHistoryMenuItem.enabled) kag.onShowHisotyrMenuItemClick();
とやればいいんじゃないかと
ボタンを押すと[stop〜]が実行されればいいんでないかい
>>765 onShowHistoryMenuItemClick じゃなくて showHistoryByKey を呼び出せば良いはず
この関数は、メニュー項目の有効・無効を調べて有効だったらクリックを呼び出しているから、ちょうど良いと思う
770 :
765:2006/12/04(月) 18:16:31 ID:Q8lVay/Q
>>766-769 みなさんありがとうございます!
>>768 さんに紹介していただいたプラグインで実現することができました。
確かに [l][s][p] で切り替えるマクロもありでしたね。
#発言番号「765(namco)」だったことに気付いてちょっと嬉しいw
>>764 tjsのクロージャはjavascriptとはまったく別物だぞ
チラシの裏ですよ。
右クリックサブルーチンで行きつ戻りつしていると、
[s]タグで停止しているのにページ末に出るクリック待ちのアレが出現。
操作に支障はないけど見苦しいから飛ぶ直前に、
kag.lastClickGlyphVisible = false;
として回避した。もう、力技w
検索しても出てこなかったのでメモってことで。
…普通は別の手を使うのかもしれんが。
>>771 挙動は違っても、本質は同じだと思ってる
>772
サブルーチン中に無駄な改行かスペースがあるんじゃまい?
775 :
772:2006/12/04(月) 23:03:52 ID:JRHTujtH
>>774 えーと、俺も最初それを疑ったけどないっぽい。
ゲーム本編>右クリサブ>タイトル[s]>
コンフィグ(サブルーチン)>タイトル「▼出現」
と移動すると起こる現象で、ゲーム本編のクリック待ちサインをKAGが
覚えてて、ジャンプ前の状態復帰をしようとしてこうなるみたい。
安易にサブルーチンの戻り先いじるとはまるよって事すかね。
解決に二日かかったです。一日は原因の切り分けに無駄実験で浪費orz
こんにちは。
テキストの速度変更するのにこんな感じに書きました。
[button graphic="〜" exp="kag.chNoWaitMenuItem.click()"]
[button graphic="〜" exp="kag.chSlowMenuItem.click()"]
クリックするとメニューの「表示速度」は確かに目的のものに変わるのですが
実際の文字表示が変わってくれません。
もう一度クリックするとメニューのほうは同じように変わるのですが、
実際の文字表示は「直前にクリックした速度」になってしまいます。
なぜこんな現象になってしまうのでしょう?
メニューから選択すると目的の速度になってくれます。
777 :
772:2006/12/04(月) 23:51:15 ID:JRHTujtH
>>776 未検証だが
exp="kag.chNoWaitMenuItem.click();onChSpeedMenuItemClick()"
ではいかがか。
Menus.tjs
Mainwindow.tjs
を見た感じコレでいいかと
ごめん、うそ言ったorz
exp="kag.chNoWaitMenuItem.click();kag.setUserSpeed()"
でいいとおも
俺も始めて一ヶ月未満w
chNoWaitMenuItem.click() を呼び出した後に呼び出されるであろう onChSpeedMenuItemClick では
ちゃんと setUserSpeed やってるはずなんだけど……どうなんだろうね。
exp="kag.onChSpeedMenuItemClick(kag.chNoWaitMenuItem);"
↑できたら、これも試してみてくれ
>775
ああ、なるほど。
タイトルへはgotostartで戻ったほうがいいと思われ。
>776
temploadとかしてるんじゃねえの
あ、ほんとだ。つーことは
kag.setDelay(elm)
してやるしかないか。elmって何だ?どうやって投げるのかね。
つーか素直に[delay speed=user cond="kag.chUserMode"]
しろってかw
>>781 あぁ、そんなタグもあったかw
その方が綺麗だ、うん。
確認ダイアログまで手作りした俺は何だったのか…
>>783 elm なら、kag.setDelay(%[ speed => "user" ]) な感じで辞書渡してやれば OK
>>785みたいな渡し方したときの辞書配列って関数やメソッド抜けたら開放されるの?
>>777-780,782-785
[tempload]が原因でした!!
設定画面の出し入れに [tempload] [tempsave] を入れていたのですが、
外しても特に問題なかったのでそれでいきたいと思います。
ありがとうございましたー。
>>786 効率の良し悪しは別として、一応リファレンス見る限り
>invalidate 演算子を用いなくても、オブジェクトは必要とされなくなった時点で削除されます。
って書いてあるから、最低限のガベコレは実装されてるはず
でも吉里吉里のGCは循環参照見てないから
(d=%[]).d=d;
とかで消えないゴミができるんじゃないか
793 :
762:2006/12/05(火) 08:58:05 ID:55fIRaSq
レス、ありがとう、ございました。
<A href="../test/read.cgi/gamedev/1160427850/763"
target=_blank>
>>763</A>
KAG本体の.tjs
体系的な資料があれば、何かと便利ですが、コメント文もしっかり付いている
ことですし、随所の親切なTipsな翻弄されながら、溜めが出来たら、気長に暇をみて、
少ずつ、自分なりに整理してみることにします。
<A href="../test/read.cgi/gamedev/1160427850/764"
target=_blank>
>>764</A>,771,773
「TJS入門」のサンプルコードをいじっていたら、少しだけ、イメージ涌いてきました。
incontextofで、余所のオブジェクトのメソッドをさらって来て、同化しちゃうみたいな。
クラスの定義の時点でオーバーライドとか、しなくても、オブジェクト作っちゃってから
でもいいよ、とかいう事なのか?何が嬉しいのか???
JavaScript、
手元にある資料はド素人用のものばかりで、説明がなかったので、そのうち、
本屋にでも行ってきます。
794 :
762:2006/12/05(火) 09:02:13 ID:55fIRaSq
↑参照の書き方、失敗した。スミマセン。
>>763 >>764 で良いのか?また、違っていたらマジごめんなさい!
アンカーの付け方に萌えたw
>>794 あとはmail欄に sage って入れればおk
>>765だけど、kag.inStableを見るだけじゃ足りない?
教えてエロい人!
>797
俺もinStableで判別させてるけど、変な挙動はしてないよ。
waitclick時には呼び出せないけど。
>799
うお、ごめん。
>waitclickはinStableがfalseになるってこと?
そう、クリック待ちや[s]タグで停止中のみtrue(安定走行中)になるみたい。
ちなみにmove中でもクリック待ちがあればtrue返すね。
move中でもtrue返すことがあるならkag.inStableみるだけじゃ場合によっては足りないかもしれないですね。
その時はトランジション判定(トランジション数が0か否か)も一緒にしておけばいいのかな。
複数の Layer が loadImage で同じストレージを読み込んだとき、
内部データは assignImages と同じように共有されるんですか?
されない
>801
確かmoveはtransCountに数えられなかったと思うな。
俺はlocklinkかsetSelProcessLockか、waitclick使う手もあるかな、くらいしか思いつかないorz
呼び出し先で弄らない限りmoveには影響ないし、俺はそのまま使ってるけど。
特に765の履歴くらいなら問題なさそう。
>>804 moveみたけりゃmoveCountで見れるんじゃね
>805
おお、どうもです。…俺アフォスorz
>>802 されます(ただし前回読み込んだ画像が画像キャッシュに残ってる場合)
予め大量の画像ファイルをキャッシュしておきたいのですが
どう書くのが効率良いですか?
visible=falseで全部指定?
>>803 >>807 thx
数十個の ButtonLayer に対し、ほぼ同時に同じ画像を読み込もうとしてたので、
多分キャッシュされていますね。ありがとうございます。
touchImage()
811 :
名前は開発中のものです。:2006/12/06(水) 12:24:44 ID:T8IPH/88
touchImageが実際にキャッシュするかどうかはVMが決める。確実にキャッシュするならオフスクリーンに全部描画しかない。
効率もくそも確実にやるにはこれしかない。
それかキャッシュするネイティブコードを書くか
何か勘違いしてるようだけどキャッシュと画像の共有は別物ですよ
どのレベルで「別物」って言っているのかわからないけど、別物だという根拠は?
>>802 画像に対して共有が解除されるような処理をしなければ
共有されますよ。
キャッシュは行わないようにも出来るので
共有とは別のお話しです。
touchImageは画像をメモリに置こうとしてるからフラグ立てて数値的なメタデータを同一にするだけでメモリいじってないassignImagesとは処理が違うと思うぞ?
レイヤが画像へのポインタ持ってるだけならデータは一カ所にしてtouchImageとloadImagesでアクセスするメモリは同じでよさそうだけどそれだとキャッシュ用メモリの指定プロパティいらないし
問題はloadImagesとtouchImageがどういう処理してるかだろ。
>>807はただのバカと吉里吉里の実装知ってるのとどっちなんだ?
>>816-818 touchImagesでの画像キャッシュっていうのは
loadImagesで読み込む際に外部ファイルから読み込むのではなくて
メモリ上のデータを読み込むのに使われてます。
外部ファイルから読み込むよりメモリから読み込む方がずっと高速なので
予めキャッシュに入れておくことで画像読み込みを高速化できます。
この場合、ただ読み込み元が違うだけで個々のレイヤのグラフィックハンドルは別々に作成されるから
読み込めば読み込むほどメモリを消費することになります。
一方、assignImagesの場合は、グラフィックハンドルをコピーするだけなので
画像の読み込み自体が行われません。assignImagesで複数レイヤに画像を使っても、
画像自体の使用メモリは最初に読み込んだ画像のみです。
ポインタをコピーするだけだから、最も高速です。
実際の操作として何が違うのかというと、
例えば、layer1、layer2、layer3の画像をそれぞれassignImagesで共有させた場合、
layer1の画像をfillRectなどで塗り潰した場合、layer2、layer3の画像も変化します。
キャッシュからそれぞれに同じ画像を読み込ませた場合は、
それぞれ異なるグラフィックハンドルなわけで、
layer1の画像に変更を加えてもlayer2、layer3は変化しません。
どういうレベルとか関係なく、キャッシュと共有とでは内部処理そのものが違います。
ちなみに、通常loadImagesで同じ画像を読み込んだ場合には画像の共有はされていません。
値渡しと参照渡し
>>822 ソース読んできた。C++のソースがぐちゃぐちゃになりやすいのかDee氏のソースが汚いのか悩んだJava厨です・・・(°ω °)
メジャーver上げる度ソース捨てるのって保守性を確保する理由もあるんじゃ・・・w
バイナリだろうとテキストだろうとファイルにアクセスするクラスは実装されてるのにTJSから直接使えんのね。
#ところでお前ら実装の話になると黙るのに憶測で話すとレス伸びるなw
おまいらの話なんて\(^o^)/ワケワカラン
ほとんどKAGしか使えない人間の俺にはどうでもいい
コールスタックについて質問があります。
ロード画面を kag.callExtraConductor('savescreen.ks','*showLoad') で呼び、
*showLoad
[layopt layer="message0" visible="false"]
[layopt layer="message1" visible="true"]
[current layer="message1"]
ボタン表示
[s]
[return]
としています。実際はクロスフェード処理など入れてありますが省略します。
ここから栞のロードをするにしても、ロード画面を閉じるにしても、
[s] で止まったまま [return] に行かず、スタックが溜まったりしないのかと
心配になったのですが、実際はどうなのでしょうか?
止まるだろ。普通に考えて(´・ω・`)
>>826 [return]で戻らないなら
kag.process('savescreen.ks','*showLoad');
でいいじゃないか
>>682 瑣末な、気付き。
[style linespacing=40]
[link 〜]・・・[endlink][r]
[style linespacing=20]
[link 〜]・・・[endlink][r][s]
で、最後の[r]タグがないと、
リンクと半透明矩形の位置がずれるのネッ。
p.s.
>795,796
ツッコミ、サンキュー。
mail欄に sageですね。おk?
どなたか解る方がいらっしゃったら教えてください。
[locate x=50 y=50][link onenter="kag.process('','*画像on')" onleave="kag.process('','*画像off')"
exp="kag.restoreBookMark(0), kag.se[0].play(%[storage:'効果音.wav'])"][emb exp="kag.getBookMarkPageName(0)"][endlink]\(一行)
・
・
*画像on
@image layer=0 top=50 left=500 storage=画像 visible=true
@s
*画像off
@freeimage layer=0
@s
以上のようなタグでロード画面を作ったのですが、ある特定のラベルをここから読み込むと
「シナリオファイル ***.ks 内にラベル *画像off が見つかりません」
というエラーが出ます。そのラベルに特に変わった部分はなく、他の所と同じマクロで
記述しているものなのですが、他のラベルでは普通に飛べるのに、そこだけ何度やっても
ダメでした。試しに*画像offと同じksファイルにぶちこんでみたんですが、
エラーは出ずに止まりました。(*画像offのsタグのせいだと思われます)
onleave処理がズレてるのは想像つくのですが、何故ここだけなのかが解りません。
とりあえずラベルの前においてあったトランジションをラベルの後に移動したら
回避できたのですが、他のラベルも殆どがトランジション後に書いてあります。
もうさっぱり訳が解りません。
1000近くあるセーブラベルの全部で試したわけではないので、他にも同じ現象を
起こすラベルがありそうで怖いです。
tjsが解れば何とかなるかも、とリファレンスと格闘してみたのですが、
ちんぷんかんぷんでした……。
原因と対処方法をご存知の方がいらっしゃいましたら教えてください。
>>828 >>826がkag.processじゃなくてcallExtraConductor使ってるのは
ロード画面閉じてそのまま物語を進められるようにじゃないかと。
>>830 別のシナリオファイルにジャンプした後にonleaveが発生してるんじゃないのか。
んでトランジション中にエラーが出てるんだろう。
てか何でkag.processの引数にシナリオファイルを指定しないの。
833 :
830:2006/12/08(金) 00:41:46 ID:jtmrwzyF
>>832 レス有難うございます。
kag.processにks指定していないのは、*画像onと*画像offが同ファイル内だからです。
件のラベルは別のシナリオファイルなのですが
@背景画面切り替えのトランジション(マクロ)
*ラベル|
@ct
@メッセージレイヤ切り替えて非表示>表示のトランジション(マクロ)
文字表示
という形になっていて、エラーの発生しないラベルも同じように記述しています。
背景だけが表示されてエラーで止まるので、ジャンプした後にonleaveが
発生してるんだと思います。
(でも同じように記述してある他のラベルではエラーが起きないんです。謎すぎです)
この問題のラベルを
*ラベル|
@ct
@背景画面切り替えのトランジション(マクロ)
@メッセージレイヤ切り替えて非表示>表示のトランジション(マクロ)
文字表示
にしたらエラーが出なくなったのです。謎すぎです。
834 :
830:2006/12/08(金) 01:30:03 ID:jtmrwzyF
連投すいません。今とんちんかんなレスをしたことに気付きました。
ksファイルを指定したら、止まります。(*画像offのsタグの仕業)
>>834 これではいかんの?
onleave="kag.fore.layers[0].freeImage()"
それは吉里吉里userに言っているのか開発者に言っているのか
>830
何でもかんでもtjsで教えるのもよくないかもしれないけど、使いまわすなら
>>460も便利だね。
製作がんがってください。
任意のクケイ領域にリンクを設定する方法は画像を用意するしかありませんか?
locate
>>830 kag.processってタグで言えばジャンプでしょ?
この使い方はいくらなんでもKAGから外れすぎではないかと思う。
KAGの実装から遠い動きをさせるなら素直にTJSを挟むべきかと。
画像の読み込み、On・OffなんてTipsにさえならない基本だし。
この先役に立つから身に付けておく方が吉でしょ。
画像のON・OFFなんてそれこそvisibleでいいような
>>839 透明なメッセージレイヤを用意
全角スペースで埋めたリンクを置く。
動作未検証。
動いたとしても、ソース見られたらはずかしーw
>839
@locate x="縦位置" y="横位置"
で位置指定ってことね、念のため。
横と縦逆だった…
>836
4年もお前何してたんだ? 超えたいならもっとがんがれよ。
>>839 俺の使ってる荒業的なmacro。属性は普通のbuttonの属性+ x, y, width, height
@macro name="rectBut"
@button graphic="ダミー画像" target="%target" storage="%storage" onleave="%onleave" onenter="%onenter" exp="%exp"
@eval exp="mp.links_obj = kag.fore.messages[0].links[(kag.current.links.count-1)].object"
@eval exp="mp.links_obj.left = mp.x,mp.links_obj.top = mp.y,mp.links_obj.width = mp.width,mp.links_obj.height = mp.height"
@endmacro
これで枠つきの文字ボタンが出来る。tjsで直接ボタンを作らないほうが、タグで消せたり何かと便利。
ボタンのcaptionプロパティに文字を入れると、それが表示される。ここら辺はYesNoDialog.tjsを読むと分かりやすい。
で、枠つきじゃない、本当にただの矩形ボタンが欲しかったら、最後に
@eval exp="mp.links_obj.imageWidth = mp.width*3,mp.links_obj.fillRect(0,0,mp.width*3,mp.height,0),mp.links_obj.Butt_imageLoaded=true"
とか入れれば、無色透明のが出来るはず。
fillRect程度のtjsを理解してれば、色んな矩形ボタンを同じマクロで作れるはず。
興味で聞くんだけど、
画像も字も使わずにリンクを設定するってのはどういう状況で使うんかな?
>836
吉里吉里エンジンそのものは(当時でも)それぐらいできる能力は十分にあるんだが
あれがすごいのはそのエンジンというよりも(もちろんエンジンもすごいけど)と
その演出方法やいかにそれっぽく見せるかの技術なのでおまえら頑張れよとしか言えない
>>848 キャラクターのあたまをなでるとか、
タッチ系イベントがいろいろあると思いますよ?
↓のままだと *メニュー 内に表示されたボタンは反応しないのですが、
1行目の [button] をコメントアウトして2行目の [jump] だと反応するようになります。
[button target="〜"] と [jump] で飛ぶのはどのような違いがあるのでしょうか?
このへんの作法がいまいち理解できてなくて行き詰まっています。
ーーーーーーーーーーーーーーーーーーーーー
[button graphic="image/title_btn_start.png" target="*start"]
;[jump target="*start"]
[s]
*メニュー
[current layer="message2"]
[position layer="message2" visible="true"]
[locate x=0 y=0]
[button graphic="image/cfg_save.png"]
[current layer="message0"]
[return]
*start|スタート
[cm]
[button graphic="image/msgBox_menu_load.png" exp="kag.callExtraConductor('','*メニュー')"]
あ[l]あ[l]あ[l]あ[l]
いやもっといろいろわかってないだろ。
いちどすっぱり全部忘れて位置からやりなおせ。
853 :
851:2006/12/08(金) 15:27:15 ID:F4ZENXel
>>852 はい、まさにいろいろわかっていない状態です。
なので「いろいろ」の部分を具体的に指摘していただけると助かります。
どうかよろしくお願いします。
つ【チュートリアル:選択肢を使おう】
>>854 ありがとうございます。
選択肢、ボタンを使う時は [s] で待たせておくということがおっしゃりたいのでしょうか?
試しに「*メニュー」内のボタンの次に [s] で待たせるとボタンは反応するようになりました。
ところで下記のようなロードボタンだった場合、サブルーチンの中に入ったまま
栞をロードしてしまうのではないかと思うのですが、本来このような書き方はしないのでしょうか?
ーーーーーーーーーーーーーーーーーーーーーー
[button graphic="start.png" target="*start"]
;[jump target="*start"]
[s]
*start|スタート
[cm]
[button graphic="image/menu.png" exp="kag.callExtraConductor('','*メニュー')"]
あ[l]あ[l]あ[l]あ[l]
*メニュー
[current layer="message2"][position layer="message2" visible="true"][locate x=0 y=0]
[button graphic="load.png" exp="kag.restoreBokMark(0)"]
[s]
[return]
>>839です。
MessageLayer、addButtonの
object.loadImages(elm.graphic, elm.graphickey);
を
if(elm.graphic!=""){
object.loadImages(elm.graphic, elm.graphickey);
object.width = elm.width;
object.height = elm.height;
}
と変えたら出来ました。お騒がせしました
嘘つきました…
if(elm.graphic!=""){
object.loadImages(elm.graphic, elm.graphickey);
}
else{
object.width = elm.width;
object.height = elm.height;
}
です…
>>857 目標クリアおめでとうございます。
それ、いいね。偽クリッカブルマップとしてお気軽に使えそう。
次はマウスカーソルを書き換える話ですか?
手とか舌とか唇とかw
…歳がわかるなこりゃ
>>858 おまいが何のことをいってるのか、幼い俺としてはさっぱりわからないが、
>>857のやり方だと枠が出るから無理だと思うぞ。
でも
>>857の処理は使い勝手が良いな。
caption属性を受け取るようにして、ボタンのフォントにレイヤのフォントを参照させれば
普通にbuttonタグが文字ボタンとして使えそう。
860 :
830:2006/12/08(金) 19:00:24 ID:jtmrwzyF
830です。アドバイス下さった方々、有難うございました。
>>835 それでやってみましたが、全く同じ状態になりました。
でもそっちの方が無駄がなく綺麗な書き方なので、別の所で使用させて頂きます。
>>838 やってみましたが、別途呼び出しの方だと栞の文字が出ず、
直接記述の方だと画像が出ませんでした……さかのぼってログ見て
ダミー画像先に出してみてもダメでした。多分私に応用力がないせいかと思います。
そのまま置き換えたんじゃダメなんですね、きっと。
温かいお言葉有難うございます。がんがります。
>>841 TJS身に付けたいんで、じっくり頑張ってみます。
今はまだリファレンスの説明文すら地球外言語にしか見えないんで先長そうです。
折角ご助言頂いたのに、気持ちの良い報告ができなくて申し訳ありません。
自分の無能さが悔しいのでもうしばらく頑張ってみますが、
それでもダメだったらおとなしく画像は外そうと思っております。
自分の力量に見合わないことをしてバグに対処できないのではどうしようもないですので。
>>859 ホントだ…
opacity=0にしてたから気付かなかった…
>>847のと組み合わせれば枠も消えるんじゃないですかね?
公式の「ともこ」って「同人ゲーム制作ガイドブック」の著者か
else{
object.width = elm.width;
object.height = elm.height;
object.fillRect(0,0,object.width,object.height,0);
object.Butt_imageLoaded=true;
}
で良さそうです。
一応つけていますが、画像読み込んでないのでfillRectは不要かもしれません。
>>863 imageWidthをwidth*3にしとかないと、画像のない領域ウンヌンみたいなエラー吐かない?
property width
{
setter(x)
{
super.width = x;
imageWidth = x*3;
//Butt_imageLoaded = false;
update();
}
getter
{
return super.width;
}
}
としていたので気付きませんでした…
else{
object.width = elm.width;
object.imageWidth = elm.width*3;
object.height = elm.height;
object.fillRect(0,0,object.imageWidth,object.height,0);
object.Butt_imageLoaded=true;
}
とすればいいのではないでしょうか?
>>862 こんな今更な質問をかましてくるやつが
吉里吉里解説本出してんのか…
if(elm.graphic!=""){
if(Storages.isExistentStorage(elm.graphic)){
object.loadImages(elm.graphic, elm.graphickey);
}
}
else{
object.width = elm.width;
object.imageWidth = elm.width*3;
object.height = elm.height;
object.fillRect(0,0,object.imageWidth,object.imageHeight,0);
if(elm.caption!=""){
object.font.height = elm.fontsize;
object.caption = elm.caption;
object.captionColor = elm.captioncolor;
object.Butt_imageLoaded=false;
}
}
で文字ボタンにも対応。kag側からも呼べるベルはずです。
object.fillRect(0,0,object.imageWidth,object.imageHeight,0);
> object.Butt_imageLoaded=true;
if(elm.caption!=""){
↑これ抜けてました…
そろそろ消えます…
@button width=256 height=32
だと見えない幅256,高さ32のリンクが、
@button width=256 height=32 caption="test"
だとtestと書かれたボタンが出来ると思います
>860
838だけど、栞リンクが沢山あるならこの方がいいかな。
[link onenter="image_on(横,縦,'画像名')" onleave="image_off()" exp="lord_exp(栞番号)"]
[emb exp="kag.getBookMarkPageName(0)"][endlink]
[iscript]
function image_on(x, y, image){kag.fore.layers[0].loadImages(%[storage:image,left:x,top:y,visible:true]);}
function image_off(){kag.fore.layers[0].visible=false;}
function lord_exp(num){kag.fore.layers[0].visible=false;kag.se[0].play(%[storage:'効果音名']);kag.restoreBookMark(num);}
[endscript]
ロード用の関数も付けときました。
他のリンクで画像のオンオフ使いたいときはimage_onとimage_offで。
ちなみに[iscript]〜[endscript]の部分は呼び出す前に定義しておかないと意味がないので、first.ksの頭にでも置いてみて。
補足。kag.fore.layers[0]は「前景レイヤ0の表画面」という意味なので、
違うレイヤを使う場合は中の数字を変えてください。
他のレイヤと被らない番号にしておくといいかな。
871 :
830:2006/12/09(土) 02:43:13 ID:eHilxVqu
>>869 動きました!! 画像も出ました!! あああ、有難うございます!!
凄いです…本当に何とお礼を申し上げたら良いやら……。
ああ本当に止まらないで動いてます……感激です。
これで先に進めます。ついでに床じゃなくて布団で寝られます。
本当に有難うございました。
「ちんぷんかんぷん」から「書けないけど見たらなるほどと思う」に
地味に成長したので、真面目にTJS勉強しようと思います。
872 :
855:2006/12/09(土) 16:08:22 ID:xMAK8301
>>855 について反応がありませんが、そんなに奇妙な質問でしたでしょうか?
もしローカルルールに反するような書き込みでしたら申し訳ありません。
何に躓いてるのかわからない
>855
動作的には問題ないと思うよ。
作法や書き方については、自分でリファレンスや講座サイト見て回ったほうが早いし確実。
すいません。ものすごい基本的な質問です。
辞書配列からキーをひとつずつ取り出すにはどのように書けばいいですか?
javascriptの
for( a in dic )
みたいなことをしたいです。
TJS 使った弾幕STGとかって、前例ありますか?
krkr.STG
>>876 すいません。リファレンスの関連しそうなところを一通り探してみたのですが見つかりませんでした。
どのへんでしょう
リファレンスには載ってないんだなこれがw
俺もKAGのソースとか読んでて気付いた。
連想配列を配列にコピーするだけじゃなかったか?
>>880 TJS2リファレンスの「Arrayクラス」「assign」に書いてあるよ。一応。
載ってる。
DictionaryをArrayにassignするだけ
載ってんのねw
こういうレコードの持ち方って非OOPで嫌いだw
>>866 ライターがコード書ける訳ないだろ?
コード書けなきゃ実装を追えないんでそこら辺の奴と同レベル。本出すのはADVエンジン使うのは簡単で売れるから文章書けてああいうのに興味があるから手を出しただけだろ
コード書けたり、wwwの歴史を知ってるライターってホントに減ったよ。適当なとこの間違った解説サイトに騙されてても本人は気付かない。
>>885 C++ なプラグインから iTJSDispatch2 経由でさわるとキー一覧取得の口があるんだけど、TJS2 の構文にはないんだなぁ。
たしか中途削除の処理とかをきちんと考えるのがめんどくて放置したままみたいなことを dee たんから聞いたような気がする。
TJS3 でははいるんじゃね?
ちなみに Win32OLE とかのプラグインを使って Javascript から吉里吉里をさわると for でまわせる。
887 :
875:2006/12/10(日) 02:19:17 ID:YhXpe+sU
できました!ありがとうございます!
>>886 列挙属性の付いたメンバ一覧を覗けるようになってんだっけ?
吉里吉里2でfor-inを実装して欲しかったな。インデックス変数を隠蔽したい
実装はされてるけどTJSから使えないのが結構あるからな吉里吉里は
ところで現行の吉里吉里のようにメディア系拡張命令のみでガリガリ最適化するのとDirectXやOpenGL使うのってどっちが楽なんだろ?
移植性の問題で拡張命令でゴリ押ししてるんだろうけどOpenGLじゃ何がダメなんだ?
ゲーム向けのグラボじゃOpenGLの対応がイマイチとかOpenGL用ドライバがあんまない以外になんか問題ある?
やっぱ、厨が「動きません・分かりません・お願いします」か?
まあ実質エロゲエンジンの範疇超えてんのは誰の目からも明らかなんでそこまでリスク負いたくないとかもあるんだろうけど
実行速度考えるとエロゲエンジン以外思いつかんしな。エロゲーマーは動けば気にしないからな・・・
お前はとりあえずその無駄な改行をなんとかしてくれ
>
>>888 OpenGLはベンダの拡張が多すぎてカード間の互換性がなさすぎる
891 :
名前は開発中のものです。:2006/12/10(日) 04:05:42 ID:9GrqlK4q
>>888 Deeさん自身DirectXやOpenGLに詳しくないってのもあるだろうな
本業Linux系開発な人らしいし
>890
まあそうだな
>本業Linux
ああそうなんだ。俺がlinux知った時はまだカーネル1.0すら出てなかったな。httpdが未だにアパッチなのは驚いたし
俺もDirectXとかOpneGL解らんw
質問
メッセージレイヤーの
frameOpacityを0にしても背景色が消えない場合ってナニをすれば消える?orz
ちなみに
setPosやvisibleは同じタイミングで呼ぶと反映されますorz
>>893 メッセージレイヤの背景の透明度は、レイヤがクリアされた瞬間に反映されるようになってる。
俺も良く理解しているわけではないが、
メッセージレイヤはあくまで一枚のレイヤで、[cm]などを通過するたび
「透明で塗り潰し、背景描画、その上に順次文字描画」という動作をしてるから、
文字を表示したまま背景の透明度だけ変えるというのはできないはず。
文字と背景を別々に捜査するなら、前景レイヤとかで背景を代用するのが正しい手法なんじゃないかな。
あと質問の仕方がわかりづらいよ、ヤクザかおまえは。
896 :
名前は開発中のものです。:2006/12/11(月) 01:18:46 ID:H3z/Ju9W
とりあえずerタグとclearメソッドは効果が有りませんでした…
どういう状況の時にこうなるのかわかれば細かい説明もできるのですが…
なんか知らんけどimageModifiedというメンバをtrueにしとかないと、
レイヤの再描画が行われないらしい。むしろ再描画しないで文字だけ消せてるってことは、
俺の解釈はさっぱりまちがってたらしい。
なんかもうそこまでするなら、setPositionメソッドか、positionのタグハンドラを呼び出したらどうだろう。
kag.current.setPosition(%["opacity"=>0]); とか、
kag.tagHandlers.position(%["opacity" => 128]); とか。
メッセージレイヤの上に浮動レイヤがあって実際にはそれに文字が描画されてる。
F12のレイヤ構造ダンプを見るとわかる。
01:56:23 表メッセージレイヤ0 (object 0x04E52498) (native 0x04E61518) (16,16)-(624,464) (608x448) visible index=1000000 ltAddAlpha
01:56:23 行描画用浮遊メッセージレイヤ (object 0x04C22C84) (native 0x04D70408) (4,2)-(620,42) (616x40) invisible index=0 ltAddAlpha
900 :
名前は開発中のものです。:2006/12/11(月) 02:20:09 ID:H3z/Ju9W
897氏の言う通りimageModifineをTRUEにしたら反映されました!d
よく見たらclearの中身でそういう分岐してました…
1〜52の数が書かれた52枚のカードをAとBの2人が引くとします。
(つまりトランプなんですが)
乱数を使って、Aが引くカードを任意の1枚にすることは簡単ですが、
Bが引くカードは1〜52の任意の数でありつつAの引いたのとは
違う数でなければなりません。
私が考えた方法は、
1.まずAが1〜52の乱数で任意の数を引いた後、その数を"Aが引いた数"
という変数に代入します。
2.次にBも1〜52の乱数を引き、ifコマンドでそれが"Aが引いた数"と同じだったら、
またBは2.に戻る。違う数が出るまでくり返す。
…というやり方にしました。
何だかスマートじゃなくて気になるんですよね。(´д`;)
TJSが難しくていじれないのでKAG内で処理したいんですが、そうするとやっぱり
この方法しかないでしょうか?
分相応。
>>901 2枚程度ならそれで充分。
もっと数が多いならシャッフルさせた方がいいが。
せめて「トランプ 吉里吉里 ランダム」ぐらいでググったらどうだ(´A`)
906 :
901:2006/12/12(火) 22:36:52 ID:0ZHrgkcp
アドバイスありがとうございます。とりあえずこれはこのままでいいみたいですね。
>>905 なるほど、モロそれでググッたら色々出てきました。参考にして勉強していきます。
xchgbgmってvolume引数無視してる?
らんか氏のところで拾ったどこでもセーブを使おうと思ったんですが、何をしたら
マクロが発動するのか分かりません…。
マクロっていうのはマクロネームをさせたい動作の前に記述するんですよね?
どなたかお助けください…。
>>908 見てみた。
「readme」と「auto(略)test.ks」<重要 の中全部読んだ?
>>909 ええと、一応は目を通したつもりなんですが。
とりあえず文末の[p]を[plc]に書き換えてみたら、うまくマクロが発動してくれる
ようになりました。こんなやり方でいいんでしょうか?
>>910 こんなやり方というか、他にやり方がないような気がする。
初心者だと思うけど、ゲーム作り本格化する前にもっと色々勉強した方がいいよ。
解るようになってから作業した方がずっと楽だし楽しいから。頑張って。
>>911 なるほど、これで良かったんですね。変な話ですが、もう少しスマートなやり方が
あるのだとばかり…。
ところで、それは何とかなったのですが、セーブデータのラベルを
@labelopt title="どこでもセーブ"
の、どこでもセーブ以外の物に変えても、常にその文字だけになってしまうのも
仕方ない事なんでしょうか。
シナリオの栞の名前になんとかリネームしてくれないんでしょうか…?
初心者だと思うけど、ゲーム作り本格化する前にもっと色々勉強した方がいいよ。
解るようになってから作業した方がずっと楽だし楽しいから。頑張って。
>>912 913じゃなくて911言った本人の方ですがw
>もう少しスマートなやり方があるのだとばかり…。
て作った人にすごく失礼じゃないか? 好意で公開してくれてるものですよ?
私もそうだけど、自分ではできない技術を有難く使わせて頂く立場で、
不満があるなら使うなって言われてもしょーがないと思うけど。
>>908はマクロが何なのかすらよくわかってないみたいだな。
どこでもセーブロードどころの話じゃねえだろ。
まずKAG3リファレンスを隅から隅まで読め。
>>912 替えたい範囲の先頭にラベル名入れるだけ
ヘルプとか講座にやりたいことのほとんどが載ってるからそれ見ながらやれ
>>913 それはそうなんですが、そうも言ってられない状況でして…。
>>914 そういう意味で言ったのではなかったんですが、少しイライラしてて
言葉の使い方が悪かったみたいです。開発されて公開までされた作者の方には
感謝以外の何物もありません。使いこなせない私がヘッポコなだけで(汗
それもともかく、とりあえずどこでもセーブは何とかなりそうです。栞タイトルも
シナリオファイルごとに置けば、それに従ってリネームされるみたいですね。
あとは右クリックと併用できれば言うこと無しなんですが…これはなかなか難しい
みたいですね…。
お騒がせして申し訳ありませんでした。
>>915-916 すみません。KKDEで作業してるもので、常に動作チェックしながらタグ打ちしてますと、マクロは
頭のfirst.ksから始めないと読み込んでくれないですので、どこからでも飛べるサブルーチンの
方ばかり使ってまして。マクロ関係は全部サブルーチンに飛ばしてるというのはあまり合理的では
ないんでしょうか。やっぱり。
それでも少しづつ分かってきましたので、とりあえずこのまま進めたいと思います。お騒がせして
すみませんでした。
よーしみんな落ち着こう。
俺たちに出来るのは、笑顔で
>>918を送り出すことだけさ。
少なくとも俺はそれしか出来ない。
ちゃうちゃう
919にできることは次スレをたてること
サブルーチンもなにもマクロ専用シナリオを最初に一回読めば終わりだろ
早いよ。いらねーよ。やらねーよ。
あー、でもそろそろテンプレ案でも作りますかね。KSP含めリンク切れもありますし。
では吉里吉里KAG関係のサイトで有用なものを探しましょうか。
>>918 笑って見送るだけでもアレみたいなので。
>>921のやり方をやって、で頻繁にマクロをいじるような設計ミスに陥ってるけど
デバックをシナリオの途中からやりたいというのなら、
デバッグ開始地点でマクロ専用シナリオをcallで呼べばマクロは更新されますよ。
あとマクロよりサブルーチンの方が読み込む動作は遅いと言われてますよ。
あとリファレンスは、初心者が予想するより遥かに良いことが書いてあるから、全部読もうね。
922の前半はアンカ
>>920ね。
あと俺はKKDE使ったことないので変なこといってたらゴメンね。
いや、すべては908の横着と不勉強からくる無知のせいであって
エディタは何一つ悪くない
>>921-924 それはつまり、細切れのシナリオファイルの冒頭に、常にマクロ用の
シナリオファイルをcallするって事ですか?
今にして思えば、その方が良かったかなぁと思います(汗 というか
次からはそうしたいと思います…。
そもそもマクロも何も、何をどう記述すればちゃんと動くのかを確かめながらの
タグ打ちだったので…。多少慣れてきた今ならその方が良かったと思うんですが、
今さら直すのも辛いので(汗
ホントに勉強不足なのは確かですね。それでも放り出すわけには行かないので
なんとかがんばります。ありがとうございました。
吉里吉里のサイトっほんとにないな・・・
ユーザー層が違うのかね
俺自身、解説サイトが欲しいと思ったこと無いからなぁ
具体的にどういう解説サイトが欲しいのか
手っ取り早く作りたい→リファレンス読まない
何でこういう奴が多いんだろうな…矛盾してる気がするんだが
そりゃリファレンスに書いてあることがどれだけ役に立つか
想像が及ばないからだろう
ところでみんな安定版使ってるの?
自分は今までそうだったんだけど、新しくゲーム作ろうと思って
開発版覗いたら便利そうな機能がいつの間にかついてて、
開発版使ってみようかなぁという気がしてる。
開発版以外使ったことがない。
俺は安定版。
機能には惹かれるけど、後々面倒そうだしなぁ
>>907に関してレスがないのは
1引数は無視されてあない(
>>907の環境の問題
2リファレンスか何かに無効であると書いてる
3
>>907が嫌い
4その他
どれ?
3と4だな
3と4だね
1じゃないのか…
じゃあ対応しとくか
っていうか吉里吉里の環境ぐらい書かないとどうしようもないけどね。
最新の開発版ではxcgbgmのvolumeは使える。以上。
callで読み込んだサブルーチンを無効にするにはどうすればいいんでしょうか
>>938 何をどうしたいのかさっぱりわからないのだが…
・特定条件でサブルーチンに飛ばないようにしたい
・サブルーチン内で処理を中止したい
・サブルーチン内で読み込んだマクロを使いたくない
・サブルーチン内で定義した変数を元に戻したい
・なにもかもなかったことにして南の島で楽しく暮らしたい
どれだ
サブルーチンが何か理解しておらず
サブルーチン内から別のサブルーチンを呼び出そうとして失敗してるに1ペリカ
いや、
>>938は[call]は知ってるけど[return]を知らないんだよきっと。
・サブルーチン内で読み込んだマクロを使いたくない
で938が908だったら切ないな……。
個人的には上から5番目が好きだ。大好きだ。
940の一番目か
とりあえずcallにifつけて条件分岐させとけばいいんだぜ?
違うと観た。
>>944はサブルーチンとプラグインの違いも分かってないと思うんだぜ
>>944はとりあえず、readmeを読んでから南の島へ旅立ってください。
もしreadmeに載っていないような行為、例えば一度読み込んだプラグイン自体を破棄するという、
まず必要とされないような愚かな行為がしたいのならば、
kagにはremovePluginという関数があるので使い方を覚えてください。
使い方を覚えたら南の島へ旅立ってください。
あー、なるほどな
callで呼んで組み込んでるからか…
ふむむ
>>「シナリオ解析モード自動切替プラグイン」は、シナリオ解析モードが、
>>ch r l 以外のタグがきた場合に KAG2.x 非互換に、
>>それ以外の時に KAG2.x 互換に、自動的に切り替わるプラグインです。
これを組み込んだんだけど途中から必要なくなった、ということでよろしいか?
組み込み方は[call]で合ってる。
あとは「途中で必要なくなった」(それ以降使わない)のか
「かなり長い間必要なくなった」(一時的に必要ない)のかだけど…
意図した動作と違うことばかりで困ってるのなら、プラグインの使用をやめて
KAG2.x 非互換かKAG2.x 互換か、どちらかで全体を統一したほうがいいと思う。
もしくは南の島。
注意書きとか説明書って、あっても無視する人間多いよな
>944
もういいからLivemakerでも使っとけ
ドキュメントも読まない人間には吉里吉里はキツいぞ
どっちかっつーとTJSの使い方を例を挙げながら解説してくれる親切なサイトが欲しい
>>952 乙。
Project Lipsは
>このコーナーは2006年12月31日をもって閉鎖します。ご了承ください
だから抜いたほうがよいのでは。
OUTFOCUSのWikiのブックマークに吉里吉里関連サイトのリンクまとまってる
支援ツールとか講座リンクとか
deeさんの日記
2006年12月15日
ウィニー開発者に罰金150万円の有罪判決
さいですか。
僕は逮捕されるとしたら何罪?
…思い当たる節があるのかしら
957はアイロニーについて調べておくこと。
アイロニー?
swatchの時計しかしらない
>>959 それは958に対するアイロニー返しなのか
もしかしたら、ものすごくバカな質問なのかもですが、吉里吉里を起動させた
直後に、2回カーソルが点滅しますけど、あれを消す方法っていうのはあるん
でしょうか?
リファレンス等を見たんですが、どうも見当たらなくて…。
日本語でok
吉里吉里/KAGでなくて吉里吉里のこと?
カーソルってなに?(マウスポインタのこと?)
>>957 著作権違反なゲームとかが吉里吉里で作られているからじゃね?
>>962 XPでノンアクティブなウインドウが注目されたいとき(変な表現だが)に点滅するアレじゃないか?
でもそれカーソルっていわなくね?
>>962 吉里吉里/KAGです。おおむねデバッグも終わって、あとはこれだけを何とかしたいと
思ってるんですが…なかなか…。
カーソルと言うか、改ページの際のポインタとでも言うんでしょうか? 右向きの矢印です。
実行ファイルに変換してもデバッグの際の実行にしても、必ず最初に2回クリックを要求される
んです。
そのうちに何とかなるか、と思って放置してたんですが、ここにきてどうしようもない状態に
なってしまいました。
>>966 俺は全く無いが。first.ks の中身確かめれ。
いらん[l]が入ってるんじゃないのか
…なんか最近、こういう奴が急に増えたな。
・使う用語が不適切なため、聞きたい事が不明瞭
・初歩ミスが原因で、調べる努力をしていないのが明白
・でも自分はできるだけのことはしているかのような態度
同一人物か?
ところで次スレのテンプレは?
[l]を忘れてるとかトンチンカンなのでなければ…
global.ignoreCR = false;にしてるのに改行をエスケープしてないマクロとかがある?
その改行がつもりつもって2ページ分になってるとか
>>967 いえ、例えばよくある
[wait time=200]
*start|スタート
[cm]
こんにちは。
というのを記述して、そこから実行しても、冒頭で2回クリックを要求されるんです。
ただ、ラベルごとに実行したら、必ず実行直後にそうなりますが、シナリオファイルを
またぐと出ません。何かTJSの方でおかしな事をしてしまったんでしょうか。
>972
俺たちはテレパスじゃないので、その内容じゃ分かるわけねー
最低でもどんなプラグインを使ってるとか、
Config.tjsやAfterInit.tjsをどうしてるとか、判断材料を書け
>>972 全部 up
そして template から作り直す
わいせつ図画頒布の幇助罪
>969
多分そうじゃね?
うちのオカンにそっくりだ
>>972 だとしたら最初のクリック待ち記号より前に問題があるんでしょうな
first.ksとかマクロ読み込み用サブルーチン内とかがありがち
>969
端的な症例しか出さないでそれで一番ありがちな例をあげると
違うと反論して詳しい症例をあげはじめる。
でもそれでますます一番ありがちな例であることがわかってくるw
>>972 推測を前提に書くが、
まずConfig.tjsの26行目付近を確認。
;global.ignoreCR = false;
恐らくこうなってると思うので、これを
;global.ignoreCR = true;
にして、起動。これで問題の現象が出なくなったら、皆の指摘通り改行が原因。
そのままゲームを進めてみて、気になるところがなければ解決。
文章が詰まっている箇所が気になるなら、以下のどちらかで直す。
1・first.ksの最初で[call storage="〜.ks"]として読み込んでいる全ての.ksファイルを開き、
[〜]という記述のある全ての行の後ろに\を付ける。その場合、;global.ignoreCR = false;に。
2・シナリオ中の改行したい部分全てに[r]を付ける。その場合、;global.ignoreCR = true;に。
BGMの音量をある場面まではあまり大きくせず、途中から自然に上げたくて
吉里吉里2リファレンスを見て
[kag.bgm.fade(to, time, delay=0)]
で行けるかなーとやってみたんですが、ダメでした。
to と time にはそのまんま数字入れればいいんじゃないかと思うんですが
delay=0をどうしたらいいのか、なぜこれだけ等記号が付いてるのか。
(90000, 20000, 0)とか(90000, 20000, 0=0)とかやってもダメでした。
やむなくbgmoptタグでクリック待ち毎に微妙に上げていくという手段を
取ってますが、違和感が。(プレイヤーは作る側ほど気にしないだろうが)
delay=0って何でこれだけ赤い字で0付いてるんですか?
おはようございます。
>>979 ;global.ignoreCR = trueにしてみますと、今度は¥マークが4つか5つほど現れるようになりました。
*start|スタート
[call storage="gvolume.ks"]\
[call storage="windowzoom.ks"]\
; どこでもセーブプラグインの読み込み
@call storage="SavesAnywhere.ks"
; クリック待ち+セーブラベル+文字クリア用マクロ
@macro name="plc"
@p
@awsave
@cm
@endmacro
;---
@call storage="rclick_tjs2.ks"
@rclick call=true storage="rclick_tjs2.ks" target="*rclick" enabled=true name="メニュー(&S) ..."
[freeimage layer="base"]\
[gvolmenu name="BGM(&B)" control="bgm"]\
[gvolmenu name="効果音(&S)" control="0,1,2"]\
[loadplugin module=wuvorbis.dll]\
これが冒頭の記述なのですが、
[call storage="gvolume.ks"]
[call storage="windowzoom.ks"]
の二つを読み込むまで、メニューバーにはボリュームコントロールが出ないんですよね?
そして肝心のポインタ2回はその前に出ます。シナリオではない、その前に読み込むTJSで
改行をしくじってるという感じなんでしょうか。
現在のところ、どうにも原因がつかめないので、config.tjsの;initialMessageLayerVisible = false;
にして表示だけ隠してます。やっぱり2回クリックしないと進まないのですが。
>>981 よかったな、原因わかって。
皆に感謝せぇよ
あの説明でここまで読めるお前ら天才w
なんかもう最近のやりとりが……
一昔前「典型的なアキバ系」がネタにされてたような感じで、
「典型的なリファンレンス読まない人」のネタをしているようにしか見えんw
>>983 すみません…わかりません。
どうか教えてもらえないでしょうか…。
>>984 いかんくなかったです。助かりました。有難うございます。
>>985 リファレンスは毎日見てるんですが頭の中で勝手に
fadeoutbgmとごっちゃにしてました。すいませんでした。
……。まあ良いや。そのクリック待ちが起きているときに Shift+F4 押して、
出てきた画面の下から15行をこのスレに貼り付けなさいな。それで何か分かるかもしれんから。
>986
よしよし、お兄さんが対処法を教えてあげよう。
まずfirst.ksと同じフォルダにAfterInit.tjsというファイルを作り、
kag.skipToStop();
と一行だけ書く。(すでにAfterInit.tjsがあるときは先頭に追加)
あとは、
[call storage="gvolume.ks"]\
の次の行に、
[cancelskip]
と追加すればOK。やってみよう!