■ このスレッドは過去ログ倉庫に格納されています
■吉里吉里/KAG/TJS雑談質問スレ■その29
- 1 :名前は開発中のものです。 転載ダメ:2015/06/05(金) 01:50:10.83 ID:r78FM0BY.net
- ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
吉里吉里スレ過去ログ倉庫
ttp://bbs.bokunatu.com/krkr/
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/
吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/
ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。
必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その28
http://peace.2ch.net/test/read.cgi/gamedev/1391503520/
- 187 :名前は開発中のものです。:2015/07/05(日) 15:26:08.78 ID:NTh54/Kv.net
- まじか 環境が悪いのかな
プラグインコールした後にセーブラベル通せば問題なく動くんだけどセーブラベル通らずにシナリオ再読み込みするとなぜか表示されない・・・。
[if exp="typeof global['extsystembutton_obj'] != 'undefined'"]
[eval exp="kag.removePlugin(global['extsystembutton_obj']);"]
[eval exp="global['extsystembutton_obj'].finalize();"]
[eval exp="System.inform('removed!');"]
[endif]
こんな感じで一回消してみたけどだめぽだった。もう少し検証してみてダメそうなら作者さんにきいてみよう・・・
- 188 :名前は開発中のものです。:2015/07/05(日) 15:52:52.79 ID:NTh54/Kv.net
- よかった凸らなくて・・・自己解決した。
エラーログ確認したらマクロが定義されてないってエラーが出てたので>>187のendifの前に
[eval exp="delete global['extsystembutton_obj'];"]
を追加したら問題なく再描画されました。お騒がせしました。
- 189 :名前は開発中のものです。:2015/07/05(日) 19:31:35.37 ID:DyGT/zQI.net
- >>186
俺はKAICHOさんのプラグインを頑張って導入&改造したおかげで
TJSとKAGの構造をスゲー理解できたよ。
大感謝してるわ。
- 190 :名前は開発中のものです。:2015/07/05(日) 20:24:24.10 ID:z1dVhZa1.net
- >>188
それって実はこれ↓じゃないの?
ttp://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html#loadKAGPlugin
『KAGPluginを組み込む時は、first.ksの、「最初のセーブ可能ラベルより前」で 組み込むようにしよう。そうしないと色々不具合が起こるため。』
あそこのプラグインは最初から二重読み込みに対応してるはずなんで、自分で消したりしないほうがいいよ。
>>189
ホントあれ読むと勉強になるよね。感謝感謝。
- 191 :153:2015/07/06(月) 04:55:51.99 ID:hck8VO7H.net
- kagenvcharacterex.tjsで心が折れた・・・・・・
誰かcsvでの立ちキャラ表情合成サンプルくださいorz
- 192 :名前は開発中のものです。:2015/07/06(月) 09:25:31.47 ID:K+aqZ53w.net
- すみません質問させて下さい
雪プラグインを使って背景(base)画像に雪を降らせているんですが
キャラクターの台詞枠(メッセージ0)と女の子の絵(レイヤ0)の上に雪が被ってしまって困っています
台詞枠と立ち絵には被らないように雪を降らせたいのですがどうしたらいいんでしょうか?
初心者ですみません
- 193 :名前は開発中のものです。:2015/07/06(月) 10:03:21.49 ID:XUng+MDK.net
- >>186
最初はあの量の説明で「おおう……」と思ったがじっくりやっていくと
説明は詳しくて、ソースにコメントも書いてあってかなりいいと思う
さらに全部入りサンプルがあるからそれも参考にできるしね
- 194 :191:2015/07/06(月) 10:06:04.48 ID:K+aqZ53w.net
- 因みに、ごった煮的配布場所さんの「雪プラグイン改良版」を使用してみたところ
「file://./d/kkde_200a4/project/(プロジェクト名)/data/snow_5 について適切な拡張子を持ったファイルを見つけられませんでした」
というエラーメッセージが出てしまいました
雪の画像は雪プラグインの画像(0から4)をそのまま使っているのですが問題があるのでしょうか?
(使用しているのは吉里吉里2 2.32です)
- 195 :名前は開発中のものです。:2015/07/06(月) 10:26:59.39 ID:a0eFaZjn.net
- >>194
ごった煮さんのは雪の画像が増えてる。
ごった煮さんところの「全部入りサンプル」を落として、中にある snow_0.png〜snow_7.png を自分のプロジェクトのどこかにコピーしてからやってみ。
- 196 :191:2015/07/06(月) 11:13:02.84 ID:K+aqZ53w.net
- >>195
サンプルを落として雪の画像を使ったところ無事プラグインが動作しました
おかげで立ち絵やメッセージレイヤの後ろに雪を降らせることができました
一人でてんぱっていたので助かりました
教えて頂き本当にありがとうございました!
- 197 :名前は開発中のものです。:2015/07/06(月) 12:43:00.34 ID:qG62lNu9.net
- priority(absolute)を弄ると、雪の奥行きは自由自在
ttp://lightworks.blog137.fc2.com/blog-entry-15.html
- 198 :191:2015/07/06(月) 13:36:49.25 ID:K+aqZ53w.net
- >>197
紹介して頂いた動画参考にさせて頂きました
ありがとうございました!
- 199 :名前は開発中のものです。:2015/07/06(月) 16:24:46.39 ID:xrY9IQ4B.net
- 選択肢からサブルーチンに飛ばしたいんですが、一々linkから他ラベル経由でcall、よりもっと手っ取り早い方法ってありますか?
- 200 :名前は開発中のものです。:2015/07/06(月) 20:27:13.66 ID:NlRkmyHb.net
- >>199
kag.callExtraConductorを使いなされ
この単語でググれば講座も出て来るし
そこに詳しく書いてあるはず
- 201 :名前は開発中のものです。:2015/07/06(月) 20:35:12.27 ID:xrY9IQ4B.net
- >>200
ありがとうございます!
調べてみます
- 202 :名前は開発中のものです。:2015/07/06(月) 23:41:23.16 ID:CbFvTUJb.net
- >>190
それっぽい
セーブラベルより前に置いたほうがよかったのか
- 203 :名前は開発中のものです。:2015/07/06(月) 23:46:08.89 ID:+151RMp4.net
- linkタグのonenterやonleaveの処理にkag.callExtraConductor使うのっていいの?
たとえばそのリンクのexpがどっかにjumpにするような場合
onenterのサブルーチンのreturn時にエラーになりそうなんだが
それにサブルーチンで[wait]とかなんかの処理待ちがあった場合もcallとreturnが合わないエラーになりそう
- 204 :名前は開発中のものです。:2015/07/07(火) 01:39:18.82 ID:LJwNr/wX.net
- 吉里吉里がAndroidで走るようになったら本気出す
- 205 :名前は開発中のものです。:2015/07/07(火) 06:30:04.38 ID:ZjjPSX6L.net
- むしろAndoroid版の吉里吉里を作ろうぜ
- 206 :名前は開発中のものです。:2015/07/07(火) 06:36:44.63 ID:LrTuGv5S.net
- >>203
うちはexpにkag.callExtraConductor使ってるよ
今の所、問題は特にない
- 207 :名前は開発中のものです。:2015/07/07(火) 07:03:19.15 ID:LrTuGv5S.net
- >>203
連レスすまん
質問者の198が言う所の「選択肢からサブルーチンを呼ぶ」という動作なら
うちはexpでサブルーチン呼んで
必要に応じて[return storage="" target=""]で戻り先まで指定してるって話
202の条件で試したことない
- 208 :名前は開発中のものです。:2015/07/09(木) 00:11:33.48 ID:O19Vttjt.net
- xp3に暗号化を掛けたらムービーの再生開始にやたら時間が掛かるようになってしまった。
皆さん、お気を付けて。
- 209 :名前は開発中のものです。:2015/07/09(木) 23:01:35.47 ID:5/BxwPp4.net
- 暗号化は仕組み上あまり時間がかかりそうにはないんだけどな…圧縮したんじゃないの?
- 210 :名前は開発中のものです。:2015/07/09(木) 23:46:29.11 ID:O19Vttjt.net
- 今チェックしたけど圧縮は掛けてなかったよ。
ムービーファイル100MB越えてるからなあ。さすがに仕方がないのかも。
とりあえずムービーだけ生のファイルでリリースすることにしました。
- 211 :名前は開発中のものです。:2015/07/10(金) 03:32:10.43 ID:t9MQnwhN.net
- 動画はサイズによるけど、大きな奴はちょっと裏でなにかやってるとすぐ時間かかったり一瞬引っかかったりする
あと、たぶんメモリきれいにしきれてないせいなんだろうけど、連続してプレイしてるとどんどん動画再生で不具合でまくりんぐ
- 212 :名前は開発中のものです。:2015/07/10(金) 18:25:08.17 ID:UHip6I7J.net
- ユーザーからバックログでジャンプさせて欲しいというご意見を頂いたんですが
どういう風に作れば良いんだろw
面倒な仕様しか思い浮かばない
- 213 :名前は開発中のものです。:2015/07/10(金) 19:56:02.30 ID:6xkw1NTv.net
- 概念としてはバックログの全行についてセーブデータがあれば自在にジャンプできる
そのデータを動的につくるか事前に全部作っておくかでシステムとしては大きく別れる
どちらの場合も巨大になるデータをどうさばくかが難しい
戻れる行数を30行までとか制限してロード時は消えてよければ前者の実装はわりと簡単
後者は動的なスクリプトに制約がでるとかパッチ対応めんどうとかいろいろめんどくさい
- 214 :名前は開発中のものです。:2015/07/10(金) 20:13:09.38 ID:8iQM0K98.net
- 全ページセーブデータとっておくのはスキップ時の速度に影響しそうだな〜
- 215 :名前は開発中のものです。:2015/07/10(金) 21:11:15.16 ID:UHip6I7J.net
- >>213
俺が考えたのは自分のスクリプトで使うタグや関数を文字列に記録しておいて
[hact]で埋め込めば行けるかなあと思ったんだけど
セーブするのと大差ないかなあ。
- 216 :名前は開発中のものです。:2015/07/11(土) 19:35:51.67 ID:lNjmMA8w.net
- oggファイルを再生しようとすると
「有効な SMF ファイルではありません」というエラーになってしまいます。
どうすればoggファイルを再生できるのでしょうか?
- 217 :名前は開発中のものです。:2015/07/11(土) 19:39:18.47 ID:lNjmMA8w.net
- すいませんプラグインが所定の場所に配置されていなかったためです
- 218 :名前は開発中のものです。:2015/07/11(土) 20:52:09.20 ID:Xqr7VRM0.net
- H.264はVistaで再生出来ないって前スレに書いちやったけど
実際はアップデートを適用すれば再生できるらしい
済まん
ビデオの長さが12分を越えた場合も
特許料支払いの責任はECサイトや
DVDデュプリケータの会社が負っているらしい
コンテンツ制作者が気にすることじゃないようだ
- 219 :名前は開発中のものです。:2015/07/11(土) 21:08:37.55 ID:kwLBRYqs.net
- krkr2にもぜひ実装してください(´・ω・`)
- 220 :名前は開発中のものです。:2015/07/11(土) 21:14:10.52 ID:Xqr7VRM0.net
- 一括請求みたいにしないと誰に責任が及ぶのか良く分からないし
MPEG LAも個人や小さな会社といちいち契約するのは面倒だから
こういう仕組みにしたんだろうな
- 221 :名前は開発中のものです。:2015/07/12(日) 04:17:17.76 ID:aCiX8P4t.net
- TJSにもこれからは遅延評価が求められるのではないか
- 222 :名前は開発中のものです。:2015/07/12(日) 10:26:04.93 ID:YmLl5Zjt.net
- 以下の処理で最後に[wt]を入れると背景が消えて画面が真っ黒になってしまいます
[wt]は必ず入れると見たのですが違うのでしょうか?
@bgzoom storage=%cg sl=0 st=0 sw=1200 sh=720 dl=0 dt=0 dw=1200 dh=720 time=1
[backlay]
[trans method=crossfade time=100]
- 223 :名前は開発中のものです。:2015/07/12(日) 11:37:39.63 ID:lPI7jc7p.net
- @bgzoom storage=%cg sl=0 st=0 sw=1200 sh=720 dl=0 dt=0 dw=1200 dh=720 time=1
; wbgzoomでbgzoomの終了を待つ必要がある
@wbgzoom
[backlay]
[trans method=crossfade time=100]
[wt]
;wtはトランジションの終了待ち。普通はtrans直後に入れる
- 224 :名前は開発中のものです。:2015/07/18(土) 16:10:44.42 ID:8F9BVreB.net
- 初歩的な質問。
kagexのコンフィグ画面で窓枠の透明度を変化させるフラグを組み込もうとsf.msg_opacityにスライダーの値を入れようとしたんだけど、なぜかこの記述だと常に255が設定されてしまう。
初期設定は196を入れても、コンフィグに入ると255になるし、メッセージ枠は反映されない。(sf.msg_opacityを調べたら、255のままだった)
何がいけないんだろう? configinit()にも何か記述しないといけない?
//config.ks
[slider width=202 height=28 opacity=0 normal="slidebar" over="slidebar_over" min=0 max=255 value=setMsgwOpacity() nohilight]
[eval exp='configInit()']
[trans method=crossfade time=300]
[wt]
[current layer=message1 page=fore]
[backlay]
[s]
//override.tjs記述
function setMsgwOpacity(opa)
{
if (opa !== void) {
sf.msg_opacity = opa;
}
}
- 225 :名前は開発中のものです。:2015/07/18(土) 19:37:28.47 ID:x+Vuzz9y.net
- >>224
sliderのvalueは変数もしくはプロパティでないとダメかと
[slider ... value=sf.msg_opacity ...]
もしくは
[slider ... value=MsgwOpacity ...]
property MsgOpacity {
getter { return sf.msg_opacity; }
setter(v) { setMsgwOpacity(v); }
}
みたいにする(試してないので動かなかったらごめん)
- 226 :名前は開発中のものです。:2015/07/18(土) 20:27:57.00 ID:kazi0AWf.net
- >>225
ありがとう。
これでうまく行った。
;config.ks
[slider width=202 height=28 opacity=0 normal="slidebar" over="slidebar_over" min=0 max=255 value=MsgwOpacity nohilight]
//overrde.tjs
property MsgwOpacity {
getter { return sf.msg_opacity; }
setter(v) { setMsgwOpacity(v); }
}
function setMsgwOpacity(opa)
{
if (opa !== void) {
sf.msg_opacity = opa;
}
}
- 227 :名前は開発中のものです。:2015/07/19(日) 23:03:37.67 ID:5ViXZq/2.net
- LIVE2Dを吉里吉里でうごかすには何年くらい必要ですか(´・ω・`)
- 228 :名前は開発中のものです。:2015/07/20(月) 00:41:09.48 ID:VDgiHXJv.net
- SDKあるみたいだし、プログラムできる人つれてくれば組み込むのは簡単じゃね
- 229 :名前は開発中のものです。:2015/07/20(月) 02:12:01.14 ID:kSt4V/su.net
- buttonの画像をtjsで簡単に差し替える方法ってないのかな? onやoverがあるから難しいのかな?
- 230 :名前は開発中のものです。:2015/07/20(月) 12:04:59.24 ID:rO8vZw0d.net
- [iscript]
// 作ってみた。不具合あったらすまん
function updateLinkButton(
lay = kag.current, // 対象レイヤ
num = 0, // リンク番号。数値が範囲外だとエラー
elm = %[] // graphic(必須), graphickey(voidでおk)
){
with( lay.links[ num ] ) {
.object.loadImages( .graphic = elm.graphic, .graphickey = elm.graphickey );
.w = [ .object.width ], .h = [ .object.height ];
}
}
[endscript]
; 以下サンプル
[layopt layer="message" visible]
[button graphic="ボタンA"][p]
[eval exp="updateLinkButton( kag.fore.messages[0], 0, %[ graphic : 'ボタンB' ] );"]
; ↑引数一番目は対象レイヤ。voidならkag.current、二番目はリンク番号、三番目は辞書配列でgraphicを指定すると変更できる
- 231 :名前は開発中のものです。:2015/07/20(月) 21:32:56.53 ID:kSt4V/su.net
- >>230
thx でもなんかうちの環境じゃうまくいかないっぽいから、少し弄ってみる
それと前から思っていたんだけど.links[n]って逆引きって言うかこのボタンは何番だろう?って調べる事は出来ないのかな?
コンフィグ画面みたいにボタンの数が多いと、わけわからんようになる。。。。
- 232 :名前は開発中のものです。:2015/07/21(火) 03:15:55.76 ID:sc5eAe5n.net
- >>228
mjd?sdk見たけど割りとちんぷんかんぷんだったでおじゃる…
- 233 :名前は開発中のものです。:2015/07/21(火) 18:46:31.91 ID:zmOiB9Vz.net
- // elementの値がvalueなリンクの引数を返す
// 見つからなかったら-1を返す
function GetLinkNumByElement(element, value)
{
var l = current.links;
for(var i=0; i<l.count;i++) {
if(l[i][element] === value) {
return i;
}
}
return -1;
}
動くかはしらんが、こうAfterInitにでも書いておいて、
TJS式や@evalの中で↓みたいに使うとか?
GetLinkNumByElement("hint", "メイン音量を調節します")
GetLinkNumByElement("graphic", "ボタンA")
- 234 :名前は開発中のものです。:2015/07/21(火) 19:38:11.52 ID:i0jHSYi/.net
- リンクの番号はlinkNumに入ってる
links[n].object.linkNumとか
- 235 :名前は開発中のものです。:2015/07/22(水) 04:31:53.50 ID:J+IrIg+u.net
- var target = kag.current.links[n];の代わりにvar target = kag.current.names[name + work];でなぜ動くのか謎
namesってなんだよnamesって
これが成立する条件がわからん
中級スクリプターの俺には知らないことがいっぱい
- 236 :名前は開発中のものです。:2015/07/22(水) 05:22:49.57 ID:YoJ5Llt6.net
- あー、後者は辞書配列なんだよ、それ。
文字列がキーになっていて吉里吉里がそれで検索してくれる。
- 237 :名前は開発中のものです。:2015/07/22(水) 11:15:01.68 ID:CsmEAKc5.net
- 超初心者です。教えて下さい。
Windows8.1に吉里吉里Z1.1をインストールして起動しようとしたけど、「例外が発生しました」と表示してどうしても起動できません。
WindowsXP-吉里吉里2/KAG3なら解説書読んで起動できました。
吉里吉里Zの起動方法教えて下さい。m(__)m
あとこれからアドベンチャーゲームエンジンの勉強始めるなら、他にオススメのゲームエンジンはありますか?
- 238 :名前は開発中のものです。:2015/07/22(水) 11:41:32.50 ID:nCTgBvOf.net
- 喧 嘩 を 売 る
- 239 :名前は開発中のものです。:2015/07/22(水) 12:01:10.71 ID:YoJ5Llt6.net
- 吉里吉里Zは人柱というか強者向けだからあまりお勧めは……
- 240 :名前は開発中のものです。:2015/07/22(水) 12:04:37.48 ID:P6PPl1rl.net
- なるほど namesはそういうことなのね
こっちが便利なんじゃね?と思ったが二つまったく同じものを座標だけ変えて並べた場合はその場合エラーになるんかね
- 241 :名前は開発中のものです。:2015/07/22(水) 12:05:45.83 ID:CsmEAKc5.net
- 吉里吉里2の方がオススメですか?
- 242 :名前は開発中のものです。:2015/07/22(水) 12:32:16.02 ID:YoJ5Llt6.net
- >>241
マニュアルも解説サイトも利用者も作品数も圧倒的だから……。
エンジン選定はそれが一番重要だと思います。
- 243 :名前は開発中のものです。:2015/07/22(水) 12:42:06.88 ID:CsmEAKc5.net
- ありがとうございます!\(^O^)/
解説書も有るし、吉里吉里2で勉強します!
- 244 :名前は開発中のものです。:2015/07/22(水) 13:31:30.73 ID:P6PPl1rl.net
- c++とか触った事すら無いところから始めた俺からすると
ごった煮さんとこのZの解説を読んでチンプンカンプンレベルならまず2で覚えないと先に進まんだろ
それ以前に俺レベル程度じゃZはあまり恩恵に預かれない
安定してる2の方がマシ スクリプトソースをUTF-8にいちいち変換するのも面倒だし
- 245 :名前は開発中のものです。:2015/07/22(水) 14:13:33.60 ID:GnkwzWXt.net
- Zはデバッガがなぁ…
- 246 :名前は開発中のものです。:2015/07/22(水) 15:26:11.82 ID:nCTgBvOf.net
- 吉里吉里2はデバッガが充実していた・・・?
っていうかコンソールって言いたいのか
- 247 :名前は開発中のものです。:2015/07/22(水) 17:14:04.04 ID:GnkwzWXt.net
- 3つとも愛用してたから無いと不便に感じてしまう
- 248 :名前は開発中のものです。:2015/07/22(水) 22:32:14.63 ID:GXfdVbnU.net
- ZはVSでビルドするためにあるようなものなので
吉里吉里の本体を改造しないなら無理に使わなくていい
- 249 :名前は開発中のものです。:2015/07/23(木) 14:16:36.51 ID:YPfZ6Cm+.net
- 教えてください
var FileParser = new csvParser();
tf.FileList = FileParser.parseStorage("list.csv");
invalidate FileParser;
//list.csv
1月,睦月,January
2月,如月,February
3月,弥生,March
4月,卯月,April
上みたいにしてlist.csvを取得した場合って、どう言う風に配列で収納されてるのかな
tf.FileList.list[0][1]→睦月なのかなと思ったんだけど、違うみたい
根本的に理解が足りてないのかな
- 250 :名前は開発中のものです。:2015/07/23(木) 20:21:57.30 ID:GhxAsd18.net
- まだリリース前なんだが、ファイル破損チェックツールでdata.xp3やkrikr.exe をチェックすると「破損」になるんだが何が悪いんだろう……
署名はちゃんとしているんだが
- 251 :247:2015/07/23(木) 20:28:33.43 ID:GhxAsd18.net
- すいません、自己解決しました。
- 252 :名前は開発中のものです。:2015/07/23(木) 20:58:07.74 ID:BWoZRk6g.net
- >>249
parseStorageはdoLineを呼び出すだけで返り値はないよ
initStorageでファイル読み込んでgetNextLineで一行ずつ取得してくのが簡単
↓で思ってるとおりに動く
function loadCSVFileAsArray(filename) {
var result = [];
var parser = new CSVParser();
parser.initStorage(filename);
while (true) {
var line = parser.getNextLine();
if (line === void) break;
result.add(line);
}
return result;
}
tf.FileList = loadCSVFileAsArray("list.csv");
- 253 :名前は開発中のものです。:2015/07/23(木) 22:10:17.84 ID:GhxAsd18.net
- スレ違いになるけど、CD-ROMで頒布予定なんだけど、
最近はWindows7ばっかりだから、CD-ROMをドライブに入れても
自動インストールが始まらないんだっけ?
- 254 :名前は開発中のものです。:2015/07/24(金) 06:56:28.93 ID:J9odBgUp.net
- OSの設定によるんじゃねーの
- 255 :名前は開発中のものです。:2015/07/24(金) 14:34:30.43 ID:7zo244sJ.net
- >>252
ありがとうございます。完璧にやりたい通りに動きました。
あとwhileもそんな風に使う方がスマートですね。勉強になりました。
- 256 :名前は開発中のものです。:2015/07/26(日) 23:11:47.31 ID:nyc9dYW6.net
- 前にKAGParserの拡張機能の意見募集した者です。
ごった煮の中の人と協力して、少し前にExtKAGParserがリリースされたので
ご報告まで。
貰った意見で具体的なものは大体実装したはず。
ttp://www.geocities.jp/keep_creating/krkrplugins/ExtKAGParser/ExtKAGParser.txt
要望くれた人、テストしてくれた人、みんなありがとう。
これで少しでも楽にゲームが作れるようになるといいな。
- 257 :名前は開発中のものです。:2015/07/27(月) 12:45:16.10 ID:ud96V+38.net
- 前から思ってたけど、マクロはcallで呼び出してるんじゃないの?
シーン再生のエンド処理させて、そのマクロの中でシーンからエクストラに戻ったりすると、callを積みっぱなしにならないのかね
- 258 :名前は開発中のものです。:2015/07/27(月) 18:46:03.63 ID:6ZSZc8b0.net
- マクロとcallは呼び方が違う。マクロはその場に展開される。
callスタックにつみっぱなしになるかどうかは呼び方次第なので具体例ないとなんとも。
- 259 :名前は開発中のものです。:2015/07/27(月) 22:03:26.28 ID:HhBVKLnt.net
- そうなのか。ずっと一緒だとおもってた。
そう言えば、callのスタックをクリアするメソッド無かったっけ?
一応それでタイトル戻るたびにクリアするのが理想かね
- 260 :名前は開発中のものです。:2015/07/29(水) 16:16:50.27 ID:CEzxqKe+.net
- override.tjsで、プロパティをclassに追加するのってどうすればいいですか?
こんな感じで書いてるのを、
property sys2volume {
getter() { return kag.getSEGroupProperty("globalVolume", 100000) / 1000; }
setter(v) { kag.setSEGroupProperty("globalVolume", v * 1000); }
}
ゲッターやセッターの中でkag.〜となっているのがかっこわるいから、
kag.KAGWindow.sys2volume {
getter() { return getSEGroupProperty("globalVolume", 100000) / 1000; }
setter(v) { setSEGroupProperty("globalVolume", v * 1000); }
}
としてもうまく行きませんでした
それと、もっとこうしたらもっとスマートな書き方になるって言うのは無いですか?
- 261 :名前は開発中のものです。:2015/07/29(水) 17:48:55.92 ID:Zyt8BghU.net
- &演算子を使えば
property sys2volume {
getter() { return getSEGroupProperty("globalVolume", 100000) / 1000; }
setter(v) { setSEGroupProperty("globalVolume", v * 1000); }
}
KAGWindow.sys2volume = &global.sys2volume;
みたいにできる。global空間汚すのが気に入らないなら、上記の後で
delete global.sys2volume;
としておけば一応global側は消える
- 262 :名前は開発中のものです。:2015/07/29(水) 17:55:58.37 ID:M131uUCV.net
- kag.autoModeで未読既読判定して既読の時は読み進め、未読に来たら停止させたいんだけど俺レベルじゃ全くどうすればいいか思いつかん・・・・・・
- 263 :名前は開発中のものです。:2015/07/29(水) 18:03:57.12 ID:Zyt8BghU.net
- あと最近の吉里吉里(svnの開発版rev4942以降/安定板2.32r2では無理)の場合、
Scripts.eval/exec系にコンテキストが指定できるようになったので
property sys2volume {〜}だけを記述したsys2volume.tjsみたいなファイルを作っておいて
Scripts.execStorage("sys2volume.tjs", /*mode*/, /*context*/KAGWindow);
とする手もある
- 264 :名前は開発中のものです。:2015/07/29(水) 19:20:15.62 ID:Fwe6MqBx.net
- プロパティの状態自体は栞に保存されないからあまりポコポコプロパティ作るとはまるぞ
- 265 :名前は開発中のものです。:2015/07/30(木) 00:25:07.09 ID:fejD4xI5.net
- >>263>>265
うまく動きました
&を思いつけない自分が本当にどうしようもなくヘボいスクリプターだ。。。
- 266 :名前は開発中のものです。:2015/07/30(木) 01:09:46.27 ID:VwRDb0FZ.net
- それはもうスクリプターのレベルじゃないからなあ
- 267 :名前は開発中のものです。:2015/07/30(木) 01:12:14.86 ID:xJeXEgtj.net
- TJSをゴリゴリ書く人間をスクリプターと呼ぶかどうかは
昔からよくブレるところであってな
KAGで演出がんばってまーす みたいな感じだと
&を使えって話になることすらないだろうけど
- 268 :名前は開発中のものです。:2015/07/30(木) 03:30:54.86 ID:eMG92eIt.net
- プロパティーの話題が出てる今便乗させてください
EXのBGVってプロパティーはあるみたいけどどう組み込んだらいいのかな?
voiceに似せて組み込もうにも同じくへぼへぼスクリプターな俺はvoiceでgrepした段階で力尽きたorz
理想はタグにしたいんだけどそれ以前にどうやって使うかすらわからない
- 269 :名前は開発中のものです。:2015/07/30(木) 07:54:34.21 ID:nZwrlHm3.net
- >>268
[キャラ名 bvoice="ファイル名"]で再生
[キャラ名 bvoice=""]で停止
- 270 :名前は開発中のものです。:2015/07/30(木) 16:43:31.71 ID:qnCnVInh.net
- おー ありがとうございます
こんな簡単な事だったのかorz
ちなみに調べてた時にバッファを二つ持ってるみたいだったけど、もう一つのバッファはhvoiceみたいだね
ただこれ単に切り替えてるだけっぽいけど意味あるのかな?
fadeinoutなどの調整も出来ないみたいだし、少し研究してみます
- 271 :名前は開発中のものです。:2015/07/30(木) 22:17:23.15 ID:nZwrlHm3.net
- bvoiceとhvoiceはkag.bgvvolumeとkag.bgv2volumeに音量の系統分かれてるだけ
日常シーンとHシーンで個別に音量設定つけるなら使うかもしれない
- 272 :名前は開発中のものです。:2015/07/31(金) 00:30:20.18 ID:+sD9QLZU.net
- 吉里吉里のフラグで配列(もしくは辞書配列)を宣言してるかどうかってどうやって調べればいいんだろうか?
これじゃダメだった。
配列を宣言してなければ配列を作るって言う初期設定をさせたかったんだけど
[if exp="&sf.xxxx[0] === 'undefind'"]
〜処理〜
[endif]
- 273 :名前は開発中のものです。:2015/07/31(金) 03:29:40.64 ID:2pluXChD.net
- 既にsf.xxxx = [] されてて[0]番目が未定義かどうかを調べたいのか、
それとも配列自体が定義されてるか調べたいのかよくわらんけど
どっちにせよundefined比較はtypeofを使うのが必須だね
前者の場合
[if exp="typeof sf.xxxx[0] == 'undefined'"]
後者の場合
[if exp="typeof sf.xxxx == 'undefined'"]
ifのexpはそのまま実行時に評価されるので&指定は不要。比較は上では==になってるが===でも全く問題ない
ただ、undefined比較だと例えば(後者の場合で)sf.xxxx=0みたいに意図しない値がすでに入っていた場合に
スルーされてしまうので、本当に厳密にやるなら
function IsObjectInstanceOf(ref, cls, base=sf) {
return (typeof base[ref] == "Object") && (base[ref] !== null) && (base[ref] instanceof cls);
}
みたいなオブジェクトのインスタンスのクラスまで調べる適当なヘルパ関数作っといて
[if exp="!IsObjectInstanceOf('xxxx', 'Array')"]
[if exp="!IsObjectInstanceOf('xxxx', 'Dictionary')"](※辞書の場合)
とかしておくと安心かもしれない
まぁぶっちゃけsfやfの初期値はvoid(typeof取った場合のみundefined)なので
他に変更されるような要因がなければ上みたいに長々と書かなくても
[if exp="sf.xxxx === void"]
で済ませる場合も多いね(記述少なくて楽だし)
- 274 :名前は開発中のものです。:2015/07/31(金) 09:24:59.71 ID:KBwevcQw.net
- krmovie.dll でムービーを再生すると、比較的低スペックの環境だと
どうしても再生が乱れるんだけど、なんか良い方法ないかなあ。
メディアプレーヤーとかでなら問題なく再生できるPCなんだけどな。
- 275 :名前は開発中のものです。:2015/07/31(金) 12:01:21.70 ID:UyI8xMWU.net
- あきらめろ
- 276 :名前は開発中のものです。:2015/07/31(金) 13:01:25.64 ID:j2ZgS7ql.net
- >>273
説明が少し悪くてごめん。
配列になっていないものを[if exp="typeof sf.xxxx == 'undefined'"] で確認するのはわかるんだけど
単にゲームの初期設定でsf.xxx = []とすれば良いだろうと言う突っ込みはおいておいて
要するにsf.xxxxが(辞書)配列かどうかと言う判定はどうしたらいいんだろうか?って事を聞きたいんだ。
[if exp=(sf.xxxxが配列じゃなかったら)]
;配列を作る
[eval exp="sf.xxxx = []"]
[endif]
と言う処理を行いたいの。
[if exp="typeof sf.xxxx[0] == 'undefined'"] とか[if exp="sf.xxxx.count == 0"]で調べようとすると
エラー表示されるから困ってる。
- 277 :名前は開発中のものです。:2015/07/31(金) 13:04:13.52 ID:KBwevcQw.net
- >>275
他にDLLってないのかな。自分で作るしかないんだろうか。
- 278 :名前は開発中のものです。:2015/07/31(金) 13:06:59.23 ID:j2ZgS7ql.net
- >>274
最近はエロゲは最低スペックでvistaマシンだから
今後ロースペックマシンではどんどんきつくなっていく。
だがvistaの頃に開発ストップした吉里吉里ぇ
それとオープニングとかなら別だけど
ゲーム中のムービーは画面書き換えの関係で同時に複数のチャンネルで動かしてる場合が多いから
それだけでかなり重いうえにさらにいろいろなゲームとしての処理でロースペックだともっさりする
- 279 :名前は開発中のものです。:2015/07/31(金) 13:39:02.38 ID:3PBc8qKX.net
- 吉里吉里だかKAGEXだったかで、ゲーム中で使われていない素材ファイル一覧を吐き出すプラグインってなかったっけ?
- 280 :名前は開発中のものです。:2015/07/31(金) 13:55:31.47 ID:2SOVPUaC.net
- >>276
instanceof "Array"
- 281 :名前は開発中のものです。:2015/07/31(金) 14:02:40.71 ID:9MELTnnV.net
- >>276
説明が悪くて じゃなくて、>>273は十分説明を理解しているのに
>>276が>>273の解説を何も理解せずにオウム返ししているだけなんだよなあ・・・
「カレーを作りたいんだけど、肉と野菜煮込んでも茶色くならない。どうすればいいのかな?」
「カレールーを入れてね。本格的にやりたいならスパイスから作るやり方もあるよ」
「説明が悪くてごめん。肉と野菜を煮込んで、カレーみたいな味と色にしたいんだけどどうすればいいのかな?」
みたいな感じ
正解のソースコードをKAG込みで張ってもらわんと気が済まないのか
- 282 :名前は開発中のものです。:2015/07/31(金) 15:43:59.04 ID:j2ZgS7ql.net
- >>281
>>273を確かによく読むとちゃんとわかるように書いてあった
ごめん
>>280でもうまくいけた
ありがとう
- 283 :名前は開発中のものです。:2015/07/31(金) 17:39:30.18 ID:rGuZZZqP.net
- 吉里吉里やkagexやzでメッセージを監視して特定の文字列が出てきたら処理をさせると言うのは出来る?
例えば"ドザエモン"と言うワードが出てきたらfontの色を変えるとかインライン図形に切り替えるとかしたいんだけど
- 284 :名前は開発中のものです。:2015/07/31(金) 19:14:57.23 ID:I0KHEIj6.net
- indexOfでいいんじゃないの
リファレンスにあるべ
- 285 :名前は開発中のものです。:2015/07/31(金) 20:01:52.71 ID:9MELTnnV.net
- 基本吉里吉里は「ド」「ザ」「エ」「モ」「ン」を1文字表示するタグとして処理するから
先読みとかするように改造しないと厳しいだろ
むしろ事前にGREP機能があるソフトでksファイルの「ドザエモン」をマクロで括るように一括変換しとけば
- 286 :名前は開発中のものです。:2015/07/31(金) 23:30:58.33 ID:vU5w5/NE.net
- ・吉里吉里のレベル
・TJSのレベル
・KAGのレベル
どのレベルでやるか
吉里吉里改造(またはKAG拡張)のレベルなら何でもできるが
システム自体の深い理解がいる
TJSならシーンごとに区切ってindexOfとか
KAGのレベルなら、あらかじめマクロ作って
ksファイルのテキストをタグで囲っておくしかなさそう
総レス数 1003
317 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200