!,-/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ, 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 ~
>5乙
>>5 乙。
前スレの最後にあった、マクロの利点について、まとめてみた。
・可読性の向上
マクロ名に分かりやすい名称を付けることで、
何の処理をやっているかが分かりやすくなる。
単独で開発している場合は自分に対してのみだが、
複数人での開発の場合は、重要度が上がる。
・記述ミスの防止
基本的にセットで使用するタグ
(@p + @cm や、@trans + @wt など)
などは、マクロに登録しておいた方が記述ミスが減る。
(@trans後の@wt忘れなど)
・機能の一括修正
複数箇所に記述した機能を一度に修正する時に、
マクロ内を修正するだけで、全体が一度に変更可能。
無論コピペでもいいのだけど、修正時は大変そうだな、と思った次第。
まあスクリプタはコピペで良いだろ。
コピペで足りる内容で満足ならそれはそう
マクロ作っても同じ画像でないと使えないから糞 ↓ 違う画像でも代名詞使えばいけるだろ。 ↓ ああ?こんなの他の行から[image]コピペした方が早いよな。 お前らなんでこんな低機能をありがたがってんの? ↓ [image]一個のためにマクロ作る馬鹿がいるのはここですか? ↓ なに言ってんの?俺はもうマクロマスターしたんだよ その上で役に立たないと教えてやってるんだ
TJS2で最近気がついたんだが、 あるクラスのインスタンスからその内部クラスのインスタンスを生成できるんだな。 // こんな感じで。 var obj2 = new obj.innerClass( ); ポリモルフィックな実装に使うと面白そうだ。
それ、現行だとinnerClassのコンテキストはobjじゃなくてobjと同じ位置のコンテキストになったはず。 レキシカルクロージャとかの完全なサポートはTJS2ではされてない。
>>13 げ……試してみたら本当そうだったわ。サンクス。
以前書いたコードでは状態を持たないクラス&限定的な用途だったから不具合起こらなかったんだなあ。
動的スコープだったのかよTJS2.。
まあクロージャの実装は並みの苦労じゃないと言うしな。
新スレありがとう。 11と12-14の流れが違いすぎて面白すぎる。
ただの釣りだろ。
俺が絵を描くので、誰か一緒にノベルゲー作りませんか? 他の人の評価で言うと画力はセミプロ級です。
コピペで足りる内容で満足なら一人で作ったほうがいいよ 凝ったの作ってもエラーで飛ぶから
吉里吉里製の頽廃ノスタルジアは神社の扉開けるシーンでエラーでたな、 Nスクのひとかたみたいに最後の最後でエラー出るよりはましだけど。
度々すまんが、質問させてほしい。 ネイティヴプラグイン側からtTJSVariant::Type( )を呼んだときにエラーが発生するのだが、 同様の症状に遭ったり、話題に上ったりしたことないかな。 同じような記述のコードでも、発生する箇所としない箇所がある。 発生条件がいまいち特定できないから、まだ公式のBBSにも投稿してない。 あくまで推測なんだが、実体が異なるオブジェクトファイルにある関数から返された tTJSVariantのインスタンスからType( )を呼ぶと発生するっぽい。 環境はWindowsXP SP2 吉里吉里のバージョンはKKDEに同梱の安定版2.26と、開発版2.29-dev.20070612
22 :
21 :2007/11/21(水) 21:32:14 ID:2z90Z7oM
あと、コンパイラはVC++ 2005 Expressです。
>>21 実際にエラーがでるコードが示されないことにはなんとも・・・
というかなんてエラー?
メモリ系の例外なら AddRef/Release の数まちがえてるとかじゃね?
>>21 tTJSVariantのTypeは
TJS_METHOD_DEF(tTJSVariantType, Type, ()) { return vt; } /* for plug-in compatibility */
TJS_CONST_METHOD_DEF(tTJSVariantType, Type, ()) { return vt; }
こうなっているが、エラーが起こりそうな気がしない・・・。
戻り値がtTJSVariantではないってことなのだろうか。
検証用のコードがあると調べられるが。
>>23 >>24 コードが煩雑なのでだいぶ省略しますが、大まかには下記のようなコードです。
(相互依存が激しい部分なので検証用に切り離したりできないorz)
TJS_BEGIN_NATIVE_PROP_SETTER
{
// param は tp_stub.h で定義されているマクロTJS_BEGIN_NATIVE_PROP_SETTERで
// 宣言された tTJSVariant*型の引数です
if (param->Type() != tvtVoid) { // ←ここでエラーが発生する
// 何か処理
}
}
TJS_END_NATIVE_PROP_SETTER
エラー内容は、再現が難しく面倒なのでうろおぼえなのですが
「関数Type()が存在しません」という主旨のメッセージです。
吉里吉里本体のエラー通知ではなくランタイムエラーの類でした。
引数?
tp_stubが古いんじゃね?
あ、逆 多分本体とtp_stubのバージョンが合ってないんだ
29 :
21 :2007/11/22(木) 08:30:12 ID:ljUQcAqo
30 :
21 :2007/11/22(木) 10:29:34 ID:sieyIBSS
吉里吉里本体とtp_stubのバージョンを開発版最新に統一して試したら問題なく動作した。 お答えくださってありがとうございました。
callタグを使えば使っただけ、コンソールでいう所のdepthの値がどんどん大きくなっていきますが、 例えばexe起動時の状態に戻したい時など、全変数などのあらゆるものを一度初期化する時に callタグを使った情報を初期化するにはどうすればいいでしょうか? 例えば、callで飛んだ先でゲームオーバーになって、タイトル画面に戻す時など callの情報が残ったままだと不具合が出る恐れがあるので・・・
なぜcallを使う?
>>31 callで飛んだ先からきちんとreturnで戻ってるか?
Aというスクリプトがあって、そこにBやCから飛んでくるんですが 都合上、BからはjumpでAに来るんですが、Cからはcallで来る、という風になってまして Bから来てもCから来ても、ゲームオーバーの時はfirst.ksに戻す、というような時に jumpで来た時はそのまままたjumpで帰せばいいんですが、callで来た時にjumpで帰すと ちょっと都合が悪くなる・・・といった具合です
returnに戻り先を指定する要素があるのでそれ使えばー?
どういう要求でそんな奇妙な構成になるんだろう・・・ サブルーチンにしたいなら、BからもCからもcallで飛んで戻るよう統一できないのか?
>>35 jumpで来た場合にエラーが生じます。
>>36 解決策が無さそうなので、大人しくスクリプトを書き直す事にします。
ありがとうございました。
>>37 フラグ使って分岐させればいいやん。
[if exp="f.callA==true"]
[eval exp="f.callA=false"]
[return target="*first"]
[else]
[jump target="*first"]
[endif]
ガヤガヤ音ループさせたいのに 素材サイト巡ってもどこもループ用のガヤガヤ音が無い。 ので、ループさせると不自然に人ごみ音が途切れてしまう・・・
音系の板で相談しろ
つーか、付属のループチューナーでいじればそれなりにはできるだろ。
>>43 そこの人のゲームはやったことあるが
限定ジャンケンとか作っててワロタ
吉里吉里とは思えないインターフェイスだね
どうなってるのか見当もつかん
>>44 これっくらいわかるようになろうねー。
だが、センスの素敵さには正直敵わんとおもた。
ゲームも最後はソコに行き着くんだよなぁ。
ベクターランキングではツクールにボコボコだけどな。 寄生ジョーカーおもしれー。
紙芝居に毛が生えた程度のゲーム性で勝てるわけないだろ、常考
>>43 頽廃ノスタルジアのだよな?
普通にmoveだと思うぞ。
「すごい、どうやってるんだ」という技術はないよね。>頽廃 ただ、45も言っているように、その組み合わせ方・見せ方がうまい。 そして惜しむらくはシナリオがしょぼい。
>>48 テキストの裏で湯気が動いてたけどあれもmove?
プラグインかなんか使ってるのかな
>>50 moveでopacity変えながら動かしてるように見える。
プラグインなくてもできるはず。
で、 じゃんけんのやつはどうやってタイトルバーを吉里吉里のなかに埋め込んでるの? そんなタグは見当たらないんだけどもしかしてTJS?
>>52 MainWindow.tjsを改造でもしてるんでない?captionバー非表示にするように
リファレンスぐらい読んだらどうなのかね Window.borderStyle 機能/意味 ウィンドウ外見 タイプ Windowクラスのプロパティ (読み書き可能) 説明 ウィンドウの外見を表します。値を設定することもできます。 以下の値を設定することができます。 bsDialog : サイズ変更不可の、ダイアログボックスと同様の外見を持ちます。 bsSingle : サイズ変更不可のウィンドウです。 bsNone : ボーダーのないウィンドウです。 bsSizeable : サイズ変更可の一般的なウィンドウです。デフォルトです。 bsToolWindow : サイズ変更不可のツールウィンドウ(キャプションの小さいウィンドウ) です。 bsSizeToolWin : bsToolWindow と似ていますが、サイズ変更が可能です。
そんなのがあったのか。 見落としてたありがとう。 でもこれ非表示にするだけだよね? MainWindowをかなり改造してるのかな? ま、ちょっといろいろやってみるわ。
テキストをウィンドウに表示するだけでいいから、 テキストを入れるだけで完成なKAGテンプレなんてないのかね
リファレンスぐらい(ry System.inform 機能/意味 メッセージの表示 タイプ Systemクラスのメソッド 構文 inform(text, caption="") 引数 text 表示するメッセージを指定します。 caption ウィンドウのキャプションとなる文字列を指定します。 戻り値 なし (void) 説明 ユーザにメッセージを示すためのウィンドウを表示します。 ウィンドウはモーダルで表示され
58 :
名前は開発中のものです。 :2007/11/25(日) 15:22:42 ID:DZ368X4a
インスタンスのクラス名を知りたいのですが、 instanceof使って一つ一つ調べるのではなく、 クラス名が文字列として返ってくる方法ってありませんか?
59 :
名前は開発中のものです。 :2007/11/25(日) 16:55:46 ID:qQiUPt+8
TJSにはなかったような。 本来はそのインスタンスを使う側が型を知っている設計にすべき。
60 :
名前は開発中のものです。 :2007/11/25(日) 17:29:37 ID:DZ368X4a
あー、やっぱりそうですよね。 メッセージレイヤーのオーナーが何か知りたかったんですが、 地道に追いかけてみます。
ソース読めば分かるだろ。
リファレンスぐらい(ry デバッグモード コマンドラインオプション で '-debug' を指定する (「デバッグモード」を'有効'にする) と、 吉里吉里をデバッグモードで動作させることができます。 デバッグモードではTJS2の動作は低速になりますが、デバッグに便利ないくつかの機能が有効になります。 型情報追跡機能 TJS2のオブジェクトに関する情報が強化されます。 デバッグモードではない場合は、たとえば KAG で kag.saveSystemVariables の情報を得ようとしてコンソールに kag と入力しても コンソール : kag.saveSystemVariables = (object)(object 0x0279E130:0x01EB0BD4) と表示されるだけですが、デバッグモードが有効の場合は コンソール : kag.saveSystemVariables = (object)(object 0x0279E130[(function) KAGWindow.saveSystemVariables]:0x01EB0BD4[instance of class KAGWindow]) のように型の情報が表示されます (':' で区切られた2つの部分のうち、前の部分はオブジェクトの型、 後ろの部分はそのオブジェクトが動作するコンテキストです )。 この機能は、コンソールで値を表示させる場合にとどまらず、(現バージョンでは)オブジェクトが文字列に変換される過程すべてで有効になります。
■質問 選択先の文字がいっきに表示されてしまう 記述→保存→実行すると[L]が有効→再度実行→文章が一気に表示[L]が無視される まる1日行き詰っています… 初歩的すぎて申し訳ないのですがどなたか助けてください。 ■ソース さて、どこへ行こうか[l] [cm]\ [link target=*selectA]選択肢1[endlink] [link target=*selectB]選択肢2[endlink][s] *selectA [cm]\ あああああああああああ[l] いいいいいいいいいいい[l] [cm]\ おおおおおおおおおおお[s] *selectB [cm]\ ききききききききききき[l] くくくくくくくくくくく[s]
>64 既読は一気に読む[l]無視の設定にしてるからだろ。 メニューの文字表示からチェック外せ
67 :
64 :2007/11/26(月) 18:07:32 ID:vHWlDCiP
>>65 ありがとうございます
セーブデータというのは栞のことでしょうか?そこまで作っていないんです…
>>66 ありがとうございます。解決しました。涙が出そうです
書き込んだソースの上何行か文章があるのですが
そこは何度実行しても[L]が有効になっていたので
*〜[s]の部分は別の扱いになるんですね
>>67 いろんな情報がセーブデータのフォルダの中にセーブされてるから
それを消すと解決する場合もよくあるってことですよ。
今回は既読は一気に表示設定にしてあったのだろうから、それが初期状態に戻るってことかな。
吉里吉里ってテンプレートみたいなのないの? 導入するだけでセーブロードコンフィグがメニューバーじゃないヤツになってCGモード回想モードもあるとか
ググレカス
プラグインならおさかな定食にたくさんあるよ。
つか、セーブ・ロードの右クリックメニューはkag3pluginフォルダに入ってるし。 CGモードも回想モードも簡単だよな。
>>69 KAGEX が一応一通り機能が入ったサンプル持ってるけど、
KAGの常識は無視された世界な上ドキュメントがないので素人にはおすすめできない
まあめんどくさいのは確か
日本語と英文ごちゃ混ぜで書くと、余計混乱する
77 :
名前は開発中のものです。 :2007/11/27(火) 17:17:29 ID:RS5B3QU5
質問です。 ハイパーリンクをメッセージレイヤのbackに記述した上でトランジションで表に浮き上がらすような演出は可能でしょうか? テキストをトランジションのクロスフェードで浮き上がらすことは出来たのですが、そのテキスト部分をハイパーリンクにすると、思ったような演出になりません。 ご教授お願いいたします。
>>77 「思ったような演出」がどんなだか良く分からないけど、トランジションした後にcurrentをforeに切り替え忘れてるとかじゃ?
基本はwaitclickの状態なんですが、例えば10秒間操作がない場合処理を再開したい場合 KAGでやろうとするなら、どうすればよいでしょうか?
>>79 別にwaitclickである必要性がないと思う。
@wait time=10000 canskip=true
でダメか?
>>80 canskipという属性は存じませんでした。
ありがとうございます。
canskipはデフォでtrueなのでは
ああ済みません、clickskipをfalseにしている状態でwaitだけそうしたかったもので・・・
84 :
名前は開発中のものです。 :2007/11/30(金) 13:09:20 ID:YhdMKeTp
うるせーばか
>>69 なんかそいううの作ってるって人居たけどぜんぜん動きがない
1.自称初心者の毒にも薬にもならない質問が鬱陶しそう 2.飽きた 3.深く静かに潜航中
>69 そんなテンプレートじゃ嫌な人が使うツールだ テンプレが欲しければ他のツール使え
参考にして次のステップに進むんでない?
>>88 他人のソースみればいいじゃん。
あ、禁句だっけw
禁句っていうかプライドの問題
セーブロードコンフィグもCG・回想モードも講座見れば全部書いてあるだろ。 読めよ。
でも自分でスクリプト書いてると他人の書き方は気になるぞ すげえなあと思って見てみるとコピペの嵐だったり 吉里吉里じゃなくてムービーの演出でがっかりしたり
まともな量で書くと文章も含めて500KBくらい? 技術どうこう以前に最終的には根気。
コードの最適化して簡潔に収めるのも技術だからなあ。一概に量で測れるものでもない。 ちなみに俺はC++で書いたネイティブプラグインのコードが現在485KB。
プラグインだけで異様にでかいね、吉里吉里で大作RPGでも作る気なの?
>>94 485KBもあったら携帯のゲーム一本作れるぞ。
とか言ってる俺もC++とTJSでADVミドルウェア+GUIコンポーネント+util再開発したら10MB行ったが。
ミドルウェアとGUI抽象化しすぎた・・・orz
まあそのおかげで再利用できる部分をKAGに移植出来たが。
>>93 あさって出す予定の体験版のシナリオフォルダがが900kb。
そこにプラグインが挟まるからスクリプトで1Mってことになる。
まぁ、上手に書けてるとは言えないから参考にならないかな。
俺は明日販売だぜー、イェーイ
100 :
名前は開発中のものです。 :2007/12/03(月) 03:19:01 ID:MSQvsdph
あげ
行き詰ったので質問です。 クリッカブルマップのボタンで、buttonのenterseやclickseで出来るような音をつけようと思ったので、 以下のような文章を書いてみたのですがうまく行きません… AfterInit.tjs内 function onenterse(storage) // storage = ファイル名 { var buffer; buffer = new WaveSoundBuffer(null); buffer.looping = false; // ループ再生しない buffer.open(storage); buffer.play(); } map.ma内 1: onenter="onenterse( aaa.ogg )"; 結果 スクリプトで例外が発生しました メンバ"aaa"が見つかりません …どこがおかしいのかわからないので、ご指摘頂けると有りがたいです。
エラーメッセージの通りじゃん
ファイル名の指定にシングルクォーテーションが抜けてるから aaa.oggを変数として処理しようとしている。
104 :
101 :2007/12/03(月) 13:08:55 ID:75hq/sF3
解決しますた。ありがとうっす _o/L メンバって変数の意味だったのね…
105 :
名前は開発中のものです。 :2007/12/03(月) 15:08:25 ID:rhiDwM98
[macro name=mb][eval exp="System.inform(mp.m)"][endmacro] @mb m="マクロを使おう!" マクロは通常 mp の辞書配列に渡しますが、 [macro name=mb][eval exp="System.inform(mp)"][endmacro] @mb "マクロを使おう!" という様な感じで m= みたいなのを省略する方法はないのでしょうか。
マクロの属性名がmpの添字だってわかってるんなら、 それを省略するのは無理ってことくらい推察できそうなもんだが なんでそんなことしたいの?
108 :
名前は開発中のものです。 :2007/12/05(水) 15:29:03 ID:iS93NxBb
KAGEXはどうやって可能にしたんだろう
>>107 mpに代わる何かがないかと思い、質問したのです。
やりたい事というのは 〜= というのを無くして、
@mb "あああ,1234"
の様な形にして受け取った文字列を , で切り出して使うと。
つまりはマクロをもっと簡略化したいのです。
>>108 onConductorUnknownTagを実装すれば可能。
kagexはKAGEnvironment.tjsのunknownで処理を行っている。
マクロというよりタグだな。
@立ち絵 ヒロイン アップ 制服 笑
この様な使い方が可能。
吉里吉里は C言語の #define みたいな奴ってないの? macroじゃなくて スクリプトに記述された文字を実際に置換するやつ スクリプトエディタとかでやれば直なんだけど、ちょっと必要性が あって、もし判る神いたらよろしく
>>111 残念ながらないと思う
loadとかで読み込んで置き換えてから実行とか無理すれば出来ない事もないかもしれんが
>>110 そんなやり方があるのですね。
onConductorUnknownTag の使った例みたいな物を見せて貰えませんでしょうか。
KAGEXをみたら?
KAGEXのソース読めば?
116 :
名前は開発中のものです。 :2007/12/05(水) 18:19:18 ID:AXXA+VE9
かぶったw
>>144 >>115 tagnameでタグ名を判別出来るのは判るのですが、
引数はどういう風になっているのかが判らないのです…。
Util.tjsのforeachとそれを呼び出しているところを見ろ
>>117 KAG で [tag foo bar baz=10] って記述されたとき、mp は以下のような状態。
%[ "tagname" => "tag", "foo" => true, "bar" => true, "baz" => "10" ]
パラメータが省略されると true が入るのは 2.27-dev.20060527 以降の拡張。
辞書を配列に展開してぶんまわせば必要な情報は取得できる。
補足。辞書なのでパラメータの順番は保障されないので注意。
辞書のキーだけ拾うって話、前にここでしてたねぇ。 前々スレだっけ?
118の言うようにUtil.tjsのforeachの辞書の総なめ処理の箇所を見ればわかるのだが、 辞書配列を配列にコピーして、添字が偶数番目がキー。 perlと同じ。
>>122 そうか、Perlと同じって言葉でようやくすんなり頭に入った。不思議なw
ありがとう、もう忘れないと思う。
>>118-122 なるほど!こういう構造になっていたのですね。
判りやすい説明ありがとうございました。
吉里吉里使い始めてこんな神ツールあるならC必死にやろうとしてる初心者の私なんか必要ないじゃない・・・!悔しい(ry と思いますよね(´・ω・`)<<吉里吉里最高!! 行き成り本題に入ります・・・グーグルや過去ログなどで調べたのですが 言葉が合わないのかなかなか見つからず・・・ どこでもユーザーがセーブできるように *| でセーブポイントつくってみたんですがスキップがそこで毎回とまっちゃいますよね。 スキップを止めるポイントはCancelSkipだかでとめる事ができるので栞?通過時にスキップをキャンセルする動作を消したいのですがどうしたらいいでしょうか どなたかお教えて下さい。 よろしくお願いします
>>125 どこでもセーブプラグインを使うと幸せになれると思うよ
>>126 どこでむセーブプラグイン、とても便利そうです
情報ありがとうございます。
>>125 に書き忘れたことがあります、大変申し訳ありません
*sce1|
*sce2|
*sce3|
.
.
このようにパッチなどを作った後にもセーブデータが使えるようにしたいのですが
こちらもどこでもセーブプラグインで可能でしょうか?
此方の説明不足ですみません
出来るか出来ないかは自分で試せると思うんだがその辺どうよ
ゲームを開始、セーブデータのロードなどから ゲーム終了までのプレイ時間を記録したいのですが、どのようにすれば実現できるでしょうか?
>>130 System.getTickCount()で1msごとに1あがる数値が分かる
@eval exp="tf.start = System.getTickCount()" -- 1
; -何か処理とか-
@eval exp="tf.end = System.getTickCount()" -- 2
@eval exp="tf.time = tf.start - tf.end"
↑でtf.timeに1と2の間に経過した時間が代入される
これ使ってがんばれ
もしくはAfterInitに↓ tf.ぷれいじかん = 0; var timer = new Timer(_check,''); timer.interval = 1; timer.enabled =true; function _check() {kag.fore.messages[0].clear(); kag.fore.messages[0].font.height = 300; kag.fore.messages[0].drawText(100,100, tf.ぷれいじかん, 0xff0000); tf.ぷれいじかん++;} これでがんばれ。 マジレスするとここの過去ログに針時計のスクリプトがある。
と思ったら出来ていませんでした・・・ 単純に、 −−−−−−−−−−−−−−−−−−−−−−− tf.endtime = System.getTickCount(); tf.t_time = tf.endtime - tf.starttime; tf.t_time = (int)(tf.t_time / 1000); time_clock[2] = tf.t_time % 60; // 秒を確定 time_clock[1] = tf.t_time \ 60; // 分 if (time_clock[1] >= 60) { time_clock[0] = time_clock[1] \ 60; // 時間を確定 time_clock[1] = time_clock[1] % 60; // 分を確定 } −−−−−−−−−−−−−−−−−−−−−−− としたのですが、確かに時間は取れるのですが 栞間のセーブ・ロードが入ると、違う栞でもロード前の時間経過が引き継がれてしまい おかしな事になってしまいます。 栞ごとにそれぞれ時間経過を保存するには、どこを直せばいいでしょうか・・・?
135 :
名前は開発中のものです。 :2007/12/08(土) 03:38:54 ID:4oYc9bPP
var starttime=System.getTickCount(); var endtime; f.playtime=0; // これをどっか適当な場所に書いときなはれ。 function updatePlaytime() { f.playtime+=(endtime-starttime); starttime=System.getTickCount(); } んで、プラグインのスケルトンを作りなはれ。 (なんかのプラグインのソースコピペして、メンバ関数はonStoreだけでおk) function onStore(f, elm) { // 栞を保存する際に呼ばれる // f = 保存先の栞データ ( Dictionary クラスのオブジェクト ) // elm = tempsave 時のオプション ( 現在は常に void ) updatePlaytime(); } これで保存できると思う。 ゲームの途中で参照するときは、 updatePlaytime(); を呼んでから、 f.playtime を参照すればプレイ時間を取得できると思う。 ちなみに、動くかどうか、なんの確認もしてないwww 気の向くまま書いただけー
136 :
名前は開発中のものです。 :2007/12/08(土) 03:40:53 ID:4oYc9bPP
しゅうせー >function updatePlaytime() >{ >f.playtime+=(endtime-starttime); >starttime=System.getTickCount(); >} function updatePlaytime() { endtime=System.getTickCount(); f.playtime+=(endtime-starttime); starttime=endtime; }
間違って送信してしまった
>>135-136 ありがとうございます、思ったような動作になりました。
139 :
名前は開発中のものです。 :2007/12/08(土) 19:16:28 ID:woEOaT2C
些細で初歩的な質問だと思うのですが・・・ わからないので、どなたか答えてくれると幸いです 吉里吉里でADVゲー作成中なんですけれど、 プレイヤー側からの視線をキョロキョロさせる演出をしたいんです 恐らく背景レイヤを移動させればOKだと思うんですが・・・ どうしてもできないので、詳しい方ご教授お願いします
逆に なぜリファレンスを読まないのか と質問したい
えー、めんどくさーい(笑)
142 :
名前は開発中のものです。 :2007/12/08(土) 20:39:13 ID:woEOaT2C
>>140 リファレンス、講座、教本を熟読した上で、
実現不可能だったので質問させてもらいましたがよくなかったでしょうか?
具体的に「リファレンスのこの欄を読めばすぐにわかる」
ということでしたら、
その欄をある程度指示してもらえるとありがたいです
143 :
名前は開発中のものです。 :2007/12/08(土) 20:49:37 ID:woEOaT2C
142です やってみたことを追記します moveタグを利用して背景レイヤを 右左に移動させて演出しようとしたが上手くいかず ※リファや教本には背景はmoveしない方がいいと記述されている quakeタグを使用して左右に振ろうとしたが 左右へ振る速度が早くなりすぎてしまう、時間が長くなりすぎてしまう ※timeをいじってもゆっくりとした動きが表現できない
baseじゃなくて別のレイヤーに背景画像を読み込んでmoveで動かせば? それじゃだめなの?
どうやったけど、どううまくいかなかったのか。 具体的にどういう処理を実現したいのか。 何となく分かるけど、説明能力ない人に答えるのはシャクだ。 ひとまず、前景レイヤとだけ書いておこう。
技術でなく演出問題を聞かれても答えづらいな どうでもいいけど「ご教授」じゃなく「ご教示」な
147 :
名前は開発中のものです。 :2007/12/08(土) 21:05:09 ID:woEOaT2C
>>144 >>145 ヒントありがとうございます
説明不足ですみませんでした・・・
以後気をつけたいと思います
教えてもらったヒントを元にがんばってみたいと思います
>>146 誤字修正サンクスです
後答えにくい質問ですみませんでした;
148 :
名前は開発中のものです。 :2007/12/11(火) 22:29:42 ID:lLTcG7XU
RegExpクラスのグローバルサーチフラグって機能してる? execで最初にマッチしたやつしか返してくれないー
>>148 検証してみた。
boostの仕様かもしれんが、gを指定すると、perlで言うところのoと一緒になるっぽい。
マッチしたのがすべてほしければ、ループさせるといいみたい。
こんなん。
var regex = new RegExp("(.)", "g");
while(true) {
var matches = regex.exec("0123456789");
if(matches.count < 1) {
break;
}
Debug.message(regex.matches[1]);
}
違ってたらすまそ。
吉里吉里はシステムを作るためのプログラミングは簡単そうだけど セリフなどのテキストを入力するのは大変そうですね そこらへんを支援してくれるようなソフトはないのでしょうか?
システムを作る程度のプログラミングができるんだったら、 入力補助くらい簡単に作れるだろw
>>152 プログラムできないからって嫉妬するなよ
えーw そんなあっさりファビョるなよ……
ツマンネ
全角だと2、半角は1 を返す様なlengthはないのでしょうか?
>>156 ないんじゃね?
ちょっと自信ないが↓ので調べられるはず
// strに渡された文字列の文字数を返す
function getLength(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = #str[i];
if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c > 0xff60 && c < 0xffa0) || (c > 0xf8f0 && c < 0xf8f4) ) {
len++;
} else {
len += 2;
}
}
return len;
}
>>157 ありがとうございます、ばっちり数えられました!
最近吉里吉里でアニメ定義を使い始めたんだが ○○○_a.pngって呼び出しした後に 正常に動作する時としない時がある… 同じ命令文なのに起動する毎に違う動作するってどう言う事? 使っているPCのスペックが低いからかな?
セーブ用のラベルを作るとたまに文字表示速度が遅くなるんだけどどうすればいいかな。 ちなみに表示速度は普通のまま。 文字表示速度を高速にしてたら変化なし。 調べてもわからん…
>159-169 せめて該当部分のシナリオファイル晒せ
今大学にいるからちょっと無理なんだ。 帰ったら晒します
164 :
159 :2007/12/13(木) 15:18:07 ID:CLyaSYmS
[fgzoom storage="06-04.png" layer=7 sl=-180 st=50 sw=1000 sh=370 dl=320 dt=50 dw=0 dh=370 time=300] [image storage="int_1_19.png" left=45 top=45 layer=1 opacity=255 visible=true] [image storage="int_1_14.png" left=0 top=45 layer=2 opacity=0 visible=true] [move layer=2 time=400 path="(45,45,255)"] [wait time=400] [fgzoom storage="07-04.png" layer=7 sl=320 st=240 sw=0 sh=0 dl=180 dt=50 dw=286 dh=370 time=400] [image storage="int_1_09.png" left=45 top=-330 layer=2 opacity=0 visible=true] [move layer=2 time=1000 path="(45,45,255)"] [wait time=400] [fgzoom storage="07-04.png" layer=7 sl=180 st=50 sw=286 sh=370 dl=-425 dt=-560 dw=1500 dh=1800 time=1000] [wait time=1000] [fgzoom storage="07-04.png" layer=7 sl=-425 st=-560 sw=1500 sh=1800 dl=180 dt=50 dw=286 dh=370 time=1000] [wait time=1000] [image storage="07-04_a.png" clipleft=0 cliptop=0 clipwidth=286 clipheight=370 layer=7 left=180 top=50 opacity=255 visible="true"] [wait time=400] ソース一部晒してみました ちょっとイベントが流れる的なシーンで int_1_09.pngがちゃんと正常にスクロールされる時と スクロールされない時があって 07-04_a.pngのアニメーションが動く時と動かない時があるんですが 2日間色々試してみてもサッパリ分かりませんでした
ここにいる奴は、自分の絵でエロゲ作ってオナニーしてるの?
息するしか能のない奴は黙ってれば?バカなの?
記録 1時間42分
バカなの?
>>164 ぱっと見た目だが、moveとfgzoomが完全に停止する前に書き換えてるのが原因かもしれない。
[image storage="int_1_09.png" left=45 top=-330 layer=2 opacity=0 visible=true]
の前に
[stopmove]
を入れる。
[image storage="07-04_a.png" clipleft=0 cliptop=0 clipwidth=286 clipheight=370 layer=7 left=180 top=50 opacity=255 visible="true"]
の前に
[eval exp="global.zoom_object.finish()"]
を入れる。
これでやってみてくれ。これでだめならわからん。
if(x < 0 || width < x || y < 0 || height < y) ボタンレイヤーのonMouseUpかどこかに上のを入れて ボタンのエリアから外れてマウスを放した場合に、 ボタンを押してどこかへ飛ばす処理をしない様にしたいのですが、 何か良い方法はありませんでしょうか。
日本語でおk
>>172 まず、leftとtopにボタンレイヤーのサイズをプラスしろ。
ボタンレイヤーのonMouseUpに↓を入れて、 if(x < 0 || width < x || y < 0 || height < y)f.flag=true; でボタンを作ってonSaveButtonClickを飛ばす先に設定し、 array.add(obj = new SystemButtonLayer(kag, parent, onSaveButtonClick)); 飛び先にf.flagがtureだった場合は処理せずにリターンする。 function onSaveButtonClick(){ if(f.flag)return; kag.saveBookMark(101);} という風にすれば、ボタンを押した状態でボタンエリアから出た場合に、 onSaveButtonClickに行ってもkag.saveBookMarkを実行せずに済みます。 これをボタンレイヤー内の処理だけで、 そもそもonSaveButtonClickへ飛ばない様にしたいのです。
>>175 の言ってる事が理解できないのは俺の無知のせいか?
livemakerあるのにこれをあえて使う意味はないよな
>175 いまいちよくわからんがボタンレイヤーのそこをそう書き換えれば良いだけじゃないのか?
な ぜ 無 視 す る ?
捕捉 ボタンレイヤーにonExecuteってのを読んでるところがあるけどそこを あなたのやりたいその条件で読んだり呼ばなかったりするようにかきかえればいいんじゃないの?
livemakerって解像度変えられるんでしたっけ?
かまうなよ(´д`;)
>>レスくれた方へ すみません、根本の構造を理解していませんでした。 お蔭様で思うとおりの動作をさせる事が出来ました。 ありがとうございました。
186 :
名前は開発中のものです。 :2007/12/14(金) 19:19:26 ID:OHyA52UA
KAGのセーブ/ロードの動作にフックして 任意のメソッドを呼び出すことはできないでしょうか。
力抜こうぜ
>>186 プラグイン作ればいいんじゃね
サンプル入ってるし見れば出来ると思われ
LiveMakerがある今、krkr使う意味あるの?
あるけど教えてやらないw
のんのんのん 相手しちゃだめ
スマン ソレっぽそうな単語をNGワードに入れとくわ
LiveMakerと吉里吉里とじゃ 電卓とパソコンくらい違う 比較できる次元ではないな
優劣の問題ではないのでその例えは適切ではないな。 プレステとパソコンくらい違う、とかなら正しい。
そのほうがしっくりくるな 特徴的にも合ってる気がする
専用機と汎用機比べてどうすんだよ。
専用と汎用じゃないすか。
KAGはTJSで吉里吉里上に組まれたAVGミドルウェアなんだから専用機同士で比べないと例えになってないだろ。
livemakerで物足りないなんてことあるの?
足りる足りないの話じゃない。 LMはゲーム専用機、krkrはゲームが出来るのは当然として ゲームも作れるし他の処理も出来る汎用機ってことだよ。 そもそも比べられるものじゃないって分かったなら おとなしく巣に帰ってくれ。
>>202 だから、そこよ
livemakerでできないことをやりたいなら
プログラミングしたほうが早いだろ・・・
何でわざわざkrkr使うのかがわからない
C++も使えないヘタレJAVA厨がkrkr使ってるのかな? それなら納得w
20点だな。 もうちょっと頑張って煽りましょう。
スルーしようぜお前ら
LM信者が必死っぽいけどなんかあったのかね?有料化とか?
LM信者ではなくて吉里吉里が分からなくて挫折した人間 吉里吉里を落とすことで自分のプライドを保とうとしてる
ああそうなのか。 LMでちゃんと作れたんならそれでおkだろ。 最後まで完成させられれば吉里吉里でもLMでもいいんだよ。
吉里吉里でもLMでも、ゲームを完成させられない人って多いもんな 誇りに思っていいよ わかったら巣に帰れ
System4.0スレでも同じやりとりができるなw java使いならjavaで作ってるだろ。 というかC++使える奴がlivemaker使ってるのか? 自分でエンジン組んだ方がもっと自由に出来ないか?
このスレの乞食は貰い>>208-
>>212 が多いですね。味を占めるわけだ
メンボスレでRPGで2年かかるとか吹いてたアホも 毎日こうやって遊んでるんだろうな ホント、作業処理能力無い奴って最悪だわ
その手の奴は前見たなぁ、格ゲー作って作業が進まないのを「ツールが悪い」と連呼 絵を描くのが面倒になったのか共同で作ってたが、ツール自体が古くなって時代遅れにw この前見たときはRPG作ってたけど120%の確立で完成しないね。 だってあいつ口だけだもんw
C++も使えないヘタレどもが僻んでおりますね
C++でWinAPIやDirectXを直に叩ける人間には 吉里吉里使う理由はないと本気で考えているならどうかしてる。
>>216 が何故これほどまでに熱心な地縛霊化してしまったのかが逆に気になる
釣りや乞食では済まない吉里吉里愛を感じるぜ
何かこのスレで馬鹿にされるような事件でもあったのかね?
「使わない」と「使えない」の区別がつかないんだろう
こっちまでNスクスレみたいになるのは勘弁
だからかまうなって(´д`;;)
ゲームは専門外だが吉里吉里もKAGがなきゃ使ってなかったよ。
KAG使うぐらいならlivemakerのほうがよくね?
無限ループって怖くね?
そんなことより聞いてくれ。 ド素人なんで解説本買って勉強しようと思ってるんだけど、 ・萌えるゲーム制作 吉里吉里/KAGで作る美少女ゲーム ・吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! ・吉里吉里/KAGノベルゲーム制作入門 この中でもっとも初心者に優しいのはどれですか?
>>225 本屋に行ってざっと中身見てから買ったほうがいいよ。
恥ずかしい表紙が多いけどw
227 :
名前は開発中のものです。 :2007/12/19(水) 13:54:34 ID:PDPN7Q4x
それ全部System4.0に言えることじゃんw
>226 ド素人がいきなり中身を見て良し悪しを判断するか無理だろ。 とりあえずアマゾンのレビューでもみとけ
>>225 ネットの講座は回ってみた?
ド素人なら講座見ながら作ってから考えてもいいんじゃね?
どうせコピペで作るんだしネットの方が初心者に優しい。
どうしても本で勉強するのが好きなら止めないけど。
233 :
225 :2007/12/19(水) 17:36:17 ID:cAekJ0aw
>>226 地元の本屋には「吉里吉里/KAGノベルゲーム制作入門」だけあったけど、
ビニールに入ってて中身が見れなかった・・・。
>>232 ネット講座は各所回ったけど、1冊くらい本もあった方が役に立つかな、と思って。
というワケで、
>>231 氏の言うとおりアマゾンレビューを参考にして「萌える〜」を買うことにしました。
>>225 俺は・吉里吉里/KAGノベルゲーム制作入門 のほうを薦められて買ったぜ
普通に使える本だった
>・吉里吉里/KAGノベルゲーム制作入門 現状は、この一択。 一番目は悪くないが古い。二番目は役に立たない。
236 :
225 :2007/12/19(水) 17:54:50 ID:cAekJ0aw
>>236 >>4 の一番上見ればいいと思う
現在テキストエディタで悩んでるんですが・・・皆さんがお使いのエディタを教えていただけないでしょうか?
NoEditor
男ならメモ帳だろ
秀丸これ一本
>>238 -
>>240 thx! 見事に分かれましたね
某所ではかぐや姫、MKEditor、WHiNNYなんかもいました、悩みます・・・
K2Editが使いやすくていい
スクリプト記述向きのエディタを選ぶなら以下を重視するといいと思う 1. 正規表現の検索、置換 2. タグの入力補佐 3. 登録キーワードのハイライト シナリオ量が1M越える規模なら必要になってくる んで自分のばあい Emacs + kag-mode + ecmascript-mode を使ってるけど スクリプト書きたいだけならお勧めしない
>>241 かぐや姫はオンラインヘルプのページが消滅してて
オフライン用のマニュアルもなかったような気が…どーだったかな
俺はWHINNY
preProcessKeysでVK_CONTROLを拾ってskipToStop2()させる CTRLスキップだと押して直ぐに反応しません。 何か他にいい方法がありませんでしょうか。
日本語で頼む CTRLキーの時だけ反応が遅いのなら該当ソースの開示を求むが、 多分安定状態(kag.inStable)にならないとスキップ開始しないとか そういう理由で「反応が遅い」と感じるのではないかと
>>236 今日中なら、アカウントサービスからキャンセル間に合うんじゃね?
萌える〜ってちょっと見たことあるが別に悪くはないんじゃね
>>245 checkProceedingKeyで処理すればいいんでね?
男ならcat
そこまで言うなら、なんで、vi が出て来ない?
スクリーンエディタだからだろ
質問ですが、 例えば[delay speed=10]タグから[delay speed=user]タグの間にメニュー等から文字速度を 変更しても反映されないのは、 userChSpeedの値に速度が代入されてもchUserModeの判定か何かでchSpeedには代入されず、 実際の文字速度には反映されないって解釈でおk? あと、上の例でタグ間で「最初に戻る」を実行すると文字速度が選択していたものに戻るのは 「最初に戻る」を実行した際に[delay speed=user]か何かが実行されてるんでしょうか?
>>254 >変更しても反映されない
chUserModeがtrue以外の時はchSpeedに反映されないから
>「最初に戻る」を実行すると文字速度が選択していたものに戻る
startanchor直前のセーブ可能ラベルの状態に戻るから
ちがってたらすまそ
>>246 >>249 kag.checkProceedingKey = function(key, shift){
if(key == VK_CONTROL)skipToStop2();
}incontextof kag;
こんな感じでやっています。
押したら次のページを表示して、少し間があってからスキップしだすんですよね。
NScripterのCTRLスキップみたいに、押したら直ぐにスキップする様にしたいんです。
>>256 checkProceedingKeyで読み進めるキー(デフォルトでスペースとENTERキー)の処理が書かれているので、
VK_CONTROLも追加すればいいのでは?
if(key == VK_RETURN || key == VK_SPACE)
↓
if(key == VK_RETURN || key == VK_SPACE || VK_CONTROL)
if(sg(VK_RETURN) || sg(VK_SPACE))
↓
if(sg(VK_RETURN) || sg(VK_SPACE) || sg(VK_CONTROL))
希望通りの動作するかわからんが、やってみて。
テキストエディタでコード打ち込むなんで面倒なだけなんだが・・・ そんなことするぐらいならC++で作った方が楽
>>257 そもそもENTERやSPACEも同様で直ぐにスキップにはならないんです。
一部商業で使われてるのとかではそうはならないのですが、
どこでそういう処理をしているのかわからなくて。
デフォの吉里吉里って安定状態じゃないとスキップとか無効じゃなかったっけ?
IDEがある
そういえばもう冬休みだな
ああそうか、冬休みだな
>>256 やっつけでやってみたらできた。
onKeyDownをちょっと変えてメソッド追加。
ちゃんと理解せずに組んでるので、色々バグってる可能性あり。
function checkProceedingKeyCtrl(key, shift)
{
// キーを処理し、true を返す。そうでなければ false を返す
var sg = getKeyState;
if(sg(VK_CONTROL))
{
skipToNextStopByKey();
return true;
}
skipToStop2();
return false;
}
function onKeyDown(key, shift)
{
checkProceedingKeyCtrl(key, shift);
if(focusedLayer === null)
internalOnKeyDown(key, shift);
super.onKeyDown(...);
}
function onKeyUp(key, shift)
{
checkProceedingKeyCtrl(key, shift);
super.onKeyUp(...);
}
インデントが・・・orz 色々つっこみどころあるけど、少なくともこれでCtrl押せば即スキップ、 話せば即ストップの機能は満たすので、変なところは自分で修正して。
連投スマソ やっぱだめでした・・・orz 思いっきりバグりますので忘れて・・・
局所化しようぜ。怖いから。
checkProceedingKeyCtrlを下記のように書き直したらバグは直った(ように見える)
けどほんとやっつけなのでオススメはできないです・・・orz
とりあえず、実装のヒントになれば幸いです・・・
function checkProceedingKeyCtrl(key, shift)
{
if(key == VK_CONTROL)
{
var sg = getKeyState;
if(sg(VK_CONTROL))
{
skipToNextStopByKey();
return true;
}
skipToStop2();
}
return false;
}
>>269 そのとおりですね・・・
とりあえず何かのヒントになればと思い・・・。
フォントの取消線の実装マダ〜?
そもそもフォントのベースライン・アセント・ディセントすら取得できないのに取り消し線なんて実装されても描画時に困る。
ほんじゃその辺含めたフォント周りの整備をして欲しい メッセージ系を自分で作っているのだが、標準機能が少なくて。 本家に言ってみるべきだろうか?
本家で言ってみるべき
KAGで文字書くのと、drawTextで文字書くのと 同じメッセージレイヤでもフォント指定とか文字幅とかなんかおかしいんだよな
そりゃ自前で位置とか持ってるからな 素のdrawText使ってもずれるだろう。
>>273 メッセージ系自分で実装するとなると最低でもフォントのベースライン・アセント・ディセント・リーディング・前進幅・高さ・幅くらいは無いとキツイだろ。
KAGやKAGEXがそういう情報なしでうごいてるところみると そういう情報はとりあえず必要なしと判断されてるんじゃね?
ベースラインとかアセントとかそこらへん
.NETで作った方が楽チンじゃね? フォームとかGUIで作れるしさ どうも、こういうテキストベースの奴は使う気がしない
つまんないからいい加減やめない?
できる奴が集まれば(原画、シナリオ、スクリプト込みで)1ヶ月そこそこでアドベンチャーゲームが作れるのを考えると、 吉里吉里(他のスクリプトエンジンも同様だが)さまさまだろ。 .NETでとかC++で1から作るのとじゃ手間が全然ちがう。 これからも吉里吉里でガンガン作るぜ。
.net?10年前のjavaじゃねーか。 粘着ウザイよ。
レイヤーが多いと重くなると聞くので、普段はメッセージウィンドウと 右クリック用として@laycount messages=2にして、 選択肢の時は選択肢用レイヤーが増えるので@laycount messages=3と しているのだが、もしかして大して意味ない? バグを防止する意味でも、最初から使うレイヤーを全部含めたカウントで 通した方がいいんだろうか?
ご明察。laycount の制御はバグの温床になりやすいので必要ないかぎり使わんほうがいい。 表示されてないなら合成パフォーマンスにはさっぱり影響ないので気にする必要はない。 メモリは食うので、つかってないレイヤはクリアするようにしたほうがメモリ節約できるが、 1枚や2枚程度だとキャッシュ考えると誤差の範疇なのでそんなに気にしなくていい。
RADなIDEでも結局はコード書くことになるんだけどな。 ある程度以上高度なことをやろうと思ったらコード書くのは避けられないんだよ。 コーディングに足を踏み入れたくないならLMは正しい選択だと思うけど.NETとか出してくるのは的外れ。
なんでスルー出来ないんだおまいら
質問です。 hidemessageタグなどでメッセージレイヤを消したときに、 クリックでなく他のキーで復帰するようにできないでしょうか。
>>285 レスサンクスです。
一生懸命節約考えなくても良かったんだな…まあ楽できると思えばいいか…
>>280 ゲームエンジン自作するのがラクチンなわけ無いだろ……
おまいら、もう冬休みですか。 学生とニートはええのう。
もう気づけば冬休みの時期ですか? どうりでjava質問スレと似た荒らしが居ると思ったよ。 アンチjavaで.netマンセーなんだろうね。
質問です。 現在地A(X1,Y1) と目的地B(X2,Y2) があって、 画像g(右向きの矢印⇒)を現在地Aの上に表示して、 矢印の先端を目的地Bに向けたい時、角度θは、 var l = (X1 - X2), t = (Y1 - Y2); var θ = (Math.atan(l/t)*180/Math.PI+90); で合っていますか?
>テストようのfirst.ksを添付してあるので興味のある方はダウンロードされると、どのようなプラグインかわかり易いと思います
>>286 そのコーディング作業もkrkrでやるよりC#の方が融通効くだろ
しょぼいシステムしか作れない奴にはKAGでいいんだろうけどなw
スルースルー
>>293 ちょw これもスルーか
ちょっと釣られてみるか。
うろ覚えだが、
var θ = Math.atan2(t, l)*180/Math.PI;
みたいな感じじゃないか?
この話ってライブメーカー厨がしだしたことなんだよな……
>>295 そのfirst.ksを動かした時にscrollwindow.ksがなくてエラーになるんです…。
作った本人に聞け。なぜここで聞く?
>>294 first.ksの4行目の'scrollwindow.ks'を
別の存在するファイル名に書き換えたら動いたけど。
>>302 オレもやってみたけど、正常には動作してないっぽい気が……
やっぱり、気になるなら作者に聞くのが一番確実じゃないかな>ID:qwCU8maI
krkrだと雛型作るのが面倒でしょ 普通にC++やったほうが早いと思うがな
スルースルー
[iチラ裏] 自作の3Dプラグイン使って 1.79GHz DualCoreノートで動かしてたテストシナリオを 3.04GHz デスクトップに移して動かしてみたらもっさりガクガクでワロタ ノートではサクサク動いてたのに。 プラグインからTJS2スクリプトをコールバックするような 無茶してるから重いのは当然だけどなんだこの差は。 デュアルコアsugeeeeeeeなのか俺のデスクトップが腐ってるのかワカンネ [endチラ裏]
>>302 >>303 お答えありがとうございます。
更新が止まってるのでこちらで聞いた方が早いかなと思って。
確かに正常かどうかわからないので向こうで聞いてみます。
>>309 こんなレス乞食の釣りを相手にするなんて
もしかして自演してるの?
バカばっか
サイトを見て回り、試してみたものの一向に上手くいかないので 教えていただきたく思います。 現状、問題となっているのが、「前景レイヤーで動画を表示し、その上から メッセージを表示したい」のに、できないという点です。 下記ソースでは、「Test開始」を表示して1秒待った後に、動画は再生 されず、「Test終了」が表示されてしまいます。背景は一面真っ黒です。 何が問題となってこうなっているのか、お分かりの方がおられましたら 教えてください。
313 :
312 :2007/12/23(日) 01:51:00 ID:UfTjfynT
;******************************************** 「Test開始」[p][cm] [layopt layer=message0 page=back visible=false] [layopt layer=message0 page=fore visible=false] [freeimage layer=base page=back] [freeimage layer=base page=fore] [freeimage layer=0 page=back] [freeimage layer=0 page=fore] [freeimage layer=1 page=back] [freeimage layer=1 page=fore] [freeimage layer=2 page=back] [freeimage layer=2 page=fore] [layopt layer=0 page=fore visible=false] [layopt layer=0 page=back visible=false] [layopt layer=1 page=fore visible=false] [layopt layer=1 page=back visible=false] [layopt layer=2 page=fore visible=false] [layopt layer=2 page=back visible=false] [layopt layer=0 visible=true page=fore mode="opaque"] [video mode=layer visible=true] [videolayer channel=1 layer=0 page=fore slot=0] [preparevideo slot=0] [video slot=0 visible=true loop=true width=640 height=480] [playvideo storage="Test.avi"slot=0] [wait time=1000] [layopt layer=message0 page=back visible=true] [layopt layer=message0 page=fore visible=true] 「Test終了」[p][cm] ;******************************************** 見ずらいソースで申し訳ありません。どうかお願いします。
315 :
312 :2007/12/23(日) 03:20:41 ID:UfTjfynT
>>314 レスありがとうございます。
リンク先の「AVIは再生できない。できるかもしれないけど」という部分を
しっかりと読んでいなかったです。一度、前景じゃない方では再生できた
ので、大丈夫だろうとタカをくくっていたのを反省しました。
MPGに変換し、再度読み込んだところ、メッセージレイヤと動画が
再生されるようにはなりました。
しかし、動画サイズの変更指定を出しているにもかかわらず、その指
定したサイズで再生されません。指定のタイミングが間違っているので
しょうか。いくつかタイミングをずらしてみはしましたが、画面左上部に
小さく表示されるだけです。
重ね重ね、つまらぬ事で何度も申し訳ありません。
なにか気づかれた事があればご指摘を頂きたいです。
>>315 リファレンスにちゃんと書いてある。
「現バージョンでは、レイヤ再生時にはこのメソッドで指定できるのは位置だけで、サイズは無視されます」
動画の画面サイズをあらかじめ変更しておいたほうがいい。
317 :
312 :2007/12/23(日) 10:39:26 ID:7Xh2Qu1y
>>316 ありがとうございます。
動画ファイルのサイズを変更し、解決することができました。
リファレンスを見れば気づく問題でスレを汚して、申し訳ありませんでした。
普通にLMで事足りる わざわざkrkrなんて使う気がしない 市販なら.NETで事足りる
TJSで一定時間停止するにはTimer使うしか無いんでしょうか。 単純に wait(500); みたいな、簡単に記述する方法って無いですか?
kag.conductor.onTag(%['tagname' => 'wait', 'time' => '500']); 前スレで出た奴で↑で出来ない事もない timer使ったほうがいい気がするけど
>>320 stable とかいう状態になるまで、実際に待ってくれないってことない、それ?
>>320 KAGのタグ機能呼び出すのは思いついてたんですが、
YesNoDialogクラス内でそれをやっても待ってくれんのです・・・
効果音を鳴らしてちょっとだけ待ってからダイアログを閉じる、
という割とどうでもいい処理なんですけどね(汗
Timer入れますか・・・
>>320 KAG側は待ってくれるが、tjs側はそれでは無意味。
timerで待つのが無難。
質問いいでしょうか。 パッチファイルの作成なんですが、data.xp3ファイルの中の system\Config.tjs、MessageLayer.tjsの2ファイルだけ更新 したく、patch\systemというフォルダを作り、上記2ファイル を入れ、krkrrel.exeの入力フォルダ選択でpatch\を選択、 patch.xp3でアーカイブしました。 フォントサイズの変更だけなのパッチなのですが反映され ません。 パッチにせず再度data.xp3にすれば反映されます。 何が間違っているのでしょうか? バージョンはkr2_228r2です。
326 :
324 :2007/12/24(月) 00:14:11 ID:smWOtPl2
そこのサイトの説明はメチャクチャだから。参考にしちゃ駄目です。
そのサイト、スペルミスもあちこちにあるよね・・・ オレもそこ参考にしたら思わぬバグ作ってくれたことがあるよ (エラーが出なくてしばらくわからなかった。しかも2箇所)
そうやって自分で解決したものは身になる 素晴らしいサイトではないか
初心者向けを装って嘘を教えるのは拙いだろ あのサイトは書いてる本人が余り理解していないように見受けられるが
332 :
名前は開発中のものです。 :2007/12/24(月) 15:11:33 ID:XIAfztE1
画像にエフェクトをかける吉里吉里プラグインを作る場合、画像バッファのポインタを直接書き換えるしかないんでしょうか LayerExImage.cppではそうやってるみたいだけど、こんな低レベルな処理俺には分からない・・・
>332 逆にどういうのだったらいいとおもってるんですか
>>332 ふつうに標準的なやり方だが。
これだから、ゆとり(笑)は・・・・
>>332 なにやりたいんだか知らないが、吉里吉里内部の画像は標準的な32bit ARGB画像なんで、自分で直接
画像バッファをいじるなりどこからか適当なライブラリを拾ってきてC++でゴリゴリプラグイン書くなりすれば
ほぼなんでもできるぞ
>>335 あおっちゃだめっす
質問です。
krkr.eXeのプロパティで見られる「説明」と「著作権」を、それぞれ
「会社名」「Copyrignt (C) 会社名 All rights reserved.」としても問題はないのでしょうか?
'-about' オプション付きでの起動は抑制されていませんが、配布ドキュメントに
吉里吉里を使っている旨や、バージョン情報の詳細を見る方法などは特に記載されていません。
「説明」「著作権」欄が上記のようなゲームがあって、少し気になりました。
「ファイルバージョン」は「2.28.2.9904」で、元と同じようです。
ttp://kikyou.info/tvp/bbs/bbs.cgi?mode=&action=treeall&num=10103 と
license.txtの「著作権の表示と使用通知」は見たのですが
「リソースの改変」というあたりがよく理解できませんでした。
'-about' オプションで表示される著作権情報が改変されていなければ
問題ないのかなと受け取ったのですが、この理解で間違っていないでしょうか。
吉里吉里本体の名前を変えて再配布禁止って意味だろ
>>337 ライセンス違反です。
実行ファイルのプロパティの「説明」も「著作権」も、
いずれも「リソース」であり、「リソースの改変」に該当します。
340 :
337 :2007/12/25(火) 07:02:14 ID:6Ywn4yAW
license.txtの「二次配布」に明記されているように
・吉里吉里2の実行コア(krkr.eXe)はライセンス書を伴わずに配布することができるが
実行コアそのもののライセンスが変わるわけではない
・吉里吉里本体のバージョン情報のリソースを改変して再配布することは禁止
・実行ファイルのプロパティの「説明」「著作権」はいずれも「リソース」である
・「リソースの改変」は配布するドキュメントに必要事項を明記していれば可
・
>>337 は明記していないのでライセンス違反
という流れでしょうか。
どうもありがとうございました。
機能していない命令文が混入している場合、その時点ではエラーは出ませんが、 ゲームを続けているとその機能していない命令文のせいで不具合が起こったりしますか? 例:一行目、消し忘れなど @link @link target=*start スタート @endlink *start| ;(以下略)
聞く前に試してみれば?
ファイルを直接コピーしたり削除したりするメソッドとかありましたでしょうか。 リファレンスを探してみたのですが見つからなくて…。
livemakerで事足りる
あーあーあー
>>377 ってクインロゼのゲームのこと?
それなりの規模のとこなのに、こんなことも理解してないとかありえるのか?
var s = "嗚呼aaああaaアア"; var aa = s.replace(/([A-Za-z0-9])([^A-Za-z0-9])/g, $1,$2); var nv = aa.split('\,'); System.inform(nv[0],nv[1]); こんな感じでreplaceを使ったのですが、 $1,$2 の所が妙な感じになって上手くいきません。 $が使えないのか、それとも使い方が悪いのでしょうか。
>>351 こういうことか?
var s = "嗚呼aaああaaアア";
var aa = s.replace(/([A-Za-z0-9])([^A-Za-z0-9])/g, "$1,$2");
var nv = aa.split('\,');
System.inform(nv[0] + "," + nv[1]);
>>352 説明不足でした。
parlの s/$1,$2/([A-Za-z0-9])([^A-Za-z0-9])/g というのをやりたいのです。
"嗚呼aaああaaアア"という文字列を、nv[0]="嗚呼aa" nv[1]="ああaa" nv[2]="アア"
という風な感じで分割したいのです。
Dee氏がmixiを始めたそうで・・・。 自らDQNの巣窟に入ってmixiで吉里吉里の初質攻めとかに遭わなきゃ良いが。
>>353 tjs側でregbase:: bk_refsが指定されてない(っぽい)から、
後方参照は使えない
>>355 そうなのですか…なかなか使いにくいですな…。
"嗚呼aaああaaアア".replace(/([A-Za-z0-9])([^A-Za-z0-9])/g, function(m) { return m[1] + '.' + m[2]; }) めんどくさいけどこういう書き方はできる
>>348 公式で公開中のパッチ、購入者以外にもゲーム内容まるわかりらしく祭が起きたが…
リーフのバカがGPLなvidXデコーダ使ってソース公開するような業界だぞ。 ライセンス管理まで手が回ってるとは思えん。
361 :
名前は開発中のものです。 :2007/12/29(土) 12:25:45 ID:naHJtJk6
メッセージレイヤーの画像を、imageタグのmodeのように、覆い焼きやその他の効果で描画することは出来ないのでしょうか?
SystemButtonPluginを改造して使ってるのだが どうやったらクリックしたときのイベントで KAGの特定のラベル(*hogeみたいな)に飛ばせるんだ?
365 :
名前は開発中のものです。 :2007/12/30(日) 01:24:14 ID:SSuXZ0xY
>>363 おおう、ありがとうごさいます。
確かにその通りなのです。
すみません、説明すると少し長くなるのですが、
私がやりたいのは実は文字のグラデーション表示です。
(商業ソフトでときどき見かけるアレです。)
吉里吉里で出来ないかなーと調べてみたのですが、
見つけられず。(出来たとしても高スキルが必要だよね、
と諦めたともいいます)
で、発想を転換しました。
message0を黒地(透過無し)にして、文字は白で表記。
message1に↑と同じサイズのグラデーション画像を
「比較(暗)」で描画。……すると、グラデーションは
黒地には反映されないので文字だけがグラデーションに!
……と、こんな感じのことをしたかったのです……。
如何でしょう、なにか方法はありますでしょうか?
366 :
名前は開発中のものです。 :2007/12/30(日) 01:27:33 ID:SSuXZ0xY
「グラデーションは黒地には反映されないので」 って、グラデーションだから反映されないわけでなくて どんな画像であっても「比較(暗)」で描画すれば、 黒地には反映されないってことです。 説明下手くそですみません。
>>366 特定のところでしかそのグラデーション文字を使わないんだったら、
その文字の部分だけ画像用意した方が早いんじゃない?
368 :
名前は開発中のものです。 :2007/12/30(日) 01:47:52 ID:SSuXZ0xY
>>367 全編で使いたいのです。
むしろキャラ毎に色を変えたいのです。
369 :
363 :2007/12/30(日) 02:19:44 ID:RD8SbYAT
>>368 試したことはないが、基本的な考え方は363で書いたことと同じだろう
ここまで書いても分からないんだったら諦めろ
>>368 息抜きついでに適当に書いたがそんな事してお前以外に誰が喜ぶんだ?無駄すぎる
@iscript
var darkenLayer = [];
function darken(elm){
darkenLayer[elm.layer] = new Layer(kag, kag.primaryLayer);
with(darkenLayer[elm.layer]) {
.loadImages(elm.gradstorage) if(elm.gradstorage!== void);
.left = +elm.left if(elm.left !== void);
.top = +elm.top if(elm.top !== void);
.width = +elm.width if(elm.width !== void);
.height = +elm.height if(elm.height !== void);
darkenLayer.absolute = 1500000;
.type = ltDarken;
.visible = +elm.gradvisible if(elm.gradvisible !== void);
}
}
@endscript
; --darkenタグ
; 比較(暗)のレイヤを表示
; 使える属性属性: layer, opacity, left, top, width, height, gradstorage, gradvisible
; layer : 0以上の整数、messageの数にあわせる必要なし
; gradstorage : グラデーションに使う画像
; gradvisible : 表示するか(true or false)
@macro name = "darken"
@eval exp="darken(mp)"
@endmacro
>>349 しかし吉里吉里でPC破壊って…w
どんなスクリプト書けばそんなことができるんだ…
吉里吉里の実用書が欲しいのですがオススメのものはありますか? いまのところ 『萌えるゲーム制作 吉里吉里/KAGで作る美少女ゲーム』 『吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる!』 の二つで迷っているのですが……
現スレくらい読んでから質問してください
>>374 すみません見逃していました
ありがとうございました
次スレの話だけど熊野にんちの所外した方がよくない? あそこ信じ込むと初心者のミスを誘発すると思う。
正しい事しか書いてないサイトなんてそうそうないだろうしネットの情報鵜呑みにするほうが悪い それが初心者なんだろうけど
>>376 同意
誘導する意味で書いているテンプレなのだから
載せておくならあそこは、せめて誤記多しくらいの注意は付けとくべきかと思う
文句を言い出したらきりがない。 他の講座だっていろいろ欠点あるわけだが、それらにも全部いちゃもんつけてくのか? そんなことしても吉里吉里が廃れるだけだろ
テンプレ全部に注意書き・解説をつけるか、全部につけないかの二択が俺の考え あれはつける、これはつけないとかやると揉めるからよくない。 で全部につけるとすると全てのサイトになにかしら欠点があるからそれを指摘してしまう それでは中の人達もやる気を無くすだけだからやめようってことで379の発言につながる
382 :
名前は開発中のものです。 :2007/12/31(月) 01:51:20 ID:+SJyzQ84
>>369 ですよねー! ……心底すみません。
>>370 わあああぁ、ああありがとうございますうぅぅ!
無駄といわれると確かにそのとおりなのですが、
ちょこっとでも他と差をつけたい素人心です。
わたしおおよろこび。ひゃっほう!
にんちの所、消さないならせめて「表現に問題あり」とか付けないかい? 上でも言われてるが誘導用のテンプレな訳だし。
右クリックでセーブやロードなどのシステム画面が出るようにしています。 右クリックのシステム画面から戻る時用に[tempsave place=0]を 使っているためか、右クリックから戻るとBGMが最初から 演奏し直されてしまうため、BGMを鳴らす部分を @playbgm storage="BGM1" cond="kag.bgm.currentStorage != 'BGM1'" のようにしてみたのですがうまくいきません。 何か解決方法がありましたらご教授お願いします。
テンプレに載せておいて、あのサイトは問題があるという議論が起きること自体、 さらし者にしているのと同じだ。そういう状況になるなら、外したほうがいい。
じゃあ、外せば良いと思うよ。
>>384 temploadのbgm属性は知ってるよな?使ってみた?
>>387 吉里吉里参考本を転記しただけだったのでbgm属性については知りませんでした。
おかげで解決できました、ありがとうございました。
マクロの属性で指定した文字列を変数に入れたいときに、 [macro name=test] @eval exp="tf.test = %a" [endmacro] @test a="string" だと当然エラーが出るわけですが、どうしたらいいんでしょうか?
>>389 [macro name=test]
@eval exp="tf.test = mp.a"
[endmacro]
KAG Systemリファレンスの「TJSをもっと使うために」等を参照のこと
>>390 元旦からありがとうございます
もっとしっかりリファレンス見ないとorz
ちょっと聞きたいんですが、 drawtextで描画した文字列をクリアしたいときに描画されてるレイヤを初期化してるんですが、 レイヤの初期化じゃない方法ではクリアできないんでしょうか?
塗りつぶす
>>393 背景を透明色ににしたいんです><
と思ったら、塗りつぶす色指定するとき透明度0にしてもちゃんと塗りつぶされるのかー
完全不透明にしないと下地と合成されると思ってたよ。
とりあえずヒントありがとう
fillRectとcolorRectの違いだな fillRectは「指定の不透明度と色で矩形を塗りつぶす」 なので「『透明』で塗りつぶす=透明になる」ということになる。 それに対してcolorRectは「指定の不透明度と色で矩形に色を重ねる」なの。
質問なんだけど、229でリリーサの設定がcfファイルに保存されるようになったよね。 で、エンドユーザーがcfファイルを消したら、デフォ設定で動作してしまうんだけど、 これを防ぐ方法ってない?
オーバーライドの質問なんだが、 kag.anyFunction_org = kag.anyFunction; kag.anyFunction = function(elm) { elm.time = 2000; anyFunction_org(elm); } incontextof kag; のように一回「_org」に退避して、オーバーライドしたところで「_org」を 呼び出しているんだが、なぜかエラーが出てしまう。 incontextofか退避の段階で間違っていると思うのだが、どうしても原因が特定できない。 だれか分かる人教えて下さい。
>>397 エラー内容が晒されてないので憶測だがelmって初期化済み?
元の定義でデフォルトが指定されてるとか。
こんなん。
kag.anyFunction = function(elm = %[])
推測その2 override.tjsの時点ではkagメンバが存在していないためにエラーが出る。 kagをKAGWindowに置き換えるかAfterInit.tjsに移す。
>>401 ピッチを設定するヤツなら過去ログにあったね。検索しる!
ただそれでエッジがきれいにつながるかはわかんない。
>>403 >>401 の画像は袋文字が設定されてるから、
>>403 の参照元に記載されているようにその方法では駄目(全角ダッシュが分かれる)ですね。
>>403 の参照元に記載されているようにインライン画像(graph)使うのが一番簡単で確実かと思いますよ。
>>402-404 ありがとうございます
とりあえず放置しておいて、完成前になっても無理っぽかったらgraphでやろうと思いますー
@macro name=dash2 [nowait] [eval exp="tf.___pitch = kag.current.pitch"] [style pitch="&tf.___pitch - 1"] [ch text="――"] [style pitch="&tf.___pitch + 2"] [ch text=""] [style pitch="&tf.___pitch"] [endnowait] @endmacro OUTFOCUSに手を入れた奴だけど瞬間表示でいいならこれで少しマシになるかも。 袋文字の具合にもよるけどつなぎ目が見えちゃう場合はぴっち調整しる。 インライン画像だとバックログやフォントスタイルで色々面倒なので 今のところこれで妥協してる。
408 :
397 :2008/01/05(土) 14:59:10 ID:s+tEqXEs
解決しましたー。 override.tjs に書いたのが原因だったようです。 さんきゅーな
くり返しになって悪いけど、誰か
>>396 を教えてくれない?
それとも、バージョン2.29以降で作ったやつは、cfファイルさえ消せば
コンソール開き放題なのが仕様なのかな。
>>409 まだためしてないが、2.28のリリーサで2.29のkrkr.exeを指定するとどうなる?
>410 やってみた。 リリーサはどのkrkr.eXeを使うかの項目がないので、親フォルダの物を使うと仮定。 2.28のリリーサと2.29のkrkr.eXeのファイルをそういう風に配置してトライ。 で、エラーは出なかったけど、作られた実行ファイルは2.28のリリーサで設定した 内容(デバグ支援ウィンドウの設定)を無視した。 まあ、当然といえば当然の結果か。うーん。
>>409 俺ならそのcfファイルの正当性を確かめて
そのファイルが無ければ起動できないようにする
>>411 うめるの自体は、バイナリエディタを使って、
krkr.exe の末尾の、XOPT_EMBED_AREA_ から4byte目の位置から、
・コンフィグ内容の文字列(\n区切り・cfファイルと同内容)の文字列(NUL終端)
・ユーザ側のコンフィグで無効にする項目一覧(カンマ区切り)の文字列(NUL終端)
の順で格納すればOK
ただ cf ファイルで上書きされるのであまり意味はない
リリース時には -debugwin=yes なら速効終了するようなコードを頭に仕込んでおけばいいと思うよ。
>412-413 おお、プログラマーの発想だ。その手があったか。 とりあえず、デバグ支援ウィンドウの禁止だけなら、 first.ksの先頭にこういうコード入れて解決しますた。 @if exp="System.getArgument('-debugwin') != 'no'" @eval exp="System.inform('大人の都合により終了します')" @close ask=false @endif
吉里吉里でポーカー作ってるんですが、intrandom関数を使うと カードを交換してもペアが1つもできません・・・・・・ ;番号 (intrandom(0,13)) こんなカンジで作っているんですが、どうにも乱数が散ってしまいます。 JAVAとかだとそんなことにはならなかったのですが・・・・・・ 『連続して呼び出しても、同じ値が返って来る可能性がある』乱数の 作成方法について、何かご存知の方はおられないでしょうか。
>>415 (intrandom(0,13))でも同じ値返ってきたが?
↓試してみたやつ
for(var i = 0; i<100; i++) dm(intrandom(0,13));
417 :
415 :2008/01/05(土) 22:47:39 ID:fWoWsjbY
>>416 ポーカーなので、時には初期配布でペアができている状態を作りたいの
ですが、『(intrandom(0,13))』を5回繰り返しても、ダブりは出ませんでした。
ためしに上記の関数をループで囲み、数十回回してみても、取得できた
乱数は散ったままでした。
なんなんだろ・・・・・・
>>417 100回実行したなかの分布で
ワンペアツーペアスリーカードフルハウスは普通に発生してたぞ
スリーカードとフルハウスはひとつずつだ
こんなもんじゃねーの?
419 :
415 :2008/01/05(土) 23:27:54 ID:fWoWsjbY
>>418 うーん・・・・・・テスト不足なんでしょうかね。
すこしテストを重ねてみようと思います。
スレ汚しすみませんでした
吉里吉里のランダム生成器はメルセンヌツイスタだから、ランダム精度高いよ。
吉里吉里本体側でパッドの入力受け付けるようになってるみたいだけど これを無効化するのってどうすればいいんでしょ
>421 Releaser(krkrrel.exe)やら、吉里吉里設定(krkrconf.exe)の中に設定項目あんよ
ほんとだ、ありがとう
425 :
名前は開発中のものです。 :2008/01/07(月) 00:37:54 ID:0tzt03DZ
>>424 キー入力の移動がいまいち。
onKeyDown() で処理すると、キーリピートの関係でどうしてもこうなっちゃうので、
リアルタイム処理が必要な場合は、continuous ハンドラをつかって、System.getKeyState
(あるいはパッド対応した kag.getKeyState) をつかって押されてるキー状態をポーリングして
から処理を呼び出すようにしたほうがいいよ。
ただし、 continous ハンドラつかうと、
2.29-dev.20070521 以降なら -contfreq 以前なら -reducecpu で制限を
かけないと常時 CPU 100% いっちゃうのでそのへん注意。
あ、描画更新との同期を特に気にしないなら(シューティングとかでもなければ特に気にする必要もないか・・・) Timer からのポーリングでおk。すでに Timerの処理がいくつかあるっぽいからそっちのが整合はいいかね。 タイマーは1つだけつかってタスクシステムをつくって、他のタイマー系処理は それから呼び出されるようにしたほうが後々の見通しはいいと思う。
krkrconf.exeで「パッドを使わない」にしてもパッド認識するなあ・・・
吉里吉里でlivemakerみたいな動きのあるアニメーションを入れることは出来ますか
ライブメーカーのアニメってどんなの? アニメってのは普通動くもんだと思うけど。
>>426 getKeyStateは忘れてました。移動は気になってたんで助かります
>>427 タイマー1つだけつかって〜というのは面白そうですね
やってみます
livemakerの説明のところにある 座標移動、拡大縮小、回転、アルファブレンディング っていうのはアニメーションじゃなくって普通に出来るよ。 プラグインを入れると簡単になる。 あと吉里吉里のアニメーションファイルではtjsが使えるから 変数を使ってゲーム進行の本流と同期させながら複雑な制御も出来るよ。
>424 阿部トリーチェにちょっとだけ吹いた
特定の栞の番号に、任意のタイミングで自動でセーブする (確認のダイアログも出さずに、勝手にセーブする) 方法ってありますか?
kag.saveBookMark(番号);
>>431 >>433 ありがとうございます。
具体的にやってみたいのが
吉里吉里で雪を振らせたりやホタルの光を使えるプラグインがありましたが
・時計の針(自作のもの)をカチカチと巡らせ、前景レイヤーに配置する
・オープニングアニメの作り方、曲とアニメの同期のさせ方
こんな曖昧な表現で質問してしまって申し訳ないんですが
皆さんどういう風に作ってらっしゃるんでしょうか…
吉里吉里でホラーゲームの●廃ノスタルジアってありましたよね。
理想はあれですが・・・orz
時計の針は秒、分、時をラジアンに直して画像を回転させて貼り付け OPアニメは地道にタイミング合わせ かな
ActionScriptのサンプル集でも買って、 使いたい部分をKAG/TJSに翻訳してった方が早いような気がする。 言語特性はそんなに変わらないから、結構移植簡単だし。
>>437 時計を常に表示してる必要なければ、必要な時刻の画像を作って差し替える方法もあるけど、画像回転させたほうが早いか。
OPは、曲のイメージ(または似たような曲)を元に音屋に発注。
デモ曲を元に簡単なコンテを切ってる。
あとはスクリプトが地道にタイミング合わせ。
時間があるときはAE使って動画にしてる。
自動で読み進んでいる時に画面をクリックしてもオートが解除されないようにするには どうしたらいいですか? 選択肢を選んだときもとまらないといいなー
選択肢の前にオートかどうかを変数に格納しといて 選択肢の後その変数で判断してオートにすればいいだけだろ、常考
>>442 選択肢じゃないときは?
普通にゲームが進行してるときもオートのときはオートのままで
画面をクリックしても解除されないようになったらいいなと思うんだけど。
改行改ページタグをオートのとき無視すればいいだけだろ ちょっとは自分で考えろ しかしいつ止まるんだって話だな そんな使いづらいクソシステムのゲームなんてやりたくない
てかオートは選択肢で止まってもキャンセルされない設計だったような。
>>445 それだと画面クリックで止まる予感がするんだが。
まx
>>443 の動機を見る限りも俺もストップかけたいけどなw
後々オート止める手段を作らなきゃ行けなくなるという事が念頭にないだろうし。
判定はオートにしたときに決める変数を使うから オートじゃなくなっても止まるタグは無視されてオートに見える それをオートと全く同じように見せるには 文字表示速度とか待ち時間とかで 非常にめんどくさいことになるかもしれん
すいません、説明不足だった。 システムボタンを表示してオート用のボタンを押すと オートがオンになったりオフになったりして、それ以外は画面をクリックしてもオートが解除されない って感じにしたかったんだけど不便? ノベルだとずっとそのまま読み進められて楽かと思ったんだけど
ところでオートにしてる時にオートとめる目的以外でクリックする意味が分からないんだけど
オート処理がよくできたシステムだと、クリックでは音声キャンセルだけして、オートは そのまま続けてほしいとおもうことはあるね。LittleWitch のゲームとか特にそう思う。 それはさておき、オートのキャンセル処理をつかさどってるのは MainWindow.tjs の cancelAutoMode() なので、これを呼び出してる周辺を適宜いじればよいだろう。
紙媒体の様に上から下、右から左に流れる構成じゃないからな。 一度に表示できるテキスト量が極端に少ないノベルゲーでそれやられても読み手が着いて行けなくなるかもな。
説明不足じゃない
俺エスパーだからだいたい分かってたよw
>>449 も言ってる通りクリックするときは止めるときだろ
いちいちボタンにカーソル合わして止めるなんてめんどくさい
どうしてもそれをしたいなら画面クリックして止まるか止まらないか
設定で選べるようにしといたほうがいいんじゃね
かったるくなってきたら画面を連打して早く進めたりまたオートで読み進めたり……
なんてみんなやらないんだなw
あまり歓迎されない機能だと言うことが解ったのでエスパーさんの言うように
設定で選べるようにしたほうがいいね。
>>450 を参考に考えてみます。
俺はかったるくなってきたらスペースで飛ばすわ
スペースキーとEnterキーの押しっぱなしによるスキップを無効化したいんですが 何か方法はありますか?
スペースキーとEnterキーの押しっぱなしによるスキップを無効化すればいいんじゃない
ありますよ
>>453 やりたいことはまぁわかったw
KAG本体いじくりまわさんと無理じゃないかな
>>453 クラナドはそのシステムで使いやすかったぜ
該当部分に手を入れてなければマウスの左ボタン押したまま右クリックすると すぐにオートモードになるからそっちを浸透させるほうが手っ取り早い気はする。 そういう問題でも無いのはわかってるけど。
461 :
名前は開発中のものです。 :2008/01/09(水) 23:17:36 ID:PL28RWTW
デフォでフルスクリーンにするにはどうすればいいの?
デフォでフルスクリーンにするのは止めてくれ。 せめてダイアログ入れてくれ。 というかリファ読め。
立ち絵を処理に行き詰ってて、ヒントがあるかと思ってこっちにふらっと立ち寄ったんだけど、 みんなレベル高いなぁ〜 とても質問できんわ、もう一回サイト巡ってくる やっぱり吉里吉里初めて九ヶ月ぐらいじゃまだまだ駆け出しなんかな
>>463 敷居を下げてくれ
おれも質問できないでいる
>>464 アー、すまん、ここ数ヶ月悩んでいたことがたったいま30分ほどで解決しちまった(´・ω・`)
便秘が終わったかのような爽快な気分だぜ、フーハハハハ
まぁ、思い切って聞いてみたらいいんじゃない?
一体何に悩んでてどう解決したのか気になる
467 :
名前は開発中のものです。 :2008/01/10(木) 02:27:53 ID:PVq803UF
>>462 死に至る病はデフォでフルスクリーンですよ
なんでノベルゲーごときをフルスクリーンでやらなきゃならんのだ。
同意
「あれがやってるんだから、こっちもやっていい」 なんて理屈、通ると思うならおめでたいことだな。
471 :
名前は開発中のものです。 :2008/01/10(木) 07:32:01 ID:PVq803UF
ぐだぐがsぢってあないdwっさっさとデフォデフルスクリ0−ンにする方法教えろ
>>471 なんでノベルゲーごときをフルスクリーンでやらなきゃならんのだ
@iscript kag.defaultFullScreen = function() { // ウィンドウモードを一旦落としてからフルスクリーンモードで再起動すぬ // first.ksの頭にでも突っ込め global.shutdownTrigger = new AsyncTrigger(handleShutdown, ''); global.shutdownTrigger.cached = true; global.shutdownTrigger.trigger(); if(conductor.status == conductor.mRun) conductor.interrupt(); var fullscreen = true; } incontextof kag; kag.defaultFullScreen(); @endscript ついカッとなって書いてしまった、とにかく反省している。
474 :
名前は開発中のものです。 :2008/01/10(木) 11:00:58 ID:Xh9YU2e8
@iscript // first.ksの頭に。フルスクリーンじゃないときフルスクリーンにする if(!kag.fullScreen) kag.onFullScreenMenuItemClick(true); @endscript 問答無用でフルスクリーンにするなら、こっちのほうが早くないでしょうか
>>472 1280×1024の解像度で作業してる人が
1600×1200のグラフィックを出されると困るから
>>475 吉里吉里は起動時に現在の画面よりゲーム画面のほうがでかいと自動的にフルスクリーンになるぞ
1600×1200なんて変態解像度ゲンガーが絵書くときにしか使わねーよ。 800*600に縮めろよ。
普通は1280×1024じゃない?800*600だと画面がボケるんだけど
画像のキャッシュがよく分かりません。 レイヤーとかに普通に画像を読み込んだときにはそれが自動的にキャッシュされて、 System.touchImagesを使うと自分で直接キャッシュに画像を読み込ませられるってことで良いんでしょうか?
いいえ touchImagesを使うと「もしかするとキャッシュしちゃうかも!」ぐらいになります
>>478 1024*768 の画面を使っている自分としては 800*600 か 640*480 が好ましいのですが
それにゲーム画面が大きいと視線の移動距離も大きくなって読みにくいですよ
>>480 もしかするとですか。
ということは、特定の画像をあらかじめキャッシュに読み込んでおく→後々描画
みたいな動作はあんまり期待できないということですね。
重い画像を絶対に先読みしておきたいなら、 新しく不可視のレイヤーを作ってそれに読みこませればいい。 と思うよ
たいしたことが無い絵を1600x1200で見たくないわなw 800x600にしとけ
>>483 管理するの嫌だし、ちとチープ感あるんであんまりレイヤー増やしたくないんですが、
頭の中で画像バッファだとでも割り切ってレイヤー増やして〜でやるしかないか。
ありがとうございました。
486 :
名前は開発中のものです。 :2008/01/10(木) 13:42:52 ID:PVq803UF
dクス ちなみにこれで作ろうとしているのはノベルゲームではない
487 :
名前は開発中のものです。 :2008/01/10(木) 14:00:39 ID:PVq803UF
ならねーじゃねーかw かくなるうえは あきらめるっ!!
まあ、現行の描画ライブラリはスマートじゃないよな。 画像の持たせ方とか。設計思想の問題だが。
ここで文句たれる暇あったら開発に参加してやれよ
490 :
名前は開発中のものです。 :2008/01/10(木) 18:35:26 ID:PVq803UF
ムービーファイルを再生しようとしたが、音が鳴るだけでムービーが再生出来ん どうすりゃいいんだ?
mpgにする
拡張子はmpg ダメだったのでwmvに変換 オワタ
拡張子なんて関係ないコーデックを調べろ。
>>489 自分がOSS開発やってるんでそんな暇はない。
別にプラグイン書けば一通りのことは出来る。
参考URL載せられても該当箇所探すの面倒なのだが、 とりあえず他の吉里吉里製ゲームでも同じ現象が起きるなら ソフトではなくPC見直しだろうな。
>>495 そんなことはQuinRoseに問い合わせろ
吉里吉里は商業サポートなんてやってないし
ここの住人がQuinRoseの尻拭いする理由もない
どんなトラブルが起きようと責任はQuinRose側にある
このスレに書き込むこと自体、お門違い
>>495 たぶん貴殿のメモリにエラーが発生している。
PC構成に問題があるってことだな。
そのゲームがなにやってるか知らないが変なプラグイン使って変なことやらない限り青画面とか出ない。 そもそもハードウェアやデバイスドライバが正常ならば、普通のアプリで相当ヘマなことをやったとしても青画面はまず間違いなく出ない。 結論:そいつのPCがもともと壊れかけてる
>>495 リンク先ちらっと見たけど、どっかのメーカーのアンチスレと
そのまとめのトップページって…この子全然聞く気ないだろ
常識的に考えて
おれ…そこに応募しようとしてたんだぜ…へへ…(´A`)
お前らいくらなんでも騒ぎすぎだろ 吉里吉里でブルースクリーン出たってことそんなに認めたくないのか
>>505 みんなが環境依存な問題っていってるだけなのを脳内変換してるだけだから触れちゃダメだよ。
まあ、DirectXとVGAドライバ入れ直しだな。
パッチについて何ですが、例えばhoge.ksというファイルの中身を書き換えたとして patch2.xp3にhoge.ksが含まれていて、さらにpatch3.xp3にも書き換えたhoge.ksが含まれている場合 hoge.ksが参照されるのはpatch3.xp3だと思うのですが、xp3化して導入すると何故かhoge.ksは古いものが参照されます。 (patch3.xp3のhoge.ksが参照されていない) パッチに最新のファイルが含まれているのは間違いなく確認しているのですが、これはどういう事なのでしょうか?
>>507 first.ks以降で、
Storages.addAutoPath()使って追加したファイル群には
パッチは当たらないんじゃないかなとか。
未検証だけど、まぁそうなるだろうと予測してて今頭抱えてるんだけど
そっちもその辺じゃないかな?しらんけど。
>>508 色々検証していたのですが、ずばりその通りのようです。
Storages.tjsをsystemフォルダに用意して、
Storages.addAutoPath("others/csv/");
とか色々追加してるんですが、この追加したフォルダに入っているものに対してパッチが当たっていないようです。
これはどうすればいいんでしょう・・・?
ググったり掲示板を見たりして、一応の解決策を見つけました。 まず、ディレクトリ階層が Storages.addAutoPath("others/test1/"); Storages.addAutoPath("others/test2/"); 等と、デフォルトから追加したものがあるとすると、この追加したフォルダの中のファイルに修正を加えたい場合、 1・first.ksの先頭で、修正したファイルが入っているフォルダのパスを削除する。 →Storages.removeAutoPath("others/test1/"); Storages.removeAutoPath("others/test2/"); というように 2・削除したパスの中に入っているファイルを、修正していないものも含めて全てパッチのアーカイブの中に含める こうすると、一応ではありますがパッチを当てられました。 しかしこれは仕様なんでしょうが、かなり不便というか困りますね・・・一応要望として、掲示板の方にも投げてみます。
Storages.addAutoPath("others/csv/"); よりもあとに Storages.addAutoPath(System.exePath + "patchex.xp3>"); が実行されるようにまずパッチを作って、patchex.xp3のほうに本来のパッチ入れたら?
フォルダ構成を変えたい場合はInitialize.tjsを弄れとKAGドキュメントに書いてあるし よくよまなかったおまいが悪い気がしないわけでもない。 「TJSをもっと使うために」に書いてあるaddAutoPathの説明は こういう副作用について記述されてないから説明不足だとおもうけど。
Initialize.tjsの中に、Storages.tjsを読み込むよう記述したんですが 記述した場所が、パッチを定義づけて読み込んでいる「// 追加のパッチ用アーカイブの検索」の部分よりも下にありました。 これがいけなかったのかもしれません。
>>495 吉里吉里のほかのゲームは正常に動くの?
KAGを使わないor大幅にカスタマイズする人って Point構造体とかD3DXMATRIX構造体的なクラス群をあらかじめ自分で定義してます?
>>515 つかうなら定義するだろうけど何につかうんだ?
>>515 管理しやすさを目指すか、高速化を目指すかによって変わる。
高速化を目指すなら、極力クラスを作らない方が速い。
正確には、newが重いのでそれを避けるように実装するといい。
DoCoMoのiAppliみたいだなw
>>515 3Dエンジンのラッパーを書いたが、const属性や参照の挙動までトレースしたよ。
>>515 速度的にクリティカルな部分はネイティブ実装するがそれ以外はLightWeightのためにTJSでやってる。
>>517 何にというか全体的な使いやすさです
行列クラスなんかはアフィン変換を簡単にする為作る人多いんじゃないかな〜と
>>519 constはプロパティ使えばいいのかな
staticって擬似的に出来ますか?
>>521 うん。ネイティブ内部的には非constメソッド呼ぶごとconstチェックとか不細工だけど。
staticだったら、プラグイン側で予めオブジェクト生成して持っておいて、TJSからはそれをポインタ経由で参照するとか。
524 :
名前は開発中のものです。 :2008/01/13(日) 01:42:43 ID:105ZKBA9
なんでムービーの再生方法が書いてある講座がないんじゃあ
普通にマニュアル読めばことたりるからだろうな。たぶん。
リスト書き出し 01.Eric Kupper - Touch 02.Nomad Foundation - Circulation 03.Cerrone - Lie To Me 04.Adrean Moore - I'm In Luv 05.Slam - Azure (Samuel L Session Remix) 06.Florian Fai - Mendolio 07.Roderick Santh - For Your Love 08.Mickey K. - La Boheme 09.Wamdue Project - King of My Castle (Roy Malone Kings Mix) 10.Cerrone - Misunderstanding 11.Jose Carretas - Can't Make It 12.Kirby - I Like It (Tommy Largo Main) 13.Mickey K. - Departed 14.Dr. Kucho!, Gregor Salto - Macamba (Chus And Penn Remix) 15.Audio Reef - Bright Lights 16.Pax Japonica Groove - 昇竜 17.Ta - Time 18.Big World, Gerald - Open Your Heart (Avantgarde & Michael Simon Remix) 19.Gary's Gang - Let's Lovedance Tonight (Danny Krivit Edit) つぎで締めます
誤爆です。すみません。
レイヤの移動を行っているんだが、一秒に一回前後、 やたらと処理時間がかかる(通常の2倍程度)のは吉里吉里の仕様? 処理内容と問題点 ・ContinuousHandlerをつかって、レイヤーの左上座標の変更で移動処理を実装 ・複数のレイヤーを移動させる場合、通常15msかかるところで、たまに35msかかる ・処理時間が通常よりかかってる場合にカクカクする 一応、以下の方法でカクつきは出なくなったけど、パワー依存なんで 別の方法がないものかと。 エンジン設定で ・垂直同期 : なし ・ダブルバッファリング : DirectDraw使用 ・タイマの精度 ; 高い 垂直同期させて、遅れたら垂直同期またずに描画とかできれば直りそうな 感じもするが、だれか同じことで迷ったことがある人はいないかしら。
最近のバージョンでContinuousHandlerのCPU使用率を低減させるオプションが加えられなかったけ? パワー依存なのはContinuousHandlerが吉里吉里が何もやってないときに処理するからで、 吉里吉里が何もやってない==CPU空き時間があるとは限らないからじゃない?
>>529 安定版ではまだなかったはず。うろ覚えだけど。
垂直同期させれば、ContinuousHandlerは約60フレに一回の処理になる仕様だけど、
カクカクするのが余計目立つんだよね(垂直同期に間に合わなかった場合に、
次の垂直同期までまつから)
CPU使用率を問題にしているというよりは、スペックの違いで動作の違いが出るのを
回避したいなーと。
・追記
ContinuousHandler内で何もさせないで、処理時間を計測したら、通常1ms以内なんだが、
やっぱりたまに15msとかかかるときがある。内部的な処理の問題なのかなぁ
俺はContinuousHandlerじゃなくてTimer使ってるが
>>531 Timerだと、処理安定する?
10秒ぐらい連続で空処理させて、わけのわからん処理時間がかかったりしなければ
そっちに乗り換えるんだが
+-5ms以内には収まると思うが。多分
吉里吉里で昔のスーファミとかのRPGのバトルシーンみたいな ことって出来る?
移動処理をTimerを使って呼び出してみた 結果 ・interval=17の場合、1処理14〜22msで動作確認。20超えると微妙にカクつきが目立つ ・interval=8の場合、1処理5〜12msで動作確認。カクつきは無し。 ・interval=1の場合、1処理1未満〜6msで動作確認。カクつきは無し。一秒に一回ほど15msかかる場合あり ・ContinuousHandlerでみられるような、処理時間が2倍超かかる箇所はなさげ。 結果からみると、Timerは精度が悪いけど安定してるって感じなのかな。
537 :
名前は開発中のものです。 :2008/01/13(日) 22:03:48 ID:rZji7Sn1
あげちまった、スマソ
そういえばどっかに高精度タイマーってなかったけか?
>>539 エンジン設定とは別に?
ちょろっとぐぐってみたが、それっぽいのはなさげかな。
公式だと高精度が必要なときは、ContinuousHandlerを使えと書いてあるがw
>>530 ただの処理落ちじゃね?
タイマーの方が処理が軽いんじゃなかったかな。
ハンドラ使った場合は暇があれば絶え間無く呼ばれるから。
542 :
名前は開発中のものです。 :2008/01/13(日) 22:58:52 ID:rZji7Sn1
>>541 表示物すべてなしの状態でも同じことが起こるから、処理落ちとは考えにくいんだよね
つねに時間がかかっとるなら、対処のしようもあるんだが。
ContinuousHandlerが常に呼ばれるのが問題なのかと思って、吉里吉里で用意されてる
垂直同期のオプションをONにして試してみたが、やはり遅れることがある(描画全なしで確認)
>>540 何かであった気したが見つからんから気のせいかもしれん
>>536 Timer の呼び出しも究極的には ContinousHandler の呼び出しと同じタイミングだよ。
interval が大きいと遅れがまにあうからみえにくくなるだけ。
1秒に一回、2倍程度ってのは、vsync 待ちそのものが怪しかったりして。
タイミング誤差累積の影響が1秒単位ででそうな気がする。なんとなく。
結局吉里吉里では、Timer も ContinuousHandler もタイミングの保障はないから、
レイヤーの移動処理とかに使う場合は、CotinousHandler なら引数でわたされてる tick、
Timer なら System.getTickCount を使って、移動開始時の tick との差分から
「現在あるべき座標」を計算してそこに表示するべきかと。そうすれば、移動が止まったり
動いたりといった意味でのカクつきはなくなる。そのかわりコマおちするけど。
ゆっくり動かす場合は、レイヤの座標がピクセル単位だから、どうしてもドット単位での
カクつきが見えちゃって気になるけどねw これはパフォーマンスを気にしないなら、
別レイヤにaffineCopyするようにすると、座標指定に実数がつかえるので、すごい
なめらかに動いてるように見せることができる。
いろんなものを動かすなら、処理タイミングが全部一致する(引数のtickが同じ)&直後に
画面再描画があるのが保障される、ってのがあるので、開発版をつかって -contfreq
指定しつつ ContinuousHandler を使ったほうがいいと思う。
>>528 2.28と2.29でContinuousHandlerの実装が変わってるけど、どっち使ってる?
546 :
名前は開発中のものです。 :2008/01/13(日) 23:54:32 ID:rZji7Sn1
>>544 垂直同期と、一秒に一回程度の処理遅れに関連性はなさげ、垂直同期オプションを
ONにしてもOFFにしてもContinuousHandler を動作させたときに遅延が発生してる。
座標計算方法は、システム時間をみて計算する方法で544の言ってるやりかたと
同じはずなのです。四捨五入処理もいれてるので、その意味でのカク付きはないかと
たしかに、カクツキというよりはコマ落ちという表現のほうが適当なのかもしれない。
座標指定に実数はよさげですな。情報サンクス、実装してみます。
>>545 2.28使っとります。2.29で実装変わったのか・・・・変更履歴を参照してきますわ
>>545 ContinuousHandlerの変更が結構あるなぁ‥
残念なのは、2,29は安定版でてねぇw
>>544 fateあたりがそういう実装してたね。
>>547 あー、svn レポジトリみるとわかるけど、まもなく 2.30安定版/2.31開発版が出るから、
リリース直前とかでない限りは 2.29 開発版に移行開始して問題ない時期だと思うよ。
と、商用ソフトを開発版使ってリリースしまくってる俺が言ってみるw
>>549 2.29安定してきたか。
俺も商用ソフトを2.29でリリースしてみるか。
今月は2本納品だw
>>549 おk 情報サンクス
2.29使ってみよう。
商用リリースで開発版なのかw
吉里吉里は比較的安定してるしおかしなバグも出てこないよね。 テスターとしてはつまらんが。
553 :
528 :2008/01/14(月) 00:45:45 ID:tkZiBd72
v2.29で同じもの動かしたら、問題全部解決した。 v2.28版のバグって落ちか‥
>>551 2.29 は描画系もごっそりかわってる関係で、D3D関係や動画関係で
いろいろ環境依存のレアバグがあったんだが、あらかた某社さんや某社さんむけ
の開発作業で発見されてつぶれてる。優秀なデバッガさんたちにみんな感謝してくれw
吉里吉里は開発者居ないからな・・・。 開発状況が見えてこん。
吉里吉里はコンピュータが作ってたのか!
つまりW.Deeの中は人じゃなくてコンピュータだったのか!
W.Deeタソは幼女だからまだメールも打てないんだよ
kag.systemMenu.remove(kag.HogeMenuItem); kag.systemMenu.insert( kag.HogeMenuItem = new KAGMenuItem(this,"ほげほげ(&H)",0,onTitleMenuItemClick,false), 6); というように、こちらの指定したタイミングでメニューを追加したり消したりしているのですが、 「削除したいメニューアイテムがある場合、削除する」 「追加したいメニューと同じものが既にある場合、追加しない(無ければ追加する)」 という風にしてエラー回避したいのですが、どのようにif文を書けばよいのでしょうか?
>>561 MenuItem.children ってプロパティで子要素の配列(参照専用)がとれるから、
それの中から探すような判定ロジックを組めばよい
>>561 最初から追加しといて
kag.HogeMenuItem.visible = true
とかではだめ?
>>562 ありがとうございます、ちょっと探してみます。
>>563 メニューに存在していてもしていなくても、常に1が返ってきました。
>>564 いやkag.systemMenu.remove(kag.HogeMenuItem);とか使わないでkag.HogeMenuItem.visible = false;とか使えば?って話
それで駄目なら
if(kag.HogeMenuItem.parent === kag.systemMenu)で判定できると思われ
>>565 あーー、済みません、それをifの条件にしろという事かと思っていました。
一々removeとかinsertとか使わないで、visibleで切り替えればよかったんですね
ありがとうございました。
567 :
名前は開発中のものです。 :2008/01/14(月) 17:38:19 ID:7GsLRNB1
以下の様にaffineCopyをすると、レイヤの左端列1ピクセルがコピーされないのですが 何か間違ってるんでしょうか?吉里吉里のバージョンは2.28.2.9904です。 var src = new Layer(win, base); src.loadImages("hoge"); // 800x600 var dst = new Layer(win, base); dst.setImageSize(800, 600); dst.setSizeToImageSize(); dst.affineCopy(src, 0, 0, src.imageWidth, src.imageHeight, true, 1, 0, 0, 1, 0, 0); dst.visible = true;
基本は抑えたけど、 応用が分かりません。 おすすめの教本とかありますか?
味方 敵 自分 味方 ┏━━━━━━━┓ ┃敵が現れた! ┃ ┃味方のこうげき┃ ┃ はたく ┃ ┃→ふるぼっこ ┃ ┗━━━━━━━┛ こういうの作りたいんだが TJSを学ぶしか無いのだろうか
>>567 試してないけど変換先座標のピクセルが (-0.5,-0.5)-(0.5,0.5)の範囲にあると見なされているので
(0,0)-(1,1)の1x1の領域を左上にコピーしたかったら(-0.5,-0.5)-(0.5,0.5)にコピーしなきゃいけないはず
だから要するに試してないけど
dst.affineCopy(src, 0, 0, src.imageWidth, src.imageHeight, true, 1, 0, 0, 1, -0.5, -0.5);
では?
>>571 dst.affineCopy(src, 0, 0, src.imageWidth, src.imageHeight, true, 1, 0, 0, 1, -0.5, -0.5);
dst.affineCopy(src, -0.5, -0.5, src.imageWidth, src.imageHeight, true, 1, 0, 0, 1, -0.5, -0.5);
の2つを試したんですがどちらも右端と下端が欠けてしまいます
その辺の解説はリファレンスで見て最初これかな、と思ったんですが
もしそれが原因なら上端も同じ様にならないとおかしくないでしょうか?
コピーされないのは左端の1ピクセルだけなんです
二次元配列の変数をあらかじめ宣言しておくにはどうすればいいんでしょうか? 普通の配列だと、 f.hoge = []; などとすればいいのですが、二次元配列で沢山の要素の代入に対応したい場合 f.hoge = [[,], [,]]; などとあらかじめ用意するには、その変数に代入される値が不定で対応しきれません。
>>573 不定の宣言はできないが、
ひとつ裏ワザを伝授しよう。
class AutoArray extends Array {
/**
* コンストラクタ
*/
function AutoArray() {
super.Array(...);
Scripts.setCallMissing(this); // missingメソッドを有効にする
}
/**
* missing メソッド。メンバが存在しない場合に呼ばれる
* @param get_or_set setなら1
* @param name アクセスしようとしたメンバ名
* @param value get時は結果の参照、set時は設定値
* @return 値を処理した場合は true を返す。false を返すと正規の処理
*/
function missing(get_or_set, name, value) {
if (!get_or_set) {
*value = this[name] = [];
return true;
}
return false;
}
};
var a = new AutoArray();
a[100][200] = 1; // エラーにならない
裏技っていうか単なる拡張じゃんw でも、各言語に強い人間が、それぞれの言語仕様に沿った動作を TJS上で実現する拡張は欲しいな。
Scripts.setCallMissingって何だ
ちゃんと書いてるじゃないか ソースにUNDOCUMENTEDって だから裏技なんだろうけどな
Coreドキュメントで見てきたらちゃんと書いてありました C++読めんからよくわかんねけどw
checkboxタグを、チェックの操作をしたらその場で即commitするようにしたいんですが そういう設定は無いのでしょうか
>>579 意地でもKAGレベルでいくなら、チェックボックスに見えるボタンを
作って構成した方が敷居は低いよー。
エロゲーのシステムっぽいものを作りたいんですが、 詳しく説明されているHPって無いですか?
エロゲーのシステムが抽象的過ぎる
本家掲示板ひどいな
本家の奴出来ないんなら諦めればいいのにw
この人まだいたのか 2年前から何一つ進歩してないみたいだなw
ノベルゲーム制作ツール初心者スレとか作れないかしら? このスレ、リアルでレベルが高い人と、単純にひけらかしたい人が多くて、 初歩的な質問しづらいよ。 完成させる手段としてツールを使ってるわけで、 プログラミングの高みとかぶっちゃけどうでもいい。
普通に質問できるのに余計なスレ立てようとするな雑魚。
ここで良いだろ。変なスレ立てるよりは
初歩的な質問が減ってるのは、 単に吉里吉里への新規参入者が 減ってるだけかと思うよ。
>>587 初歩的な質問≒面倒臭い≒勉強嫌い
吉里吉里は目的のための手段でしかないわけだから
興味などないという理屈はある意味で正しいが
その手段を蔑ろにして目的を遂げられるとでも?
ぶっちゃけ、レベルが高すぎと感じるのなら別のツール使ったほうがいいよ
それこそ只の手段なんだから何だっていいでしょ?
つーか587みたいないわゆる初心者がしたい質問って リファ読めば解決するレベルだろ、どうせ。
リファ読めレベルじゃない程度ではある初心者の質問を何度かしたけど、大抵親切に 教えてもらえたけどなあ。 もちろんここで聞く前に公式掲示板のログ検索とかの手段は試して。 (大体それで解決する)
594 :
名前は開発中のものです。 :2008/01/20(日) 14:34:57 ID:7KC90+MF
595 :
587 :2008/01/20(日) 14:52:55 ID:QMN/s3R3
TJSの質問だしたら吉里吉里スレにいけっていわれるんだろなと思った。
OOPごときで何を言ってる。当たり前だろ。それくらい。
>>597 だから、そういうのがくだらんのだよ。
当たり前じゃないユーザがたくさんいるっての。
自分基準で何でも考えるな。
「そういう素人は吉里吉里使うな」とかさー(最近、誰も言ってないけどw
スレタイにKAG入ってるのにね。
599 :
名前は開発中のものです。 :2008/01/20(日) 19:22:24 ID:0SURtyjC
さっさと消えてね☆
600 :
名前は開発中のものです。 :2008/01/20(日) 19:24:52 ID:0SURtyjC
> このスレ、リアルでレベルが高い人と、単純にひけらかしたい人が多くて、 > 初歩的な質問しづらいよ。 自分基準で何でも考えるな > 完成させる手段としてツールを使ってるわけで、 > プログラミングの高みとかぶっちゃけどうでもいい。 自分基準で何でも考えるな
吉里吉里のセーブデータって、フォルダの中身を自分で削除させたりしても 実際のゲーム内では反映されなかったりして、プレイヤー視点で見るとちょっと不便なのですが スクリプト側で管理機能を付けるには、何かいい方法はないでしょうか
自前でやってる
>>601 > 吉里吉里のセーブデータって、フォルダの中身を自分で削除させたりしても
> 実際のゲーム内では反映されなかったりして、プレイヤー視点で見るとちょっと不便なのですが
そんなことありえない
> スクリプト側で管理機能を付けるには、何かいい方法はないでしょうか
erasebookmarkがあるんだからゲームにセーブデータ削除画面を作れば良いだけ
>>601 らんか氏はファイルが実際にあるかを直前で調べてるね
var num = 栞番号;
var tnname = kag.getBookMarkFileNameAtNum(num);
if(Storages.isExistentStorage(tnname) && kag.bookMarkDates[num] != '')
{
//省略
}
起動中にファイルいじられるとしくじると思うので、それが嫌なら事前に
savedataフォルダをremoveAutoPathしてaddAutoPathしておく
>>603 え、そうですか・・・自分で削除したりしても、ゲーム内ではデータが残りっぱなしで
クリックしても元のファイルがない為ウンともスンとも言わない、という感じだったんですが……
もうちょっと調べてみます
>>604 ありがとうございます、後程試してみます
kotさんですかw?>ID:QMN/s3R3
メモリ上に残ってるだけじゃね?
栞があるかはシステム変数で保存してるから栞ファイル1つ消してもあるように見えたりするぜ
ああそうか 吉里吉里終了してからセーブデータ削除しないとだめだね
いや、終了してから消してもシステム変数は別ファイルに残ってるから関係ない
セーブ画面とか出す直前辺りで
>>604 のみたいにファイルあるか確認してシステム変数直さないと
質問です。 サイト等を見て、グラフィカルボタンと画像をアニメーションさせる方法はわかったのですが、 この二つをあわせて、アニメーションボタンを作ることはできないのでしょうか? 具体的に言うと、通常時はボタンの上の文字が一定間隔で点滅(アニメーション)し、 マウスを乗せるとアニメが止まり、常に文字が明るくなる状態(オンマウスグラフィック)にしたいのです。 普通にimagesタグの変わりにbuttonタグを使えばいいのかな?
自分でレイヤサブクラスつくるとか。
>>611 アニメーション処理の機構(AnimationLayer) とボタンの機構(ButtonLayer)は残念ながら
機能の構造が別物で、素の KAG ではボタンはアニメ化できない。
自前でアニメ処理を ButtonLayer に追加するとかしないとダメ。
ヒントとしては、 ButtonLayer はボタンの状態の切り替えは、画像を横方向に
切り替えることで実現してるので、それを邪魔しないように、縦方向にパターンを並べて、
それをタイマーで切り替えるとかすれば単純なぱたぱたアニメなら実現できる。
>>611 ButtonLayerにTimer組み込んでてきとーに画像変えるとか
TJSの、kag.*****〜 の***の部分の解説は、リファレンスのどこに載っているんでしょうか?
例えば
>>604 の「kag.getBookMarkFileNameAtNum」等も、三種類あるリファレンスのどれにも見あたらなくて……
>>615 のってない。自分でソースを読んで流れを追いかけて意味を理解する。それができるようになったら、まあ、一人前?
>>611 格好を気にせずにKAGでやるならば、通常用のアニメーションをボタンの上に表示するとか。
んで、ボタンタグのonenter、onleaveで該当レイヤのvisibleを切り替え。
点滅用の前景レイヤのindexをメッセージレイヤより上に持ってくるのと、
そのレイヤの.hitThresholdもさわらなきゃかな、かな?
アニメでもタイマーでも、押した後の後片付けがちゃんとしてないとエラーで落ちますよ。
>>615 >>1-5 にある、OUTFOCUSや、リファレンス片手にKAGのシステムフォルダ内を眺める
おさかな工房のソースを眺めるとかしていると割とあっさり見つかるかな。
収集している情報がまだ少ないみたい。もっと集めれ。
商用みたいに行き届いたものを目指すなら避けられない道なのでぼちぼちやりましょう。
嫌なら帰れw
kagのソースコードはもうちょっとコメント書いといて欲しいよな寄与コード充てる度に汚くなってるから。 今はkagのパーサ部分が文書化されたから追いやすくなったが・・・。
>>618 俺、KAGのソースが先生だからどういうソースがキレイなのかワカンネw
断片的なことなら偉そうに講釈もたれるけど、まとまったブツは恥ずかしくて
見せられませんやね。
この人のKAGプラグインのソースが美しいとか、ありますかね?
標準のkagプラグインは2種類の書式がまざってるからキレイ以前に見づらいと思うが・・・他言語でOOPなソース読んだ方が良い。
OOP(笑)
622 :
611 :2008/01/21(月) 14:41:03 ID:VNZMMMpA
吉里吉里のリファレンスがもう 既に意味の分からない自分はどうすれば・・・ コマンドライン?引数?アーカイブ? リファレンスを読んで何が出来るかも分からん・・・
皆さんスクリプトの勉強って どこから入ればいいんですかね・・・。 TJS2についての本とかあればいいんだけど 無さそうだし。
>>624 TJSの講座があるから見てみるといいんじゃない?
OOPっていう奴はなんなの?OODとかしないの? どうでもいいけど
>>620 > 標準のkagプラグインは2種類の書式がまざってるから
そうなのか。つまり、キレイかどうか意識する状態ですらないと理解してみた。
まぁいいか。なんとなく動くから。学問がやりたいわけじゃないし。
気にはなるけど、OOPは生きてるうちにそういう出会いもあるかしらーな感じで
>>624 他人が作ったプラグインの内容を理解してみればいいんじゃね?
kag3/kag3pluginフォルダの中に、デフォでいくつかはいってるぞ
雨効果とか、拡縮とか。
新安定版ktkr
>>629 >吉里吉里 version 2.28 rev.2 → 2.28 rev.3
>
>きわめてまれなケース (Timerのintervalが小さいときにTimerのインスタンスのinvalidateを頻繁に行ったときなど) に
> EAccessViolation 例外が出る可能性があるのを修正
>
>レアケース(レイヤの重ね方によっては出る) でEAccessViolationが発生していたのを修正。
>原因は ComplexRect.cpp 内のアルゴリズムミス。
>このエラーは、制作時に出なければ実行時にもおそらく出ません。
そろそろ2.29使ってみようかな・・・
ビルドに失敗するアルゴリズムで実行時に出ないってどんなバグだよ。
制作時=ゲーム作ってるとき 実行時=ゲーム配布してプレーヤーがあそんでるとき ってことだろ
それだとバイナリが同じでアルゴリズムも同じなんだから当たり前だと思うが・・・
2.28 rev.3 には2.29の更新も含まれてるの?
>>633 環境が違うと発症するバグはいくらでもある
よくそんなバグ見つけたな
質問です。 前景レイヤーのみや、文字レイヤー、もしくは文字のみを揺らしたい時は @moveを使うしかないのでしょうか? @quakeのようなタグはありますか?
>638 quakeタグはあるけど、文字レイヤーのみ揺らすとかはできなかったような。 細かく指定したいなら、プラグインを自力で作ったほうがよいかと。
つ [snowuninit]
2.30RC1 来てる。こんどこそほんとに新安定版。
>>642 よく読め。TMPGEnc Plus の使用許諾には利用制限は特にないぞ。
XPress とかはたしかに個人利用に限る旨の記載がある。
しかし吉里吉里の掲示板は見辛いな 何でこんな風にしてるんだろ、上下分割フレームって
>>645 でも確かに投稿パスワードが分かり難いよね
>>644 質問の仕方も微妙だし、伝聞の回答を信頼する理由がない。
不安なら直接問い合わせてから決めればよかろう。
ちなみに FAQ を検索すると、plus なら商用OKという記述がある。
マウスカーソル定数で、リンクの選択ってcrHandPointですよね? なんか、これだけWINで設定してるカーソルのと別のが出てくる・・・(Windousデフォの手の奴) 省略しても同じ。 他の定数はちゃんと切り変わって、リンクの選択自体も吉里吉里以外ならちゃんと変わってるんだが・・・。 原因分かる方いませんかねorz
他のゲームとか見ると、リンクもcrArrowになってる事が多いのだけれど、こっちの方が一般的なのかな・・・。
いらなくなったプラグインを解放する時って、 プラグインをkag.removePlugin()して、 オブジェクトをkag.remove()してinvalidateしてれば大丈夫?
Plugins.unlink()はMainWindow内でも呼ばれてないからそれでいいんじゃね? TJSインタプリタにプラグインの解放任せた方が安定するし。
>>652 と思ったら
>>651 しても typeof(object) が 'undefined' にならないやorz
これどうすりゃいいんでしょ。
連スマソ。delete 使えば typeof は消せるのね。 でもオブジェクトの削除に使っても大丈夫?
TJSのdeleteって辞書配列の要素消せたっけ? pulgin = null; であとはGCが拾うから実害はないと思うけどnullチェックしとけば大丈夫。
nullが代入されるだけじゃね?メモリ解放はGCのタイミングだろ
ついでに指摘しておくと null と void は厳密には違う
>>655 はJavaScriptと勘違いしていると思われ
>>658 もひとつついでにいうと、void いれてもそれに対する参照そのものが回収されることはない。
void をさしてる参照が普通に残る。
本当にまるごと消したい場合は delete 使うので正しいです。
Arrayクラスのsaveを使って、テキストファイルに配列の内容を書き出したいんですが これって二次元配列は書き出せないんでしょうか
すいません、リファレンスをしたにスクロールしたらsaveStructというのがありました・・・
連続で済みません、saveStructで書き出したファイルを、そのままの構造で読み直す事はできないでしょうか? 具体的には、例えばPC1で書き出した配列を、PC2でもそのまま復元できるようにしたいのですが 普通にloadすると、ファイルの先頭から一行ずつ読み込まれる為復元できません
Scripts.execStorage
単純に、saveStructで吐き出した配列のファイルをScripts.execStorageするだけだと、エラーが出ます (ファイルの終端にセミコロンが付いていない為) 吉里吉里自体のセーブ・ロードもScripts.execStorageでやっているようなので、方法はあると思うのですが 上手くいきません・・・
Scripts.evalStorageじゃないの?
>>665 ありがとうございます、Scripts.evalStorageで思っていた動作ができました。
本当にありがとうございました。
吉里吉里を起動したと同時に 公式ホームページへ自動ジャンプさせたいのですが ジャンプはクリックした時にしか出来ないのでしょうか?
質問の意図が分からん 逆になんでクリックした時にしかジャンプ出来ないと思うのか理由を聞きたい つーかそんな動作をする必要あるの?俺ならブラクラ認定だなw
複数行の文字列を中央に揃えつつ、左から表示していく方法ってないでしょうか? [style align="center"]は何故か中央から表示されるし・・・。 初歩的な質問ですみませんが、リファレンス見ても解決しなかったのでorz 吉里吉里って文字表示関連のプラグインってあまりなかったり?
数行なら一行一行表示位置を調節すりゃいいんじゃね?
ってプラグインあるじゃんw ちゃんと探せよ
>>670 残念ながら、量が膨大です・・・。
少なければ、[locate]タグで調整すればいいのかな?
って、今、プラグイン見つかりました・・・見落としすみませんです。
たいへんもうしわけないんですが…ちょっと質問が。 元の画像(JPG)はなんともないのに、吉里吉里で表示したら一部バケてるというか、JPGで圧縮強くしたやつみたいなのが時々あって。 どうやっても直らない(というか、特別変なことしてない)のって、吉里吉里の仕様だと思ってあきらめるしかないんでしょうか?
なった事が無いからわからない 再現してみないことには
一つ思い当たるのは ICCプロファイル埋め込んだJPGだと windowsでは色がおかしく表示されるとか聞いたことあるな
>>673 多分、コマンドラインオプション
-jpegdec (JPEG画像デコード精度)
JPEG画像のデコード(展開)の精度の設定です。
設定可能な値は 'high' (高い), 'normal' (標準), 'low' (低い) のいずれかで、このオプションを指定しないと 'normal' が指定されたものと見なされます。
'high' を指定するとデコードは低速になりますが、画質は高くなります。'low' を指定するとデコードは高速になりますが画質は低くなります。しかし、見た目ではほとんど違いはありません。
吉里吉里設定でも変更可能
質問です。 .ks内のラベルの数(または特定の文字列の最後にマッチしたもの)を調べて、 変数に入れることができるような方法はないでしょうか? 正規表現とやらを色々いじくってみたんですが、全然できない・・・。
>>677 何をしたいのかさっぱりだが、やっぱ正規表現だろうな
*で始まり任意の文字列の後|があり、その後は文字なしor任意の文字列 っていう正規表現でダメかね
/^\*/にマッチした行数をカウントするだけだろ
>>678 KAGでクイズゲームみたいなものを初めて作ってます。
問題の表示部分で、ユーザーに選択されたメインジャンル変数とサブジャンル変数を[if]で分岐させた後に、
そのサブジャンルの各問題に振ってある番号内でintrandomをして、問題番号という変数に入れています。
それで、メインジャンル+サブジャンル+問題番号を合わせた新しい変数を[jump]タグのtargetに使って、
各問題の書いてあるラベルに飛ばしているのですが・・・。
この方法だと、問題を1問追加していくたびに、
一々、各サブジャンルのintrandomの最大値を問題数と同じに書き直さないとダメなんですよね・・・。
そこで、この最大値に何か、問題数の把握できるモノを代入できないかなと。
>>683 ありがとうございます。
クイズ系プラグインは結構漁ったのですが、
問題文の部分がTJSだったり、KAGの使えない外部ファイルだったりして、
表示の演出にプラグインのマクロや、KAGをふんだんに使ってる身としてはちょっと敷居が高かったです('A`)
ただ、どういう処理をしているのかは、参考になるので、
なんとか解読して、応用していけたらなと思ってます。
>674-676
いろいろありがとうございます。
正直、あまり想像もしてなかった設定みたいなのがあるみたいで・・・。
コマンドラインオプションというののせいかなー…と思ったんですけれど、ちゃんとnormalになってたし、そんなに違いはでないとなってるし。
どうもhtmlのCG集作ってたのと同じ感覚で作ってたのが悪いんですかね。
次のからはBMPか吉里吉里のTGLというやつにしてみようと思います。
ちなみに色バケ(?)はこんなカンジでした。そのまま貼ると身元バレして恥ずかしいかもしれないから一部分でアップにしたやつで。
ttp://para-site.net/up/data/1182.jpg jpgは圧縮度10(一番圧縮しないでキレイ)にしてて、元のファイルを「画像とfaxビューアー」で見ても全然なにもないのに
吉里吉里で表示してると時々こんなんが。
容量大きくなっちゃうけど、まぁそんな100Mも越えないだろうからいいか…。
みなさんBMPとかTGL使っているんですかね?
>>685 とりあえず別のお絵かきツールでjpg保存してみれば。
俺は主にPNG
jpeg2000の事もたまにで良いので思い出してあげてください。 ウェーブレット変換にロスレス圧縮+オプション仕様でなんでもありっていう万能形式なのにほとんど実装がない。
い、いろいろすみません(。。;)。 >685 持ってるのがフォトショップLEだけなので…。 >687 なんだかPCの負担が重くなるっぽかったので、自分のではちゃんと動いても他の人PCだとどうかわからなくなりそうだから…とパスしてました。 でも過去レスを見たのでhighでやってみましたが、まったく色バケが解消されたうえになんだか画面がスッキリきれいに!?Σ(゚ロ゚;) ありがとうございます。KAGでいっぱいいっぱいで、吉里吉里のリファレンスまで見てませんでした(というより見てもよくわからないんで避けてました)。 この前まで、てっきりBMPかTGLの人ばかりなのかなぁ…と思ってたら、pngメインの人やhighにしてる人もけっこういそうですね。 次のを作る時に、jpgでいくか他のにするかちゃんと試してみようと思います orz。
やっとできたわー。 結局正規表現使わなかったけど・・・orz 初心者スクリプトですが、一応貼っておきます。 重複問題対策は・・・まあ今のところはいいや。 レスくれた人どうもサンクスでした! [iscript] var q1 =[0]; var q2 = q1.load('問題集.ks'); var jf = "*"+tf.ジャンル+tf.形式; //ユーザーに選択されたジャンル var rmax = 0; for (var i = 0; i < q2.count; i++) { if (q2[i].substring(0,3) == jf) rmax = ++rmax; } var qn = intrandom(1,rmax); tf.問題 = jf+qn; [endscript] [jump target=&tf.問題]
onHitTestでマウスホイールのアップダウンを受け取りたいのですが、 仮想キーコードとかあるのでしょうか?
やっぱりonMouseWheelになってしまいますか…。 取り敢えずないと判っただけでも、ありがとうございました。
inputタグを使うと、OK・キャンセルボタンの付いたダイアログが出ますが キャンセルを選んでもOKと同じ処理がされます。 キャンセルの時にはキャンセルの処理をさせたいのですが、どうすればいいんでしょうか?
>>695 内容を入れる変数をちゃんと初期化してる?
>>696 変数の内容に関わらず、OKを押してもキャンセルを押しても
ダイアログに入力した内容で、inputタグの次の処理に進んでしまいます。
取り敢えず今は、ダイアログの中身が空白の場合には別の所にjumpするよう、inputタグの次の行に処理を書いていますが・・・
>>697 inputタグのキャンセルボタンには「ウィンドゥを閉じる」程度の意味合いしかない
他に何かさせたかったら自分で記述しないと
ウィンドゥ 罠ドゥ罠ドゥ
そーいえば昔ザナドゥってゲームがあったな。
あったあった。88で挫折した覚えがある。
あー・・・子供の頃にすごいあこがれだったゲームだ 結局その頃はPCなんて買えなかったから、テクノポリスとかコンプティークで記事読むだけだった子供時代・・・(T▽T )。
色んなソフト触りながら流れてきたんだけど、これいいな…。 ゲーム作成初心者は寄り付かないイメージがあるが(自分もそうだった)、使ってみると楽しくて仕方ない。 こうなったら頑張って完成させるわ。
ゲーム作成初心者は寄り付かないイメージっておかしいよな。 初心者用のツールなのにね。 作成ツールを比較してのせてるサイトがよくないんじゃない? 難易度高、上級者向きとか書いたりして。 kagはHTMLと記述の仕方が似てるからサイト持ってる奴には NスクやLMよりよっぽどとっつきやすいはずなのに。
CGモードや回想モード、環境設定のサンプルがないのが、結構大きな障壁なのかも。 この辺りの大きなサンプルはウェブ上での記事が意外に少なく、本で少しある程度だし。 あとはトランザクション周りでしょうか。 理解しにくいし、また理解できても画像一つ表示するのにタグをいくつも書く必要があって面倒だし。 マクロを使えば手間は軽減できますが、 ずぶの初心者にはマクロを作成すること自体に妙な抵抗があるみたいですね。経験的に。
自分もNスクリプタのほうが楽って聞いてたけど、いじりはじめたらKAGのほうが使いやすいと思った。 トランジェクションのタグってのも、それだけ個別にいろいろ調整しやすいと思ったけどなぁ。 なんでも省略になってるノートパソコンより、いじりやすいデスクトップの自作マシン(マイクロじゃないほう)みたいな?
トランザクションとかトランジェクションとかお前らなにいってんの いきなり長文で
フイタw
フィルタ
710 :
705 :2008/02/01(金) 19:02:12 ID:viMwaJS/
あ、トランジションていうんだ・・・いままでずっとトランジェクションと覚えてた・・・orz。
おまえ705だったのか
どう覚えたらトランザクションとトランジションを間違えるんだ。 トランザクションって何かしってんのか?
begin transaction commit transaction SQL意外思い浮かばないや
トランジェクションwww
会社でトランザクションと言うつもりが トランジションと言ってしまった俺が通りますよ
>711 あ、違う。705じゃなくて706.。 ・・・こんなポカばっかりだからロクなの作れないんだなorz
今どきVB製でもないのにメニューバーでセーブロードを行うゲームがあると聞いてやってきました
フツーにカスタマイズ可能。以上。カエレ
Windowクラスでスクロールバーが表示された時に、 バーをonMouseWheelで動かしたいのですが、 それらしいプロパティもメソッドもなくて…。 何か方法はないのでしょうか。
>>720 これはプライマリレイヤの絶対位置なので違うんです;
無理なんじゃね? 自作のスクロールバーでもにょもにょすればいいかも
723 :
名前は開発中のものです。 :2008/02/03(日) 00:24:08 ID:gMGw67cR
質問させてください。 最近吉里吉里でノベルゲームを作り始めたのですが、テキストフレームをpng形式で作って表示させたらフレーム内が オーバーレイで表示されてしまいます;;どうやったら普通に透過させることができるでしょうか。 ちなみにPixiaでpngファイルを作りました。
>>723 Config.tjsをよーく読んでみる
>>719 自前でレイヤで作ったスクロールバーを実装するしかないんじゃね?
>>723 オーバーレイの意味がわからないけど、透過させたいのであれば、透過させる部分の不透明度を下げないとだめじゃない?
pixiaの使い方はしらない。
元pixia使いだがpixia関係なさそう
質問です。 例えばなのですが、レイヤー1とレイヤー2に画像を設定して それらを全く同じタイミングで表示させるにはどうすれば良いのでしょうか? よろしくお願いしますm(_ _)m
>>729 @image layer="1" storage="画像1" visible="false"
@image layer="2" storage="画像2" visible="false"
@layopt layer="1" visible = "true"
@layopt layer="2" visible = "true"
class ButtonLayer extends Layer { function CGModeLayer(win, par){ super.Layer(...); cursor = crHandPoint; loadImages('_24'); setSizeToImageSize(); } function finalize(){ super.finalize(); } function onMouseDown(x, y, button, shift){ if(button == mbRight) visible = false; else if(button == mbLeft) enabled = false; } } こんな感じでボタンを作った時に、 visibleをfalseすると直ぐにカーソルのポインタがアローになるのですが、 enabledをfalseするとカーソルを動かすか、もう一度クリックしないとアローになりません。 enabledでvisible同様に直ぐにカーソルがアローになるようにできないのでしょうか。
>>731 class ButtonLayer extends Layer {
function ButtonLayer(win, par){
です、間違えてました…。
enabled をプロパティにして setter にカーソルを変更する処理を 書けばいいと思います↓ var __enabled; // この行は初めのほうに書いてください property enabled { setter(x) { cursor = x ? crHandPoint : crDefault; enabled = __enabled = x; } getter() { return __enabled; } }
>>733 えーと、ちょっと説明不足でした。
実際の所はenabledが直ぐ反映されないのが問題なのです。
>>735 >>731-732 のクラスをボタンとして表示してクリックでenabledをfalseにした時に、
ちゃんと直ぐこのボタンが無効にならないのでどうにかならないかという話なのです。
カーソルどうこうの話は無効になったかなってないかの判別の為です。
いやそれは分かってるよ。 enabledはちゃんと呼ばれてるしボタンもちゃんと無効になってるから安心していい。 カーソルはイベントが呼ばれないと描画されないからすぐには変わらないんだよ。 ボタンが無効になったかどうか心配なら、 ボタンを2回押してみてイベントが二重に呼び出されていないのを確認してみて。
738 :
733 :2008/02/05(火) 19:21:04 ID:Xu1gT+Ek
>>736 初めからそう書いてくれればよかったのに。
てっきりカーソル云々が重要なのだとばかり思ってました。
about.ksでバージョン情報を表示させたいのですが…… [title name="バージョン情報"] ここにバージョン情報表示処理 [waitclick] [close] という書き方をしていて、最後にクリックをしてウインドウは閉じますが メインのゲーム画面にボタンを表示していたりした場合、 閉じた後にボタンクリックの動きをしてしまいます これを防ぐにはどうしたらよいでしょう? KAG : 3.28-stable rev.2です
いや普通に理解できるが
そうだね。 タイマーまわして時間差アンロックとか、変なことしか思いつかんから 何もレスできないけどもがー
Window.onDeactiveでリンクをロックしてonActiveでアンロックするとかしたらどうだろう
バージョン情報なんてそんな大きく場所とるものでもなさそうだし、 ボタンに被らない位置に表示するようにしたら?
>>743 そこでやってもonHelpAboutMenuItemClickの処理の前後に挟んでも駄目でした
ただ、TJSから[locklink]を呼ぶやり方がよくわからなかったので
適当にサブルーチンにしてcallExtraConductorで呼び出してます
このやり方でよかったのかはわかりません
とりあえず素直に右上の×で閉じる仕様にします
未練があったら公式で聞いてみます
>>746 うわあ、まさにそれですありがとうございます
2.30 RC1にしてみたら問題なかったです
今現在、MP3やWMAを再生できるようになるプラグインってどっかにない? ユーザが好きな音楽を流せる機能を付けたいんだけど、WAVやOGGじゃあマイナーすぎて実用的じゃなくて・・・。
・吉里吉里1の頃にあったmp3再生DLLを使う ・KbMediaPlayerのプラグインで配布しても問題ない奴を探す
mp3は有料ゲームだとライセンス料払わないといけないかも
場面によってメッセージウィンドウの大きさを変える 方法ってある?
position使え
>>751 場面によってメッセージウインドウのサイズを再定義するだけだろう
いまどきoggはマイナーじゃないだろDMPがMP3に偏ってるだけで
>>754 エンドユーザにとってはOggはマイナーじゃね
>>750 MP3ファイルを配布してなきゃプラグイン自体の利用は大丈夫じゃないかな
調べずに言ってみるけど
吉里吉里1 SDKがまだどっかで入手できた気がするけどどこかわすれた
Ogg FLACはマイナーかも知れんがOgg Vorbisは最近厨雑誌でも見るぞ。
吉里吉里2でもMP3プラグインは使えるぞ。 あとライセンス問題だけど、5000本以上売れたとしても、収益が10000$以下ならばライセンス料は無償。
758 :
名前は開発中のものです。 :2008/02/08(金) 18:22:42 ID:F5ZUTMyo
TJSでマクロ登録したタグを呼び出すにはどうしたらいいでしょうか。
>>759 kag.onConductorScenarioLoad = function(name){return name;};
kag.process("[mymacro]");
ちょっと試してないけどこんな感じでKAGParserに通さなきゃ無理じゃないかな
>>736 の人、問題解決したのかな?
てっか、
早送りに入るとき、関連ボタンの表示をupdateしてたんだけど、
2.80rev3から2.30 RC1にUPしてみたら実際の描画が来なくなってもーた。
しょうがないから、クリックでconductor.trigger('click')
するのタイマーに入れるという方法で対処してるけど..
もっと良い方法はないものか...教えて下さい、お願いします。
>>761 そういうのは再現するコードをくんで dee たんに送ってみてもらうのがいいと思うぞ
763 :
761 :2008/02/09(土) 19:45:51 ID:kjW6Y+U+
>>762 レスありがとう。
2.29-dev.20070521で「画面更新イベントがcontinuousハンドラよりも
前に呼ばれていたので後にするように」って仕様が変わった所かな?
バグではないのに、dee たん様のじゃましたくないなぁ〜
自分が気が付けないだけで、スマートな対処がありそうな予感がするんだけど。
次に安定版出た頃、解決してなかったら、本家の掲示板で相談するかもしれない?
761誤記修正)2.80rev3→2.80rev2,来なく→先に来なく,
クリックで→MainWindow.tjsのonPrimaryClickで
メニューアイテムから直接URLをブラウザで開きたいんですが(修正パッチを公開しているHPなど) そういう事が出来る関数とかはありますか?
あります。
できました。失礼しました。
767 :
760 :2008/02/10(日) 14:37:46 ID:TFA0khKv
// AfterInit.tjs kag.eval = function(scenario, countpage = true, immediate = false) { onConductorScenarioLoad = function(name){ return name; }; process("\n"+scenario, '', countpage, immediate); onConductorScenarioLoad = function(name){ return true; }; } incontextof kag; 実際に吉里吉里で動かしてみたら意外と面白い使い方ができるかもしれないと思った 759のようにマクロでも大丈夫だし、ラベルもいれれる (シナリオファイルへの)リンクのときは、ストレージを明示する必要あり [iscript] kag.eval(' *start [link target="*next"]リンク[endlink][s] *next [r] リンク先[s] '); [endscript]
KAGでKAGスクリプトを作るツールを作れるねw
メッセージレイヤのフレーム画像指定時、文字の不透明度は固定のままフレーム画像の不透明度を変更したいのですが、 1枚のメッセージレイヤで実現する方法が分かりませんでした。 position タグの opacity は frame=""(フレーム画像未指定) の時に有効と言う事で、変わりに layopt タグの opacity を使ってみましたが、 フレーム画像と一緒に文字の不透明度も変わってしまいました(タグリファレンスに position の opacity とは違うと書かれているので当然と言えば当然ですが)。 2枚のメッセージレイヤを使用し、片方にフレーム画像を表示、もう片方に文字を表示し、フレーム画像側の透明度を調整する事で 結果として意図した動作にはなったのですが、そのためだけに2枚のメッセージレイヤを使うのは違うような気がしました。 なおフレーム画像を指定しなければ position タグの opacity を用い1枚のメッセージレイヤで対応できました。 何かご存知の方ご教示下さい。
「ラーメンを食べた」まで読んだ
>769 KAG的に正しい方法は、 ・あらかじめフレーム画像を加工する ・2枚のメッセージレイヤを使う(片方は前景レイヤでも可) のどちらかだなぁ。 素直にどっちかの方法でやるのが安全だと思うよ。 後者のやり方が面倒なら、マクロを組むといい。
>>771 やりたかったのはメッセージの不透明度をユーザーが調整できるようにしたかったんです。
>>769 が言葉足らずで申し訳ない。
その為、今回の場合は後者で行くしかないですかね。
>>772 はメッセージではなく、メッセージウィンドウの間違いです。
774 :
名前は開発中のものです。 :2008/02/11(月) 14:15:34 ID:2xDO4O/g
すみません、質問です。 吉里吉里で変数に最大値、最低値を設けることってできるのでしょうか? 値を足し引きして、マイナスになったら0で、150を越えたら150で止められるような。 やはりifを駆使しないとだめでしょうかね。
>>774 プロパティ使え
もしくは代入するときに関数使うようにしてもいいけど
どっちにしろifとかは使う
776 :
名前は開発中のものです。 :2008/02/11(月) 14:31:51 ID:2xDO4O/g
>>775 プロパティ?(´Д`;)
とりあえず、ベストを尽くしてみました。この方法がベストかは知らないのですが…。
[ignore exp="tf.体力>=0"]
HP 0/150[r]
[endignore]
[if exp="tf.体力>=0"]
HP [emb exp="tf.体力"]/150[r]
[endif]
[if exp="tf.体力>=150"]
HP [emb exp="tf.体力"]150/150[r]
[endif]
>>776 吉里吉里って書いてたからtjs使っていいのかと思った。すまn
それでいいと思うよ
もしくは↓みたいにtf.体力に値を入れる時点でマクロ使う方法もある
[macro name = "setHP"]
[eval exp = "tf.体力 = +mp.value"]
[if exp = "tf.体力 > 150"]
[eval exp = "tf.体力 = 150"]
[elsif exp = "tf.体力 < 0"]
[eval exp = "tf.体力 = 0"]
[endif]
[endmacro]
[setHP value = "160"] ←tf.体力は150になる
778 :
名前は開発中のものです。 :2008/02/11(月) 16:18:17 ID:cBZQ9wp2
>>777 tjsとか分からなくてすみませ…。
なるほど、そういうマクロ化もありなんですね。
上手く組めたら、利用してみようと思います。
ありがとうございました。
>>769 時間に余裕があって、ダメもとでいいなら、
「MessageLayer.tjs」の
「lineLayer」辺り、検討してみてもらえると嬉しいな。
こっちの話、
>>771 が当然のように思っていたけど、
769見てて、
imageタグみたいに、反転でフレーム読み込み出来ると
面白いかもと思った。
(今のトコ、たかが画像3枚増の話で、必要性はないからやらないけど)
780 :
779 :2008/02/11(月) 18:55:25 ID:OB4sAUxC
うわ〜超誤爆だ。ごめんなさい。↑ウソです。 文字の濃度を替えたいわけじゃなった。 メッセージレイヤの濃度をユーザーの設定項目にするって、 流行なのかな?
>>780 以前ユーザーにメッセージウィンドウの透明度をもう少し上げたいと言われ、それからは実装するようにしています。
流行かどうかは分かりませんが、各社の体験版をみてると結構な割合で実装しているように感じます。
またフレーム画像無しの場合は1枚のメッセージレイヤで実現可能なことから、
>>779 のように MessageLayer.tjs に手を入れればフレーム画像ありでもメッセージレイヤ1枚で実現するかも知れませんね。
>>779 MessageLayer#clearLayer の方じゃないか?
>loadImages(frameGraphic, frameKey);
>setSizeToImageSize();
この部分を、テンポラリレイヤを作成し、opacity変えてcopyRectするとか。
ためしてないから意図した結果になるかわからんが。
>>769 MessageLayer.tjs をオーバーライドしてもよいなら、の話ですが、
内部に不可視のレイヤを一枚作ってフレーム画像はそこに読ませる。
画面更新処理で operateRect を使って任意の透明度で合成。
でどうでしょうか。
すまん、被った
785 :
名前は開発中のものです。 :2008/02/11(月) 20:20:12 ID:cBZQ9wp2
>>774 です。
見た目は何とかなったのですが、
回復によってHPが上限以上に増えていることには変わりなく…行き詰まりました。
上限を決めたい場合、KAGだとどういう方法が一番良いのでしょうか。
>>782 >>783 どうもありがとうございます。
MessageLayer.tjs をオーバーライドするのは問題ないです。
operateRect 使えば出来そうかもと思いました。
参考にさせてもらいます。
787 :
名前は開発中のものです。 :2008/02/11(月) 21:17:42 ID:cBZQ9wp2
>>744 です。たびたびすみません。
変数を再設定すればいいことに気が付きました。ご迷惑おかけしました。
吉里吉里でゲームをやっと完成させたのですが 何故か10分くらい連続してプレイすると画面が動かなくなります クリックしても一切反応しませんが、右クリックとゲーム終了だけ出来る状態で 後は先にも進まないし、画面も一切動いてくれません それに止まる場所はいつも違う所で、時間も10分〜50分とランダムな感じです なんか吉里吉里のシステム設定に問題でもあったのか それとも自分が使っているPCとの相性が悪いんでしょうか…
>>788 そういう時はスペックなどを添えて質問したほうがいいよ
790 :
788 :2008/02/12(火) 00:13:01 ID:vvAKUZI/
>>789 すみません、スペックは
OS:WINDOWS XP
メモリ:256MB
CPU:2.8GHz
です、ちなみに作ったゲームをデバックで確認すると
反応しなくなった部分のページが全部表示されて(フラグ無視で)
ジャンプの所も無視でそのまま止まっていました
とりあえず止まるとこのスクリプト書いてみ 多分タグの書き忘れか書き間違い
あ、止まるとこはランダムなのか ・使ってる吉里吉里のバージョン確認(最新かどうか) 古い奴だったら、最新の安定版に変えてみる 最新だったら、吉里吉里側の新たなバグの可能性もなきにしもあらず ・他の吉里吉里作品をそのPCで動かしてみて同様の症状がでるか これで再現されたらPCの問題 それ以外だったらやっぱり記述ミスかと思うので エラーログが出力されてたらそれを確認してみる されてなかったらここに止まったとこのスクリプト上げてみる
793 :
788 :2008/02/12(火) 01:25:34 ID:vvAKUZI/
>>791 *その1
;アニメーション開始
[image storage="アニメ01_a.png" cliptop=0 clipleft=0 clipwidth=175 clipheight=400 layer=5 left=412 top=50 opacity=30 visible=true]
;★動作開始
[playse storage="se2_s1.wav" buf=0]
[image storage="消.png" layer=9 left=0 top=0 opacity=255 visible=true]
[zoomrot storage=cg11-0.png layer=9 time=1000 cx=0.5 cy=0.5 sr=360 ss=0.1 sx=0.5 sy=0.5 dr=0 ds=1.0 dx=320 dy=235 opa1=0 opa2=255]
[wzoomrot]
[wait time=1000]
[image storage="消.png" layer=9 left=0 top=0 opacity=255 visible=true]
[wait time=1000]
[wm]
[jump storage=324.ks target=*その1]
止まる所はいつも違うのでなんとも言えませんが
大体このような所で止まる事が多いです
ジャンプの所でジャンプしなかったり、した先で止まったりします
書き方として改行で書いているのが原因なんでしょうか?
改行する時は「;」と入力した方が良いのですか?動作に関係無いと思っていたのですが
794 :
788 :2008/02/12(火) 01:31:16 ID:vvAKUZI/
>>792 最新でも安定でも同じ症状でした
また、元々吉里吉里のゲームとかを沢山やって来たので
他のソフトで同じ症状は無かったです
なので自分の書き方の問題だと言うのは分かっているのですが…
エラーログは一切出現されずに動作が動かなくなるので…
動かなくなる箇所も毎回違うので、一体何が原因か検討もつきません
まずはコンソールのログだな。多分設計ミスか記述ミスだから
796 :
788 :2008/02/12(火) 01:34:33 ID:vvAKUZI/
>>792 連続投稿すみません
症状は、ラベルに何も書かないでそのラベルにジャンプすると
動作がそのままになりますよね、それと全く同じ症状です
でもジャンプなどのコマンドも認識してくれないのは変ですよね?
ジャンプを連続で何回も繰り返すと止まるワケではないでしょうし
デバックで確認してもラベルの内容が全部表示されるだけです
797 :
788 :2008/02/12(火) 01:37:53 ID:vvAKUZI/
>>795 ログを観ながら動作して止まった時に
エラー文章も表示されずにただ最後に
01:36:16 [jump storage=324.ks target=*その1]
と表示されるだけで、ジャンプしてくれないんです
エラー表示してくれれば原因が分かるのですが…
>>797 storage=324.ks target=*その1
の内容はどんなスクリプトなの?
これが実際のスクリプトなら 最後から2行目のwmは不要 move使ってねーじゃん あと、冒頭の*その1に続くループ仕様になってるとしたら、 2週目以降はアニメ_01.pngは見えないんじゃないの 消.pngが非表示になってないから
800 :
788 :2008/02/12(火) 03:22:31 ID:vvAKUZI/
>>798 内容はまた書いた物と似たような物になります
>>799 いえ、*その1の上にmoveを使っていますが
time2000に設定してあるため、まさかの時のためにバグらないように「wm」を置いてます
消もopacity調整のために置いてあるので(ズームの時などそのままのopacity数値になるので)
他のページに移動した時に該当レイヤーはすべて新規に書きます
とにかくイラストの動作やジャンプミスは何回も確認して1つも無かったですし
エラーログも一切出なかったので本当に理由が分からないです
サブルーチンを3000個程使用しているので、1つ1つ「return」があるか確認してみます
ちょっとサブルーチン関係が原因かと思ったので
色々とありがとうございました
でも起きる場所がいつも違うので、サブルーチンにミスも無いと思うんですけど
>>788 [endif]を一個忘れたりすると、途中の[jump]とか無視されて
ファイルの最後まで一気にログが表示されたりする、
ファイルの最後あたりのログが一番最後に表示されているので、
その付近と思うが、実際は、全然違う個所だったりする場合がある
問題の個所に[jump]や[call]で飛んできたりしていると
バグが出るタイミングが毎回違うので、
パッと見て、再現性がないように思われる
ファイルの最初から最後までじっくり見て調べるしかないな
802 :
788 :2008/02/12(火) 04:14:26 ID:vvAKUZI/
>>801 ありがとうございます。
やはりendifやcallのあたりが問題あるような感じですね
ラベルが1000個近くあるので、1つ1つちゃんと確認してみます
ありがとうございました
TJSの プロジェクト管理 定義語の色分け クラス・関数・コメントの折りたたみ が出来る(もしくは拡張によって出来る)エディタって無いかな? KAGには対応してなくても構わないので。
>>803 秀丸
emeditor
この二つくらいしかないと思う
805 :
名前は開発中のものです。 :2008/02/12(火) 13:55:11 ID:c2PnIvdm
winyみたいな名前の更新止まってるエディタがPJ管理っぽいことできるよ。
>>767 これはいいですね。
ご教授頂きありがとうございました。
807 :
初心者 :2008/02/12(火) 21:41:59 ID:5bvs4xkI
吉里吉里2/KAG3初心者でいろいろ調べたのですがわからないので質問させて下さい。 ゲーム中で「自動的に読み進む」をプログラムのほうからON/OFFしたいのですが、その方法がわかりません。 ユーザーがクリックしなくても「システム」の「自動的に読み進む」をONにしたいです。 「Config.tjs」と「first.ks」でいろいろ設定したのですが、うまくいきません。 >[clickskip enabled=false] のことではないです。 クリック待ちグリフを表示させずに「自動的に読み進む」方法です。
>>807 メニューから操作できるような内容は「MainWindow.tjs」内を読むと載ってる
>>807 拡張子が tjs のファイルすべての中から、 AutoMode や automode
と、記述されている個所をすべて見て、
「オートモードを始めるぞ」って関数を探す
[eval exp="kag.それっぽい関数"]
で、「希望する動作をするか試す。」を、繰り返す
ってのは試したか?
810 :
初心者 :2008/02/12(火) 22:20:33 ID:5bvs4xkI
>>808 「MainWindow.tjs」内
var autoMode = false; // 自動読みすすみモードかどうか
を「true」にすることで「自動的に読み進む」をONにできました。
ありがとうございます。
811 :
初心者 :2008/02/12(火) 22:23:06 ID:5bvs4xkI
>>809 そちら(automode)をいろいろ試していてうまくいかず、こちらの板で質問させて頂きました。
解決して感謝しております。初期設定の問題でした。
>>811 うまくやらんと画面クリックでオートモードが解除されるぞ
813 :
初心者 :2008/02/13(水) 02:35:05 ID:jf2uElh5
>>812 画面クリックでオートモードが解除されました_| ̄|○
うまくやる方法はわかりません・・・。
何がやりたいのかいまいちわからん clickskipが違うって事はデモシーンやりたいわけじゃなさそうだし。
なんだろうな… 単にクリック待ち入れたくないだけなら、 [l][p]タグの代わりにウエイトでも入れとけばいいんじゃないか
Plugins.link("fstat.dll"); Storages.deleteFile("a.txt"); fstat.dllを使おうと思ってこんな感じにやってみたのですがうまくいきません。 readme にはStoragesに機能を追加するとあったのですが…。
>>816 a.txt はどこにある?
あと fstat.dll はどこからもってきたやつ?最新を自分でコンパイルした?
エラー内容くらい書けよと
>815
[wait time="&kag.autoModeLineWait"]とか、
[wait time="&kag.autoModePageWait"]ってとこかな?
個人の能力にもよるけど、
まじの初心者さんなら、「MainWindow.tjs」は、
いじらない方がイイ気がするのは、気のせいか...
([eval exp="kag.autoModeMenuItem.click()" cond="!kag.autoMode"]
とか、タグで間に合うこと多いし)
>812はエスパーさん?
よし、σ(;;)もエスパーさんに挑戦。
>>810 さんなら、
「MainWindow.tjs」の調査の前に
「KAGのリファレンス」、特に「TJSをもっと使うために」の内容を
アバウト理解する方が、たぶん、急がば回れでしょうか??
併せて、デフォルトの操作系(812の件とか)に、ある程度、プレーヤーとして馴染み...
その後、「OUTFOCUS Wiki」等でautoModeを調べてみるといいかも....
これじゃ、嫁さんかな(>_<)
>>817 あ、配布されてるのにはdeleteFileメソッドが入ってないんですね。
自前でビルドしたのを使ったら問題なく削除出来ました。
教えて頂きありがとうございました。
>>813 autoMode = falseにしてる処理の場世をMainWindow.tjsから探すといい
副作用出そうだから俺なら強制オートモード用のフラグを作って制御する
>>821 そのくらいできるならわざわざここで聞かないんじゃね
背景にアニメーションGIFを使う方法はないでしょうか。 吉里吉里はsusieプラグインが使えるとのことですが、susie自体が アニメーション表示に対応していないため、アニメーションGIFを表示する プラグインも無いようなのです。 よろしくお願いします。
>>823 アニメーションGIFをわざわざ使う理由がよくわからん。
asd記述するとか、mpegにして動画再生とか。
GIFだから、256色しか使えないけど、いいのかね。
誰か、アニメGIFを吉里吉里のasdに変換するツール作ってる人がいたような
826 :
名前は開発中のものです。 :2008/02/14(木) 04:58:33 ID:+OTrzRJC
827 :
初心者 :2008/02/14(木) 08:01:22 ID:yn8oUuuA
>>814 ,815,819,821,822
皆さん、ご教授ありがとうございます。
いまノベル的な文章中心で挿絵ありの同人ソフトを製作中です。
文章中心という性質上、クリックなしで読み進められるようにしたい、
クリックで読み飛ばして欲しくない、という意向です。
「first.ks」文頭に
[clickskip enabled=false]
文末に
[clickskip enabled=true]
を追加しました。
「mainWindow.tjs」を変更して、
/*C*/var clickSkipEnabled = false; // クリックスキップが有効か
/*C*/var nextSkipEnabled = true; // 次の選択肢(/未読)まで進むが有効か
var skipMode = 0; // スキップのモード
// 0=スキップなし, 1=クリック待ち記号まで, 2=改ページ待ち記号まで, 3=次の停止まで
// 4=早送り
var autoMode = true; // 自動読みすすみモードかどうか
(中略)
828 :
初心者 :2008/02/14(木) 08:02:06 ID:yn8oUuuA
>>827 技術的な問題以前のツッコミで申し訳ないが、
> 文章中心という性質上、クリックなしで読み進められるようにしたい、
> クリックで読み飛ばして欲しくない、という意向です。
これは製作者のエゴ。ユーザからすれば自分のペースで読みたいはず。
俺なら間違いなくストレスを感じてしまうと思う。
任意にクリックして読み勧める普通の形式にすることを強くオススメする。
一番嫌われるのにね、ユーザ無視してウェイトをふんだんにかけ 「演出です!」って言い張るのは。 姿勢がおかしい。 「文章中心という性質上、ユーザが快適に読み進められるようにしたい、 クリックで読み飛ばせないような優れた文章を書く」 が目指すべきところだろうが。 頭冷やして考えてみて。 お前さんが本を読んでいる時に、横にページめくり係がいて、早く 読み終わろうが、読み終わってなかろうが、勝手にページめくって いくとしたら、そこまでしてその本読みたいか?
831 :
初心者 :2008/02/14(木) 09:22:44 ID:yn8oUuuA
>>829 >>830 それは言わんとするところはわかるのですが、
文章というか、システム上のもどかしさというか、
画面上に表示されるのは文章のうちの4行で、
読み進めるには何百行もある文章を毎回クリックしないと読めません。
クリックのほうに気をとられて文章を読むほうに集中できないと、
テストプレイの段階で気付いて、クリックなしでも自動的に読み進める
ことができるようにしたいと考えました。
あくまでもユーザーの利便性を優先した仕様です。
説明書に「自動的に読み進むほうが楽なのでおすすめします」と書いて
おいても説明書を読む人は少ないだろうし、クリックしながら読んで途中で
疲れて文章に集中できずに投げ出されるよりも、最初からクリックなしで
読み進められるようにしておこう、と。そういうことです。
>>831 悪いが、それは典型的な自己満足ADVになってしまうパターンだ
ユーザーの利便性を考えるならオーソドックスなシステムにするのがいちばん
ついでに言うとトランジションやエフェクトもクリックでスキップ可能にしておくべき
そもそも「何百行もある文章を〜」って発言自体が見当外れ
世間のADVが、1MBを超えるようなテキスト量で
せいぜい1クリックあたり25字×4行程度しか表示されなくても
誰も文句を言わない理由を考えてみたらどうだろう?
>>831 言いたい事は同じ製作者として分からないでもないけど、
ユーザーからしてみたら製作者が読んで欲しい部分も
サラッと読み流して欲しい部分も等価だという事を見落としているね。
それに、「クリック連打で飛ばせる」という余裕があるからこそ
ストレスを感じずに、結果的にマイペースで読み進めることが
出来るという側面もある。
余裕が無い状態でイライラしていたらそれこそ文章なんて
頭に入ってこない。
834 :
初心者 :2008/02/14(木) 10:06:40 ID:yn8oUuuA
>>832 >>833 普通のADVはクリック3〜4回で分岐点や移動の入力になると思うのですが、
ノベルゲームに近い性質上、延々とクリックが続くことになり、自分で
テストプレイしてみた感覚ではクリックはめんどくさいと感じました。
「自動的に読み進む」を選択すれば楽に読めるのですが、それに気付かない、
それを知っていてもしないユーザーも多いことと思います。
実際にテストプレイしてみた自分の感覚を信じたいと思います。
「クリックで読み飛ばせないような優れた文章を書く」
それを目指しているのですが「チャタレイ夫人の恋人」のような文学作品でも
目的の文章目当てに読み飛ばす読者がいるでしょう。
読み飛ばされた部分に作者の伝えたい部分とか深い味わいがあることもあります。
映画館で映画を見る時に「早送り」はできませんよね?
自分的には映画館で映画を見るような感覚で文章を読み進めるノベルゲームに
したいと思っています。
それが従来の形と違う、束縛されるというなら、そうした作者の意向が強く反映
されるのも同人ソフトの特色のひとつであるとしか答えられません。
ひとりよがりといえば、同人ソフトはどれも多少なりともひとりよがりで、
同時にそこが魅力に繋がってる部分もあるのではないでしょうか?
OKOK、俺が悪かった もう好きにするといい
映画とノベルゲーは全然違うからなぁ。 オートクリックでストレスをあまり感じなかったのはLittleWitchのFFD作品か マイ・スイート・トマトってやつぐらいしかちょっとおもいつかない。 どちらにしろそれは文章中心じゃなくて音声・絵による演出が中心なので オートクリックでもストレスを感じないんだと思う。文章中心だとそうはいかない。 ま、自分の思うようにやってみれば? 大絶賛を受けるようなものを作れるかね。 あるいはただのオナニーでおわるかね。
素直に動画にしろよ
初心者は映画館でセーブ&ロードしていることに驚きを隠せない
>>824-826 823です。
aviを容易にアニメーションGIFに変換できるので、たとえば
イルミネーションが瞬く夜景をノベルゲームの背景に使えたら、
手軽でシステムの負荷も軽くできるのではないかと考えました。
ご教示いただきましたasdについて、じっくり勉強してみます。
ありがとうございました。
もしかして、@ifって重ねがけOK? 例えば「フラグAがオンの時、フラグBの状態で実行されるものが変わる」 って条件にしたいとき、 @if exp="f.A==1" [if exp="f.B==1"]フラグBが1の時に実行[endif] [if exp="f.B==2"]フラグBが2の時に実行[endif] @endif とやっても全く問題なし? [endif]が@if exp="f.A==1"と対応していると間違えられるかと思って わざわざ@ignore exp="f.A!=1" 〜 @endignore にしてたんだけど…
>>840 おk
だと思う……実際そうやってるし……
>>828 たぶん、828さんがやりたいと思うようなことを
「吉里吉里/KAG」で今のアプローチのまま、愚直に実現することは技術的に
十分可能と思われます。が、途中、派生的に解決したり
考えたりしなければいけない点が色々と沸いてくるので、
今の828さんのスキルでは、少しだけ厳しいのかなぁと思います。
(変数と関数の違いがお判りになっていますか?tjsの基本的文法は?
evalタグからkagの変数を弄るのとクラスの記述自体を弄ることの結果的な
差異は認識されていますか?)
現状のように、その都度、この板で質問されるのでは、
ちょっと、「教えて君」度が高くなり過ぎかとも思いますし...
あくまで個人的な意見です。一度落ち着いて考えてみて下さい。
今、こだわっていらっしゃるアプローチ以外に
もっと、楽で効果的な手法に気づかれるかもしれませんし...
同人で
文章中心で勝負なら、「Yuuki! Novel」はいかがでしょう?
直感的に使えるから敷居低いですよ。(プレーヤーにも)
出来ることが限られる分、迷うことも少ないし。
(若者センスの同人作品なら「LiveMake」が多い気がします)
対して、「吉里吉里/KAG」は、色々、カスタマイズして使えるから
スクリプター的には楽しいけど....
自由に(個性的に)カスタマイズして使うには、
リファレンス等の情報を体系的且つ網羅的に読みこなせる
経験(か根気か天賦の才)がないと痛い(tjsを弄るなら、プログラミィングの素養も)
と改めて感じます。
843 :
842 :2008/02/14(木) 13:09:40 ID:2WWZSEk6
↓
>>829-833 商業系の作品でないなら、操作系も含め多少、
製作者のエゴが出てる方が面白いと思っていますが、
去年、読んで楽しかったノベル(ADV)のマイベスト3(内2作は同製作者)は、
3作ともノベルエンジンに「Yuuki! Novel」を使っていたのには、
少し(労力の割り振りの点とか)考えさせられています。
σ(;;)は819ですが、度重ね
長文&連投&板のKYで失礼いたしましたm(_ _)m
当分消えるので、後のフォローどなたかお願い致しますm(_ _)m
YUUKI作品でクリックもセーブも出来ないゲームやったことある。 絵本みたいな雰囲気でそこそこ面白かったけどプレイ中は苦痛だったなあ。 20分くらいだったと思うけど。プレイ時間にもよるね。 あまりゲームやらない人が対象でフリーゲームならいいのでは?
最近このスレの女性比率が高い気がする。なんとなく。
tjsを弄るなら、プログラミィングの素養も プログラミィング( ̄ー ̄)
氏がノベルゲーに馴染みが無いということがエスパーできた。 とりあえず想定するユーザー層が絶賛してるノベルゲーをやってみれ。 クリックをうまく利用した演出、 無意識的なクリック連打によるビート感とグルーヴ感を体験して 俺たちの世界へレッツトランジション
ノベルゲームと本と映画じゃぜんぜん違うもんね
「以降約30分に渡り、読むだけの進行となります。ご了承ください」 で知られる某ゲームのような、カルトな人気を誇ってしまうことに なるかもしれないぞっと。
あ、正確には「30分程度に」だ m(_ _)m
クリックが面倒な人用に自動で読み進むがデフォで機能として付いてるのに なぜ強制的にオートにさせたいのか全く持って意味不明 テストプレイで面倒くさいと感じたのは 自分で書いてさらに何回も読んだ文章だからだろ それに読む人によって文章の読む速度が違うから オートにしたら間違いなく遅いか早いかでストレスが溜まる 地の文はなしで会話文はボイスにして文字表示はなし あとは絵を動かしまくって動画でストーリーを表現 そんな映画的作品なら強制オートでもいいんじゃね?
>>849 でもスキップが使えるしそれを前提にした作りだから
事情はちょっと違う気がしなくもない
ま、固い信念持ってるようだから、もう好きにすりゃいいんじゃね。 少なくとも自分はそんな糞仕様で明らかに文章も下手そうなゲーム 絶対やらんな、というだけ。 んなもん、メニュー全部消して、バーに一つだけ「自動的に読み進む」 出しとけば? とでも思わなくもない。
良いUIデザインの基本はユーザーに主導権を渡すことだってばっちゃが言ってた。
>>828 812で予言した者だが、そんなんしちゃってセーブとかできるん?
調べてないけどstableがtrueにならないんじゃないかなあ?
保存・復帰なしの読みっぱなしでの紙芝居ならいいけど
あと、個人的にそれしたいならそこをtrueにするんじゃなくて
関数の頭でreturnして抜けちゃったほうがよい気がする
てゆうかオートなんかなくても、[l][p]使わずに 全部[r][cm][wait]で処理すればおk
良く考えたら、自分、自動で読み進める機能使ってても読み飛ばすわ。 (むしろ適当に読み飛ばす作品の時に、自動で読み進める機能使う) 動画見てる時も別窓開いて作業しつつ、見たい感じのところだけ見たり するもんな。
吉里吉里の話題から脱線してるが、 長文を読ませるなら、テキストファイルでいいんじゃね? 挿絵があるならHTMLとか。 クリックがうざくなるなら吉里吉里でわざわざやる必要ないんじゃないかと。 昔アンケートとった事があるが、自分のペースで読み進められる方が良いという回答が多かった。 (参考になるかわからんが、回答数は3桁) 最近は、面倒なゲームは「セーブデータまだー?」になりやすいからな。 まぁ、あとは製作者のご自由にってことで。
質問させてください 立ち絵の処理に行き詰ってしまいました 一色に塗り潰した背景をカラーをkeyで指定したのですが、背景は透過できても、 人物の体を覆うように背景(緑)の色が少し残ってしまい、完全な透過処理が 出来ませんでした…orz 以下が、その時に使ったタグです [image storage="01.jpg" layer=0 page=fore visible=true pos=center key=0x00ff00] 色んな解説サイトを読んで原因を調べているのですが、もしかして、jpgって 立ち絵として使えないんでしょうか? マスク画像で透過処理する方法も試してみたのですが、付属のソフトの 画像フォーマットコンバータに画像をドラッグしても、同じファイルがひとつ作られる だけで、マスク画像を入手する事が出来ませんでした このソフトは、透過処理の施されている画像でないと機能しないのでしょうか… 絵描きの友人に立ち絵を描いてもらっているのですが、画像の透過処理というのはすぐに 出来るものなのか等、教えて頂けると嬉しいです
860 :
859 :2008/02/15(金) 01:19:33 ID:sz8wgUm7
連投すみませんorz ×背景をカラーを ○背景カラーを 立ち絵として使用する人物の絵は、透過しやすいように、 背景を緑一色に塗り潰していました もし、原因がわかる方がいらっしゃったら、よろしくお願いします
jpgは圧縮時に色が微妙に変わっちゃうので 透過には向かない。 bmpかpngで保存するといいよ
大人しくpng使って初めから背景抜いておく方が圧倒的に楽
いや、jpgってどんな圧縮形式か知ってるか? 一色で塗りつぶされているように目では見えても、色情報はそうなってるはずない。 keyじゃ抜けないよ。 透過情報のないファイルをコンバータに入力しても、マスクできるはずないし。
>>861-863 レス、ありがとうございました
jpgとpngの違いもよくわからないような初心者なので、もっと勉強しますorz
立ち絵として友人から送られてきた画像がjpgだったので、bmpかpngで
保存してもらうよう頼んで、また色々試してみます!
いやいや、そこはpngで透過してるやつを頼めよw マスクとかめんどいこと考えなくてもそのまま使えるよ。 友人は線画をスキャナで取り込んで立ち絵を作ってるのかな? どっちにしろ絵師がバックを透過させておくべき。
質問です。 髑髏マークとか温泉マークとか韓国語とかアラビア語って、 PCによっては表示できずに?になるとかって聞いた事あるけど、 吉里吉里でそれを知る関数ってあるのかな? 既読とか発言者の色分け付けてっからインライン文字使いたくないんだ… 複数種類用意するって手もあるんだろうけど… それとも今のPCは優秀でそんなケースは皆無で考えなくても大丈夫なのかな?
× 今のPCは優秀でそんなケースは皆無 ○ 吉里吉里は優秀でそんなケースは皆無
・インライン画像は文字色で表示できる ・UNICODEによる文字表示に対応しているのはWindows98以降
フォントが入っているかどうかをチェック
>>865 レス、ありがとうございます
友人は、フリーソフトのsaiというペイントソフトを使って、直接そこにイラストを描きこみ、
色塗りなどをしているようです(線画をスキャナで取り込む方法はしてないみたいです)
自分は、編集作業とシナリオだけ書いているので、イラスト作成ソフトがどんな機能を
持っているのかもわからないのですが、友人に透過処理を頼んでみます
ご教授頂き、本当にありがとうございました!
>>870 フォトショしか使わないからよく分からんけど、
スキャナで取り込まないなら普通バックは透過になる。
透過処理する必要もない。
それをわざわざjpgで送ってくるあたり
初心者ってレベルじゃねーぞっていう不安を感じるw
まあこれからも色々壁にぶつかるだろうががんばれ。
とりあえず友人にはpngで送ってくれと言うんだぞw
>>871 SAI ってばりばりのペイントツールなので、背景に常に1枚白いキャンバスがあって、
PNG で出力したら、フォトショでいうところの統合された状態でしかでてこないです。
αつきレイヤの概念はあってそれをそのままPSD出力できるので(この場合背景は出力されない)、
>>870 は、絵師さんにはSAI からPSD で出力(ファイル/指定のファイル形式で出力)してもらって、
それを吉里吉里の画像コンバータで PNG か TLG に変換して使えばいいでしょう。
SAIをつかってるってことは、わりと純粋な絵師っぽいので、
作業の一番最初に領域をきっちりきめてから、透明領域を保護してその範囲だけ塗る、
といった、立ち絵作成に必要な概念が欠けてる可能性も高いので、塗るときにキャラの
外側部分は塗らないよーに、というのをちゃんと説明しないとはまるかもしれない。
SAI のキャンバスの背景色が変更できるとわかりやすいんだろうけど、
そういった機能はないようなので、一番下にはでな原色とかで塗りつぶしたレイヤを
1つつくっておいて、はみ出しとか塗りもらしが無いのを確認して、最後にそのレイヤを
非表示にしてからPSD出力してもらうようにすると間違いが少ないかな。
吉里吉里の画像変換ツールは PSD で表示されてるレイヤだけ統合して出力してくれるので、
それできれいに抜けた PNG/TLG がつくれます。
そうなのか、透明の背景くらいあってもよさそうなのにな。
>>872 で問題解決っぽいね。
うん。そのぐらいあるだろうと思ったらなかった^^; 統合処理で最初に何色で塗りつぶすか、だけの処理の違いぐらいだろうし、 出力で「PNG(背景透過)」を足してくれって作者に要望だせばあっさり通るかもね。
作業段階で非可逆なデータをやりとりするって (あたりを付けるための下書きとかは別として) あたりまえのことなん?
>>875 普通は、最終段階で(吉里吉里用の素材として)PNGかJPEGになるけど、それ以外はPSD。
SAIで線画描いて、Photoshopで塗り。
人にもよるだろうけど 線画と塗りをそれぞれ別のアプリでやってる人は多いんじゃないか? 俺も線画コミスタで塗りフォトショ 背景あるCGはSAIとか昔のペインター併用することも
>>867 ,868,869
レスありがとうございます。
付属のreadme.txtに一文書けば問題なさそうですですね。
>878
ちょっと待った。95系のOSじゃ髑髏は出ないよ。
逆引きマニュアルのサンプルコード(↓)を動かしてみたけど、
うちの98環境じゃ表示されなかったし。
ttp://homepage1.nifty.com/gutchie/kirikiri_kag2/faq_message009.html たぶんOSによるUnicodeの内部処理の違いが原因。
KAGのリファレンスにもこう書いてある。
> 日本語文字以外の言語を表示するためにはいくつか条件があります。
>
> レンダリング済みフォントファイルを使わない場合は、ゲームをプレ
> イする側の OS が Windows NT 系 ( Windows 2000 や Windows XP )
> であること ( レンダリング済みフォントファイルを使用する場合は
> プレイする側の OS は関係ありません )
インライン画像が嫌なら、レンダリング済みフォントを使うしかないんじゃ
ないかなぁ。
質問です 立ち絵をゆっくり表示させる方法と、立ち絵の表情を緩やかに変える方法って、何かあるでしょうか? スチルの場合、01との表情違いを下記のタグで組み込んだところ、キャラの表情を 緩やかに変える事が出来たのですが、立ち絵だと、一瞬だけ表示されてすぐ消えてしまいました [wait time=100] [backlay] [image storage="スチル02.jpg" layer=base page=back] [trans time=1000 method=crossfade] [wt] 立ち絵の表示も、今はパッと映ってパッと消える、という感じの繰り返しになってしまっているので、 キャラが消えた後の余韻などを残したいのですが…色々試してみても、上手くいきません… 立ち絵を画面上に浮き上がらせるように表示する方法が何かありましたら、教えて下さい
backlayタグで、現在のオモテ(fore)画面をback画面へコピーし そのあとでback画面の情報を書き換えて transタグによってfore画面とback画面を入れ替えるわけです。 入れ替えると、先ほど手を加えたback画面がfore画面に表示されます。 画像を緩やかに消すには back画面のその画像が読み込まれているレイヤーに対し、画像のクリアーを行ってから transタグで入れ替えればいい back画面の状態を把握していないと意図どおりには動かないので 把握できるようにいろいろ試すしかない
>>870 PNGで透過部分を含めて保存したものでもいいし、αチャンネルと一緒に保存した物でも良い。
個人的にはマスクの赤い色のおかげで抜き具合を目で見て確認できるαチャンネル入りのPNG24あたりがいいとおもう。
すけ具合も調整しやすいし。
吉里吉里ってエラーになったりすると、インフォメーションが出現して ゲームがそのまま中断してしまいますよね エラーが出ても無理に次に行かせるシステムには出来ないのでしょうか? (例えば指定の効果音が無くても飛ばして次の行に行ってくれるような)
>>883 効果音が見つからない場合、 SE.tjs で
if(!found)
throw new Exception("効果音 " + storage + " が見つかりません");
としているのが、止まる原因かなとおもうので、この記述を無くせばエラーが出なくなるかなと。
試してないので分かりませんが。
また他の場合、強制終了をソースのどの部分で出しているかを特定し、書き直すなり消すなりすれば希望の動作になるような気がします。
でもそれやると意図しないところで問題が起こった時に気付きにくくなるから、 アプローチとしてはファイルがない場合は再生しない処理を自分で書くべきだと思う
try 〜 catch に書き換えればいいと思う
開発中なら、デバッグメニューのシナリオの再読込を活用... 配布時の話なら、そんな傍迷惑なものは配布しない!! 効果音だけなら885でもいいが、基本的には、 必要ファイルの確認は、 手作業か検索ツールを使うなどして、 スクリプターがちゃんと責任を持って行う。 例外処理(try/tjsリファ参照)を仕込むのは、 PC環境や微妙なタイミィングで起こる可能性のあるエラーの場合。 (883のそのレベルの質問ではないと思われる)
指定の効果音がないっていう状況がないわ
効果音じゃなくてBGMならユーザに自分で用意させるって状況はなんとなく想像できる。 まあなんにせよ、該当部分だけを try でくくって例外捕まえるのが良いかと。
今クリッカブルマップを作っているのですが、画像ファイルと領域画像ファイルの大きさは同じなのに、サイズが違うといってエラーがでます。 どうすれば解決できるでしょうか?
まずはどう記述したかと、正確なエラーメッセージをコピペではるところからかな。
892 :
名前は開発中のものです。 :2008/02/17(日) 21:04:31 ID:04Z0cz69
すいません、張り忘れてました;; ;title.ks全文です ;メッセージの非表示設定 [layopt layer=message page=fore visible=false] ;タイトル画面 [image storage="titlea.jpg" layer=base visible=true] [mapaction storage="title.ma" layer=0 page=fore] [mapimage storage="titlea_p.png" layer=0 page=fore]←ココの行でエラーメッセージがでる エラーメッセージ: title.ks 行6 タグ:mapimage(エラーの発生した前後のタグを示している場合もあります 領域画像 titlea_p.pngはメイン画像とサイズが違います
すいません、自己解決しました。 ;修正 [image storage="titlea.jpg" layer=base visible=true] [mapaction storage="title.ma" layer=base page=fore] [mapimage storage="titlea_p.png" layer=base page=fore]
コミックメーカー2にあった機能みたいに パッケージしたxp3ファイルの中の エラーログが出る箇所表示してくれるような機能あればいいのにね 動作確認に時間が掛かりまくる 一括でチェックしてくれるツールが欲しい
あれば嬉しいけど、 C++とか、それなりに出来る人でも、xp3の 汎用的なチェックツール作るのは無茶大変じゃないかな? 梱包前で、自分限定ユースなら、 JScriptとか使用して、 簡易で部分的な文法チェックとか、ファイル確認なら気軽にやれる? 同じ、dataからxp3を2つ作って、ファイルの比較すれば、 偶々のxp3化の失敗は、はじける? いずれにしろ、梱包したら、一度は通しで、動作確認はするなぁ〜
いや、リリースする前の状態をチェックすりゃいい
一応通しでチェックは勿論するけどさ やっぱりチェックだけだと不安なモノがあんだよね何故か だからツールとチェックで絶対安心が欲しい まぁちゃんと作ればそんな心配ないんだろうけど さすがに今回のはシナリオファイルが多いから不安だ… リリース後にすぐパッチ修正とか格好悪いしね
俺のところは、シナリオをイベント毎に分割して100ファイル超えてる。 基本はツールでデバッグして、XP3化した後に人手でデバッグ。 ツールは改造したKAGで、エラートラップしてファイルにログ出力してる。
ツール公開して
ログ出力まではしないがデバッグ用のKAGプラグインは作ってるなあ
質問なんですが、効果音を何秒間鳴らせる、って指定するタグはありますか? [playse storage="効果音.wav"] [waite time=700] [stopse]([ws]) でやってみたが、上手くいかない…orz [stopse]だと2秒ぐらいで切れちゃうし、[ws]は最後まで鳴ってしまうんだ [playse storage="効果音.wav" time=700]も試してみたけど、効果ないみたいで… 10秒間の効果音を、7秒ぐらいで切れさせる方法があったら教えて下さい
902 :
901 :2008/02/19(火) 00:59:06 ID:qmOG0arr
すみません、タグ間違えました ×[waite time=700] ○[wait time=700]
700は0.7秒だぞ
ロードした後、そのシーンで鳴っていたBGMを鳴らす方法ってありますか?
特別なことをしなくても、その時鳴ってるbgmの情報は、勝手にセーブデータの 中に入るものだが。
906 :
名前は開発中のものです。 :2008/02/20(水) 11:51:37 ID:t1G0uk0N
自分はNscripter使いなんだけど 知り合いが吉里吉里で開発したいというので協力するつもりなんですが、 吉里吉里ってシステムカスタマイズ面倒くさそうだなぁ という独り言。
Nスクで開発するように仕向けるのがキミの仕事だ
TJSバリバリの吉里吉里使いとしては NScripterでのシステムカスタマイズのほうが面倒に感じる
Nスクって吉里吉里のTJSみたいな 柔軟性は無いのけ?
言い意味でも悪い意味でも柔軟性は無い
はにはに見たらNスクも結構やれるんだなとか思ったけど、 きっとものすごい頑張らなきゃいけないんだろうね。 そうなると、情報の多いこっちの方が現実味はあるか。 きょうび、基本機能だけで満足できるのは仕様を知ってるスクくらいで、 複数の人でやってると、どうしても上を目指さざるを得ないという。
Nscripter使ってたけどシステムカスタマイズが面倒で吉里吉里使うようになった俺もいる
全体的に吉里吉里のがなめらかって印象があるな。 ぱっと見でキレイ、カッコイイと思える画面を作りたいなら吉里吉里の方がいいと思うね。
かくして、 Nスク坊やの ちょっとダークで大人な小冒険がはじまったのでした (To be continued ?)
とりあえず右クリックメニューまで一通り揃ってるサンプルスクリプトがあると便利なんですが。
おさかな定食。 あとはマクロで整備。
キミキスのおまけが吉里吉里製ってのは既出?
スレ11で既出 わりと動きとか工夫してて吉里吉里使いこなしてたという印象
KAG使用?
バックログ画面を自作したいんですが(スクロールバー等組み込み) サンプルが見当たりません。どこかにありませんか?
ボタンがメッセージレイヤー上にしか置けないとか腐ってる。
一番いいサンプルは標準のやつだと思う
>>820 キミの能力がね
アーカイブ全部チェックしないで改造とかなに言っているんだ。
@layopt layer=0 visible=true @video mode=layer @videolayer channel=0 page=back layer=0 @openvideo storage=a.mpg @videosegloop start=0 end=60 @playvideo @backlay @trans method=crossfade time=1000 @wt *a| ああああ[p][cm] *b| いいいい[p][cm] こんな感じでセグメントループしている時にセーブして、 ロードで復帰したらムービーの再生がされません。 Movie.tjsにはレイヤ描写モードだったら再生復帰するようなのがあるのですが、 これは元々できないものなのでしょうか、それともやり方が悪いのでしょうか。
pageがbackにしてたからでした;お騒がせしましたorz
「腐ってる」 この言葉が霧愛小父さんの側頭葉を直撃します。 霧愛小父さんだって、普段なら、他の街でなら、スルー出来たかもしれません。 でも、ここは他ならぬ、小父さんの愛する霧の街です。 (平和ボケしたこの街は、邦夫のような子悪党には絶好の釣り場です) (或いは、霧愛小父さんも、自分の若い頃は棚に上げ、 最近の若者はとか言ってる大人の一味かもしれませんね) よせばいいのに、釣られた小父さんの手は滑り、埴輪の頭をボカリ。 (埴輪になんの落ち度があったというのでしょう?) しかも、街の重要な秘密を... (掲載不評のため、本号を持ちまして連載終了... 関係者各位には、深く感謝とお詫び申し上げます)
バックログだけを改行させる方法ってありますか?
任意の改行? それとも自動改行?
アウトプットをfalseにしてから改行して また戻せばいいだけだろ
本文では 「(埴輪になんの落ち度があったというのでしょう?) しかも、街の重要な秘密を... 」 というように行をあけないで表示させて、 バックログでは 「(埴輪になんの落ち度があったというのでしょう?) しかも、街の重要な秘密を... 」 というような具合にしたいです。
hr
kag.historyLayer.store()も知ってると便利
誰かGinnie使ってる人いる? 個人的には一番吉里吉里/KAGエディタで使いやすいんだが
だってシェアウェアだし・・・フリーもあるけど
Ginnie使ってみたけど KAGモードでタグの入力補完はあるのに、そのタグの属性補完はしてくれないのが それができればかぐや姫から乗り換えも検討できるのに
吉里吉里ってスキップ(高速読み進め)ってカスタマイズできないのね。
右クリックメニューで「既読スキップ」を選択したら通常画面に戻ってテキスト早送りさせたいんだけど。
あ、その場合はskipを弄るんじゃなく 右クリックメニュー上で 「通常画面に戻ってテキストを早送り」という命令を実行すればいい kagでも実装できるしtjsで実装してもいい kagならその命令を書いたラベルに飛ぶ
>右クリックメニューで「既読スキップ」を選択したら通常画面に戻って これは無理なんじゃなかったっけ?
たとえば戻るとき一番最後にこうやってフラグがONのときだけ実行するとか [eval exp="skipToStop()" cond="tf.skipflag==true"] いくつか方法がある
質問です。 選択肢のタグを使ってやってみたんですが 一回目はできたのに、二回目のやつで選択肢がでないんです 主人公[r] 「どこに行こう」[r][p] [r] [link target=*ok1].屋上[endlink][r] [link target=*ho1].保健室[endlink][r] [link target=*syo1].職員室[endlink][r] [link target=*ge1].玄関[endlink][r] [s] ;--------------------- *ok1 [ct] 主人公[r] 「何も無い……」[r][p] [r] [link target=*ok2].屋上[endlink][r] [link target=*ho1].保健室[endlink][r] [link target=*syo1].職員室[endlink][r] [link target=*ge1].玄関[endlink][r] [s] ;--------------------- *ok2 [r] 使ったタグはコレなんですが上手くできませんでした もし良かったら教えてください、お願いします
いやな書き方ですね。 なるべく同じことを繰り返すコピペはやめるべきです。 変数を使いましょう。
>>943 とりあえず俺の環境ではコピペしたら正常に動くぞ
他に原因あるんじゃね?
2回目に屋上選択したら選択肢でないってことじゃないよな?
>>944 そういう質問してるんじゃないからさ、指摘は良いけど、同時に答えてやれよ。
それに見合ったレベルでまずは作ってみるってのも大切だろ。
>>943 945の言う通り、正常に動いた。
「選択肢でない」の状況を詳細に説明してくれ。
エラーで止まる? 文字が出ない? 選択できない?
言葉たらずですみません。 「何も無い……」の所で選択肢の文字が出ないのです。 屋上やら保健室などのもちろん選択もできません
>>947 「何も無い……」っていう文字は表示されるわけ?
いえ「何もない」の文字すら出ません 講座サイトを巡ってみても載ってないので、困っています。 エラーの表示は出ていません
マクロにしてたり、そのままのソースじゃないならば currentが移動している メッセージレイヤのvisibleがfalse とかあるよね。
そりゃ単に飛ぶラベル間違ってんでしょ *ok1に飛ぶ直前のスクリプト書いてみれ
[ct]を[cm]に変えれば動くと見た
クリア後の特典みたいな感じでアーカイブ内のおまけ画像を任意の場所に保存したいんだが吉里吉里で可能?
可能
顔グラとかアイコンとかを表示・消去するのってどうやればいい? 右上とか左下とかにポンと置くやつ
>>946 示された範囲のスクリプトでは正常に動くことがたしかめられた
そこでこれより外に問題があると考える
訳のわからなくなるように書くから訳がわからない動作をする
書かなければそれだけバグの入る余地は減る
レベルも何もこれは基本事項。しかし自称プロの中級でもできないやつがいる。
それとも「ほかに原因」の一言の方がいいのか
少々きつい言い方になりますが
>>955 KAGでやるならimageとかindex属性とか
添付のリファレンスをよく読むこと
多分0以外のメッセージレイヤーを使ってて、 [ct]でカレントレイヤーが変わったから見えなくなったんじゃね >952のでいいと思うけど
>>956 944?
「正常に動くから他に原因がある」の一言ついてれば、指摘もいいんじゃないか。
944の書き込みだけじゃ「嫌な書き方」「変数を使え」で、とりあえずの問題解決
には役に立たないからさ。
>>956 前景レイヤでいいのかな?
真四角のアイコンを、メッセージレイヤの上に表示したいんだけど…
>>960 indexの値を高くするとメッセージレイヤよりも上に表示できる
どこまで高くすればいいかはindex属性の説明を見ると詳しくのってる
943です。
>>952 の言うとおりにしてみたらできました
ありがとうございます!おかげで助かりました
皆さんも色々とアドバイスありがとうございます
変数はもう少し慣れてから試したいと思います
>>962 とりあえず、ctとcmの違いについて、リファに目を通しておきなね。
頑張って。
>>961 できた。ありがとうー。
しかし試してみても出来ないのが同時表示。
100×100の画像を左上(A)と右下(B)に表示するとして
[ct]
[image storage="A" page=fore layer=0 index=1001000 left=0 top=0 visible=true]
[image storage="B" page=fore layer=1 index=1001000 left=380 top=550 visible=true]
じゃ表示されないのかな?何か間違ってるかな。
うはwww凄い凡ミスwwwww
>>964 layer=0 index=1001000
layer=1 index=1001000
重ね合わせの高さがバッティングしている
ちがうレイヤーなら indexの調整が必要
今どき Vista の Game Explorer に対応してないとか(笑)
なんだそれは
吉里吉里で初のゲーム完成した! これは最高に作りやすいプログラムだと思ったよ ただちょっとエロイシーンがあるけど 乳首出てなきゃ問題ないよな、PCゲーって18禁じゃなくてもエロいのあるし とにかく吉里吉里は今まで扱ったゲーム製作ソフトの中で 一番最高だった、ここのスレ住人にも感謝します、ありがとうございました
>>971 おめでとう
ところでテンプレで騒いでた奴らいた気がするが結果はどうなったんだ?
ここ以外だとたぶんスレチなのでここで ペイントでメッセージレイヤ作ってるんだけどどうにも透過ができない 岐阜には対応してないしどうすれば透過できるんだ? 頼むから教えてエロい人
>>974 ちょwwww
つまりpngで保存するときに透過できるソフトがあるらしいからそれ使えばいいんだな
こんどからもうすこしマニュアル呼んでみるわ
サンクスコ
テンプレよろしくです。 リンクさえ切れてなけりゃあとはどうでも。 (個人的には、来た当時、色々切れてて、以来使ってない) 【講座】については、 対象ユーザーのレベルも色々、書き手のレベルも色々、人生色々(wおさまりが...)、 自分に合った講座を探そう的な示唆だけでタイトルもURL等も含め紹介不要。 (講座紹介プリーズが湧いても、初心者全般にお役立ちならいいのでわ?) テンプレの情報量が多いと、かえって.. あっそうだ、「AnimationLayer.tjs」に記載された、 animstart タグの loop 属性というのが同梱の「タグリファレンス」の方では、 一覧から抜けているのは、何か意味があるのでしょうか?
>>976 現行のテンプレにあるリンクは全部生きてる模様。
講座は、いまある奴そのままに一票。
困ってもスレに質問することを躊躇う初心者もいるわけだし、
あった方が助かる人も多いと思う。
俺もそのままに一票 まぁ、ありがちな事聞いてくる人は情報収集が下手って事だから 入り口示してもだめなもんはだめなんだろうけどねー
>>977 リンク確認お疲れさま?ありがとうm(_ _)m
その内、話題の講座でも、覗きにいってみます。
もしも、976の疑問にレスくれる人いたら、
ありがとうございます。(そろそろ採番節約。先にお礼です)
吉里吉里3の話題もこのスレでいいのん?
乙
刷れた手乙!
乙
そろそろ埋めるか
乙。
埋めるのか
スレ立て乙 木毎
吉里吉里は俺の埋め
うみゃーせんとだすがばす
乙吉里
きりきりき
ume
うめ
うめ
こぶ
ちゃ
いろ
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。