トップページgamedev
1002コメント407KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。 転載ダメ2015/06/05(金) 01:50:10.83ID:r78FM0BY
ノベルゲーム製作ツール吉里吉里/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/
0199名前は開発中のものです。2015/07/06(月) 20:27:13.66ID:NlRkmyHb
>>198
kag.callExtraConductorを使いなされ
この単語でググれば講座も出て来るし
そこに詳しく書いてあるはず
0200名前は開発中のものです。2015/07/06(月) 20:35:12.27ID:xrY9IQ4B
>>199
ありがとうございます!
調べてみます
0201名前は開発中のものです。2015/07/06(月) 23:41:23.16ID:CbFvTUJb
>>189
それっぽい
セーブラベルより前に置いたほうがよかったのか
0202名前は開発中のものです。2015/07/06(月) 23:46:08.89ID:+151RMp4
linkタグのonenterやonleaveの処理にkag.callExtraConductor使うのっていいの?
たとえばそのリンクのexpがどっかにjumpにするような場合
onenterのサブルーチンのreturn時にエラーになりそうなんだが
それにサブルーチンで[wait]とかなんかの処理待ちがあった場合もcallとreturnが合わないエラーになりそう
0203名前は開発中のものです。2015/07/07(火) 01:39:18.82ID:LJwNr/wX
吉里吉里がAndroidで走るようになったら本気出す
0204名前は開発中のものです。2015/07/07(火) 06:30:04.38ID:ZjjPSX6L
むしろAndoroid版の吉里吉里を作ろうぜ
0205名前は開発中のものです。2015/07/07(火) 06:36:44.63ID:LrTuGv5S
>>202
うちはexpにkag.callExtraConductor使ってるよ
今の所、問題は特にない
0206名前は開発中のものです。2015/07/07(火) 07:03:19.15ID:LrTuGv5S
>>202
連レスすまん
質問者の198が言う所の「選択肢からサブルーチンを呼ぶ」という動作なら
うちはexpでサブルーチン呼んで
必要に応じて[return storage="" target=""]で戻り先まで指定してるって話
202の条件で試したことない
0207名前は開発中のものです。2015/07/09(木) 00:11:33.48ID:O19Vttjt
xp3に暗号化を掛けたらムービーの再生開始にやたら時間が掛かるようになってしまった。
皆さん、お気を付けて。
0208名前は開発中のものです。2015/07/09(木) 23:01:35.47ID:5/BxwPp4
暗号化は仕組み上あまり時間がかかりそうにはないんだけどな…圧縮したんじゃないの?
0209名前は開発中のものです。2015/07/09(木) 23:46:29.11ID:O19Vttjt
今チェックしたけど圧縮は掛けてなかったよ。
ムービーファイル100MB越えてるからなあ。さすがに仕方がないのかも。
とりあえずムービーだけ生のファイルでリリースすることにしました。
0210名前は開発中のものです。2015/07/10(金) 03:32:10.43ID:t9MQnwhN
動画はサイズによるけど、大きな奴はちょっと裏でなにかやってるとすぐ時間かかったり一瞬引っかかったりする
あと、たぶんメモリきれいにしきれてないせいなんだろうけど、連続してプレイしてるとどんどん動画再生で不具合でまくりんぐ
0211名前は開発中のものです。2015/07/10(金) 18:25:08.17ID:UHip6I7J
ユーザーからバックログでジャンプさせて欲しいというご意見を頂いたんですが
どういう風に作れば良いんだろw
面倒な仕様しか思い浮かばない
0212名前は開発中のものです。2015/07/10(金) 19:56:02.30ID:6xkw1NTv
概念としてはバックログの全行についてセーブデータがあれば自在にジャンプできる

そのデータを動的につくるか事前に全部作っておくかでシステムとしては大きく別れる

どちらの場合も巨大になるデータをどうさばくかが難しい

戻れる行数を30行までとか制限してロード時は消えてよければ前者の実装はわりと簡単
後者は動的なスクリプトに制約がでるとかパッチ対応めんどうとかいろいろめんどくさい
0213名前は開発中のものです。2015/07/10(金) 20:13:09.38ID:8iQM0K98
全ページセーブデータとっておくのはスキップ時の速度に影響しそうだな〜
0214名前は開発中のものです。2015/07/10(金) 21:11:15.16ID:UHip6I7J
>>212
俺が考えたのは自分のスクリプトで使うタグや関数を文字列に記録しておいて
[hact]で埋め込めば行けるかなあと思ったんだけど
セーブするのと大差ないかなあ。
0215名前は開発中のものです。2015/07/11(土) 19:35:51.67ID:lNjmMA8w
oggファイルを再生しようとすると
「有効な SMF ファイルではありません」というエラーになってしまいます。
どうすればoggファイルを再生できるのでしょうか?
0216名前は開発中のものです。2015/07/11(土) 19:39:18.47ID:lNjmMA8w
すいませんプラグインが所定の場所に配置されていなかったためです
0217名前は開発中のものです。2015/07/11(土) 20:52:09.20ID:Xqr7VRM0
H.264はVistaで再生出来ないって前スレに書いちやったけど
実際はアップデートを適用すれば再生できるらしい
済まん

ビデオの長さが12分を越えた場合も
特許料支払いの責任はECサイトや
DVDデュプリケータの会社が負っているらしい
コンテンツ制作者が気にすることじゃないようだ
0218名前は開発中のものです。2015/07/11(土) 21:08:37.55ID:kwLBRYqs
krkr2にもぜひ実装してください(´・ω・`)
0219名前は開発中のものです。2015/07/11(土) 21:14:10.52ID:Xqr7VRM0
一括請求みたいにしないと誰に責任が及ぶのか良く分からないし
MPEG LAも個人や小さな会社といちいち契約するのは面倒だから
こういう仕組みにしたんだろうな
0220名前は開発中のものです。2015/07/12(日) 04:17:17.76ID:aCiX8P4t
TJSにもこれからは遅延評価が求められるのではないか
0221名前は開発中のものです。2015/07/12(日) 10:26:04.93ID:YmLl5Zjt
以下の処理で最後に[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]
0222名前は開発中のものです。2015/07/12(日) 11:37:39.63ID:lPI7jc7p
@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直後に入れる
0223名前は開発中のものです。2015/07/18(土) 16:10:44.42ID:8F9BVreB
初歩的な質問。
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;
}

}
0224名前は開発中のものです。2015/07/18(土) 19:37:28.47ID:x+Vuzz9y
>>223
sliderのvalueは変数もしくはプロパティでないとダメかと
[slider ... value=sf.msg_opacity ...]
もしくは
[slider ... value=MsgwOpacity ...]
property MsgOpacity {
getter { return sf.msg_opacity; }
setter(v) { setMsgwOpacity(v); }
}
みたいにする(試してないので動かなかったらごめん)
0225名前は開発中のものです。2015/07/18(土) 20:27:57.00ID:kazi0AWf
>>224
ありがとう。
これでうまく行った。
;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;
}
}
0226名前は開発中のものです。2015/07/19(日) 23:03:37.67ID:5ViXZq/2
LIVE2Dを吉里吉里でうごかすには何年くらい必要ですか(´・ω・`)
0227名前は開発中のものです。2015/07/20(月) 00:41:09.48ID:VDgiHXJv
SDKあるみたいだし、プログラムできる人つれてくれば組み込むのは簡単じゃね
0228名前は開発中のものです。2015/07/20(月) 02:12:01.14ID:kSt4V/su
buttonの画像をtjsで簡単に差し替える方法ってないのかな? onやoverがあるから難しいのかな?
0229名前は開発中のものです。2015/07/20(月) 12:04:59.24ID:rO8vZw0d
[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を指定すると変更できる
0230名前は開発中のものです。2015/07/20(月) 21:32:56.53ID:kSt4V/su
>>229
thx でもなんかうちの環境じゃうまくいかないっぽいから、少し弄ってみる
それと前から思っていたんだけど.links[n]って逆引きって言うかこのボタンは何番だろう?って調べる事は出来ないのかな?
コンフィグ画面みたいにボタンの数が多いと、わけわからんようになる。。。。
0231名前は開発中のものです。2015/07/21(火) 03:15:55.76ID:sc5eAe5n
>>227
mjd?sdk見たけど割りとちんぷんかんぷんだったでおじゃる…
0232名前は開発中のものです。2015/07/21(火) 18:46:31.91ID:zmOiB9Vz
// 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")
0233名前は開発中のものです。2015/07/21(火) 19:38:11.52ID:i0jHSYi/
リンクの番号はlinkNumに入ってる
links[n].object.linkNumとか
0234名前は開発中のものです。2015/07/22(水) 04:31:53.50ID:J+IrIg+u
var target = kag.current.links[n];の代わりにvar target = kag.current.names[name + work];でなぜ動くのか謎
namesってなんだよnamesって
これが成立する条件がわからん
中級スクリプターの俺には知らないことがいっぱい
0235名前は開発中のものです。2015/07/22(水) 05:22:49.57ID:YoJ5Llt6
あー、後者は辞書配列なんだよ、それ。
文字列がキーになっていて吉里吉里がそれで検索してくれる。
0236名前は開発中のものです。2015/07/22(水) 11:15:01.68ID:CsmEAKc5
超初心者です。教えて下さい。
Windows8.1に吉里吉里Z1.1をインストールして起動しようとしたけど、「例外が発生しました」と表示してどうしても起動できません。

WindowsXP-吉里吉里2/KAG3なら解説書読んで起動できました。

吉里吉里Zの起動方法教えて下さい。m(__)m

あとこれからアドベンチャーゲームエンジンの勉強始めるなら、他にオススメのゲームエンジンはありますか?
0237名前は開発中のものです。2015/07/22(水) 11:41:32.50ID:nCTgBvOf
喧 嘩 を 売 る
0238名前は開発中のものです。2015/07/22(水) 12:01:10.71ID:YoJ5Llt6
吉里吉里Zは人柱というか強者向けだからあまりお勧めは……
0239名前は開発中のものです。2015/07/22(水) 12:04:37.48ID:P6PPl1rl
なるほど namesはそういうことなのね
こっちが便利なんじゃね?と思ったが二つまったく同じものを座標だけ変えて並べた場合はその場合エラーになるんかね
0240名前は開発中のものです。2015/07/22(水) 12:05:45.83ID:CsmEAKc5
吉里吉里2の方がオススメですか?
0241名前は開発中のものです。2015/07/22(水) 12:32:16.02ID:YoJ5Llt6
>>240
マニュアルも解説サイトも利用者も作品数も圧倒的だから……。
エンジン選定はそれが一番重要だと思います。
0242名前は開発中のものです。2015/07/22(水) 12:42:06.88ID:CsmEAKc5
ありがとうございます!\(^O^)/

解説書も有るし、吉里吉里2で勉強します!
0243名前は開発中のものです。2015/07/22(水) 13:31:30.73ID:P6PPl1rl
c++とか触った事すら無いところから始めた俺からすると
ごった煮さんとこのZの解説を読んでチンプンカンプンレベルならまず2で覚えないと先に進まんだろ
それ以前に俺レベル程度じゃZはあまり恩恵に預かれない
安定してる2の方がマシ スクリプトソースをUTF-8にいちいち変換するのも面倒だし
0244名前は開発中のものです。2015/07/22(水) 14:13:33.60ID:GnkwzWXt
Zはデバッガがなぁ…
0245名前は開発中のものです。2015/07/22(水) 15:26:11.82ID:nCTgBvOf
吉里吉里2はデバッガが充実していた・・・?

っていうかコンソールって言いたいのか
0246名前は開発中のものです。2015/07/22(水) 17:14:04.04ID:GnkwzWXt
3つとも愛用してたから無いと不便に感じてしまう
0247名前は開発中のものです。2015/07/22(水) 22:32:14.63ID:GXfdVbnU
ZはVSでビルドするためにあるようなものなので
吉里吉里の本体を改造しないなら無理に使わなくていい
0248名前は開発中のものです。2015/07/23(木) 14:16:36.51ID:YPfZ6Cm+
教えてください

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]→睦月なのかなと思ったんだけど、違うみたい
根本的に理解が足りてないのかな
0249名前は開発中のものです。2015/07/23(木) 20:21:57.30ID:GhxAsd18
まだリリース前なんだが、ファイル破損チェックツールでdata.xp3やkrikr.exe をチェックすると「破損」になるんだが何が悪いんだろう……
署名はちゃんとしているんだが
02502472015/07/23(木) 20:28:33.43ID:GhxAsd18
すいません、自己解決しました。
0251名前は開発中のものです。2015/07/23(木) 20:58:07.74ID:BWoZRk6g
>>248
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");
0252名前は開発中のものです。2015/07/23(木) 22:10:17.84ID:GhxAsd18
スレ違いになるけど、CD-ROMで頒布予定なんだけど、
最近はWindows7ばっかりだから、CD-ROMをドライブに入れても
自動インストールが始まらないんだっけ?
0253名前は開発中のものです。2015/07/24(金) 06:56:28.93ID:J9odBgUp
OSの設定によるんじゃねーの
0254名前は開発中のものです。2015/07/24(金) 14:34:30.43ID:7zo244sJ
>>251
ありがとうございます。完璧にやりたい通りに動きました。
あとwhileもそんな風に使う方がスマートですね。勉強になりました。
0255名前は開発中のものです。2015/07/26(日) 23:11:47.31ID:nyc9dYW6
前にKAGParserの拡張機能の意見募集した者です。
ごった煮の中の人と協力して、少し前にExtKAGParserがリリースされたので
ご報告まで。
貰った意見で具体的なものは大体実装したはず。
ttp://www.geocities.jp/keep_creating/krkrplugins/ExtKAGParser/ExtKAGParser.txt
要望くれた人、テストしてくれた人、みんなありがとう。
これで少しでも楽にゲームが作れるようになるといいな。
0256名前は開発中のものです。2015/07/27(月) 12:45:16.10ID:ud96V+38
前から思ってたけど、マクロはcallで呼び出してるんじゃないの?
シーン再生のエンド処理させて、そのマクロの中でシーンからエクストラに戻ったりすると、callを積みっぱなしにならないのかね
0257名前は開発中のものです。2015/07/27(月) 18:46:03.63ID:6ZSZc8b0
マクロとcallは呼び方が違う。マクロはその場に展開される。
callスタックにつみっぱなしになるかどうかは呼び方次第なので具体例ないとなんとも。
0258名前は開発中のものです。2015/07/27(月) 22:03:26.28ID:HhBVKLnt
そうなのか。ずっと一緒だとおもってた。
そう言えば、callのスタックをクリアするメソッド無かったっけ?
一応それでタイトル戻るたびにクリアするのが理想かね
0259名前は開発中のものです。2015/07/29(水) 16:16:50.27ID:CEzxqKe+
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); }
}
としてもうまく行きませんでした
それと、もっとこうしたらもっとスマートな書き方になるって言うのは無いですか?
0260名前は開発中のものです。2015/07/29(水) 17:48:55.92ID:Zyt8BghU
&演算子を使えば
property sys2volume {
getter() { return getSEGroupProperty("globalVolume", 100000) / 1000; }
setter(v) { setSEGroupProperty("globalVolume", v * 1000); }
}
KAGWindow.sys2volume = &global.sys2volume;
みたいにできる。global空間汚すのが気に入らないなら、上記の後で
delete global.sys2volume;
としておけば一応global側は消える
0261名前は開発中のものです。2015/07/29(水) 17:55:58.37ID:M131uUCV
kag.autoModeで未読既読判定して既読の時は読み進め、未読に来たら停止させたいんだけど俺レベルじゃ全くどうすればいいか思いつかん・・・・・・
0262名前は開発中のものです。2015/07/29(水) 18:03:57.12ID:Zyt8BghU
あと最近の吉里吉里(svnの開発版rev4942以降/安定板2.32r2では無理)の場合、
Scripts.eval/exec系にコンテキストが指定できるようになったので
property sys2volume {〜}だけを記述したsys2volume.tjsみたいなファイルを作っておいて
Scripts.execStorage("sys2volume.tjs", /*mode*/, /*context*/KAGWindow);
とする手もある
0263名前は開発中のものです。2015/07/29(水) 19:20:15.62ID:Fwe6MqBx
プロパティの状態自体は栞に保存されないからあまりポコポコプロパティ作るとはまるぞ
0264名前は開発中のものです。2015/07/30(木) 00:25:07.09ID:fejD4xI5
>>262>>264
うまく動きました
&を思いつけない自分が本当にどうしようもなくヘボいスクリプターだ。。。
0265名前は開発中のものです。2015/07/30(木) 01:09:46.27ID:VwRDb0FZ
それはもうスクリプターのレベルじゃないからなあ
0266名前は開発中のものです。2015/07/30(木) 01:12:14.86ID:xJeXEgtj
TJSをゴリゴリ書く人間をスクリプターと呼ぶかどうかは
昔からよくブレるところであってな

KAGで演出がんばってまーす みたいな感じだと
&を使えって話になることすらないだろうけど
0267名前は開発中のものです。2015/07/30(木) 03:30:54.86ID:eMG92eIt
プロパティーの話題が出てる今便乗させてください
EXのBGVってプロパティーはあるみたいけどどう組み込んだらいいのかな?
voiceに似せて組み込もうにも同じくへぼへぼスクリプターな俺はvoiceでgrepした段階で力尽きたorz
理想はタグにしたいんだけどそれ以前にどうやって使うかすらわからない
0268名前は開発中のものです。2015/07/30(木) 07:54:34.21ID:nZwrlHm3
>>267
[キャラ名 bvoice="ファイル名"]で再生
[キャラ名 bvoice=""]で停止
0269名前は開発中のものです。2015/07/30(木) 16:43:31.71ID:qnCnVInh
おー ありがとうございます
こんな簡単な事だったのかorz

ちなみに調べてた時にバッファを二つ持ってるみたいだったけど、もう一つのバッファはhvoiceみたいだね
ただこれ単に切り替えてるだけっぽいけど意味あるのかな?
fadeinoutなどの調整も出来ないみたいだし、少し研究してみます
0270名前は開発中のものです。2015/07/30(木) 22:17:23.15ID:nZwrlHm3
bvoiceとhvoiceはkag.bgvvolumeとkag.bgv2volumeに音量の系統分かれてるだけ
日常シーンとHシーンで個別に音量設定つけるなら使うかもしれない
0271名前は開発中のものです。2015/07/31(金) 00:30:20.18ID:+sD9QLZU
吉里吉里のフラグで配列(もしくは辞書配列)を宣言してるかどうかってどうやって調べればいいんだろうか?
これじゃダメだった。
配列を宣言してなければ配列を作るって言う初期設定をさせたかったんだけど

[if exp="&sf.xxxx[0] === 'undefind'"]

〜処理〜

[endif]
0272名前は開発中のものです。2015/07/31(金) 03:29:40.64ID:2pluXChD
既に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"]
で済ませる場合も多いね(記述少なくて楽だし)
0273名前は開発中のものです。2015/07/31(金) 09:24:59.71ID:KBwevcQw
krmovie.dll でムービーを再生すると、比較的低スペックの環境だと
どうしても再生が乱れるんだけど、なんか良い方法ないかなあ。

メディアプレーヤーとかでなら問題なく再生できるPCなんだけどな。
0274名前は開発中のものです。2015/07/31(金) 12:01:21.70ID:UyI8xMWU
あきらめろ
0275名前は開発中のものです。2015/07/31(金) 13:01:25.64ID:j2ZgS7ql
>>272
説明が少し悪くてごめん。

配列になっていないものを[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"]で調べようとすると
エラー表示されるから困ってる。
0276名前は開発中のものです。2015/07/31(金) 13:04:13.52ID:KBwevcQw
>>274
他にDLLってないのかな。自分で作るしかないんだろうか。
0277名前は開発中のものです。2015/07/31(金) 13:06:59.23ID:j2ZgS7ql
>>273
最近はエロゲは最低スペックでvistaマシンだから
今後ロースペックマシンではどんどんきつくなっていく。
だがvistaの頃に開発ストップした吉里吉里ぇ

それとオープニングとかなら別だけど
ゲーム中のムービーは画面書き換えの関係で同時に複数のチャンネルで動かしてる場合が多いから
それだけでかなり重いうえにさらにいろいろなゲームとしての処理でロースペックだともっさりする
0278名前は開発中のものです。2015/07/31(金) 13:39:02.38ID:3PBc8qKX
吉里吉里だかKAGEXだったかで、ゲーム中で使われていない素材ファイル一覧を吐き出すプラグインってなかったっけ?
0279名前は開発中のものです。2015/07/31(金) 13:55:31.47ID:2SOVPUaC
>>275
instanceof "Array"
0280名前は開発中のものです。2015/07/31(金) 14:02:40.71ID:9MELTnnV
>>275
説明が悪くて じゃなくて、>>272は十分説明を理解しているのに
>>275>>272の解説を何も理解せずにオウム返ししているだけなんだよなあ・・・



「カレーを作りたいんだけど、肉と野菜煮込んでも茶色くならない。どうすればいいのかな?」
「カレールーを入れてね。本格的にやりたいならスパイスから作るやり方もあるよ」
「説明が悪くてごめん。肉と野菜を煮込んで、カレーみたいな味と色にしたいんだけどどうすればいいのかな?」

みたいな感じ
正解のソースコードをKAG込みで張ってもらわんと気が済まないのか
0281名前は開発中のものです。2015/07/31(金) 15:43:59.04ID:j2ZgS7ql
>>280
>>272を確かによく読むとちゃんとわかるように書いてあった
ごめん
>>279でもうまくいけた
ありがとう
0282名前は開発中のものです。2015/07/31(金) 17:39:30.18ID:rGuZZZqP
吉里吉里やkagexやzでメッセージを監視して特定の文字列が出てきたら処理をさせると言うのは出来る?
例えば"ドザエモン"と言うワードが出てきたらfontの色を変えるとかインライン図形に切り替えるとかしたいんだけど
0283名前は開発中のものです。2015/07/31(金) 19:14:57.23ID:I0KHEIj6
indexOfでいいんじゃないの
リファレンスにあるべ
0284名前は開発中のものです。2015/07/31(金) 20:01:52.71ID:9MELTnnV
基本吉里吉里は「ド」「ザ」「エ」「モ」「ン」を1文字表示するタグとして処理するから
先読みとかするように改造しないと厳しいだろ

むしろ事前にGREP機能があるソフトでksファイルの「ドザエモン」をマクロで括るように一括変換しとけば
0285名前は開発中のものです。2015/07/31(金) 23:30:58.33ID:vU5w5/NE
・吉里吉里のレベル
・TJSのレベル
・KAGのレベル

どのレベルでやるか

吉里吉里改造(またはKAG拡張)のレベルなら何でもできるが
システム自体の深い理解がいる

TJSならシーンごとに区切ってindexOfとか

KAGのレベルなら、あらかじめマクロ作って
ksファイルのテキストをタグで囲っておくしかなさそう
0286名前は開発中のものです。2015/08/01(土) 02:31:04.80ID:gyZyt6mP
kagexとか吉里吉里でやれない事はほぼ無いんだからそっち重宝する奴は意味がわからん
そもそもkag.fore.layersみたいな感じにtjsレベルでレイヤ管理出来ないんだからむしろ制限多いだろうさ
0287名前は開発中のものです。2015/08/01(土) 06:00:50.36ID:q2hcCxyS
日本語が読みにくい
0288名前は開発中のものです。2015/08/01(土) 12:57:46.55ID:0/wuswln

kagexてtjsじゃlayer記述出来ないの?
あるでしょ普通
0289名前は開発中のものです。2015/08/01(土) 21:01:22.30ID:HpB6c145
kagexってそのあたりの情報が基本的に全く出てこないせいで使いづらいんだよな
上の方のbvoiceもそうだけどせっかく機能として組まれてるのに読み解けない奴は気づけないって機能が多すぎる
メインで使いたがるのは俺みたいに少し吉里吉里じゃ物足りないって感じてtjsでなんとか出来ないかなって試行錯誤するレベルのスクリプターライターなはずなのに
機能を理解出来るのは、そのレベルの奴じゃ到底無理って言うね
0290名前は開発中のものです。2015/08/01(土) 21:15:02.83ID:MfdGKfhF
マニュアルがないとどうしようもないよなあ。
ソース読めって言うんなら自分で書いたほうが早いし。
0291名前は開発中のものです。2015/08/01(土) 21:16:04.55ID:q2hcCxyS
kagexを参考にしつつ自分で改造 ってのが結局無難なのでは
0292名前は開発中のものです。2015/08/01(土) 22:04:16.23ID:vhMeyRy2
bvoiceは付属のテキストに書いてある通りなんだけどちゃんと全部読んでる?
正確な動作知ってカスタマイズしたいならソース読むしか無いけどそれはKAGも同じでしょ
0293名前は開発中のものです。2015/08/01(土) 22:22:55.60ID:HpB6c145
>>292
txtに確か2書いてはあるけど、このボリュームはどれなのとかそう言うのは何も書かれて無いからかなり使いづらい
探せばキャラの個別の音声に紐付いてるの分かるが、そもそもキャラ個別音声のボリューム調整をどうすんのか分からんって人がいっぱいだと思う
俺も>>288のレス見てそういやkagexではレイヤ表示どうすんだろ?って思って今見てるクチだけどたぶんこのあたりは俺レベルじゃわからんと思う
これがKAGなら本家のリファレンスとごった煮さんとoutFOUCUSさんを見たらだいたい分かるんだけど
使っていれば使い勝手は確かにkagexは良いのに実にもったいない
0294名前は開発中のものです。2015/08/01(土) 22:32:52.87ID:CcbCQz7g
kagはあれでも初期に比べたらかなり解説サイトさん減ったから
最近の新規さんは苦しんでそうだ
Zとexは移動するメリットがあんまりないんだよな、解説の少なさもあるし
OS問題考えるとそのうちzにしなきゃいけないんだろうけど
0295名前は開発中のものです。2015/08/01(土) 22:46:50.61ID:MfdGKfhF
KAGは公式のオンラインドキュメントがかなり豊富だからなあ。
TJSでの弄り方も詳細に書いてくれてるし。
0296名前は開発中のものです。2015/08/01(土) 22:57:34.85ID:vhMeyRy2
tjsのサンプル置いておくだけでも役に立つ人はいるのか
暇なときに書くようにするわ
0297名前は開発中のものです。2015/08/02(日) 00:55:17.87ID:kRQ1fDOF
うーん
やっぱりkagexのレイヤの表記わからなかった。。。。
0298名前は開発中のものです。2015/08/02(日) 02:43:17.86ID:tcX15TRH
レイヤの表記ってなに
やりたいことによるけどKAGと違って直接Layer使うことは少ないよ
■ このスレッドは過去ログ倉庫に格納されています