■吉里吉里/KAG/ ..
239:名前は開発中のものです。
09/03/09 21:35:21 AztcWJKK
メッセージレイヤに文字描画途中で[style]でalign="left"を指定すると、
直前まで描画していた文字が少し太くなるきがするのだけど、
原因がわからない。
具体的なソースは、
[current layer="message0"]
;フォント等の設定
[delay speed="200"]
[font shadow="false" size="25" face="MS ゴシック" bold="false" color="0xFFFFFF"]
[style align="left" linespacing="10"]
;文字描画
あああ[current layer="message0"]
いいい[font shadow="false" size="25" face="MS ゴシック" bold="false" color="0xFFFFFF"]
ううう[style align="left" linespacing="10"]
えええ[p]
このソースでうううの後のstyleタグのalign="left"が有るか無いかで、
微妙に表示が違う・・・。何故だ・・・。だれか教えてくれ〜!!
240:名前は開発中のものです。
09/03/10 13:31:06 TrSYriSF
>>239
いろいろ試していて面白いソースですねw
フォントや太字が関係ないのは、文字サイズを大きくしてみたら分かります
(少し太くなるように見える現象が、大きくしてもあまり変わらない)
スクショを撮って拡大してみたら、アンチエイリアスが原因と分かりました
メニューから「文字表示」「アンチエイリアス」でチェックを外してみたら、変化がなくなりました
以下は予想です
すでに文字が表示されてる状態で左寄せをすると、再描画されることになり、
2重にアンチエイリアスをかけて、結果少しだけ太く見えた
吉里吉里内部のことは分かりませんw
241:名前は開発中のものです。
09/03/10 15:36:26 uuY2ymni
>>240
でたらめなソースですね、ほんと。
すいません。
何故コレに気づいたかというとマクロに処理を一括させてたんですが、
文字列をマクロにわたして出力させたときに、
通常1行ごとにわたしてたので気づかなかったんですが、
1行にこのマクロを複数呼び出すと、この現象が起こって。
それでどこに原因があるか調べるためにこのソース書いたんです。
アンチエイリアスが原因なんですか・・・。
正直聞いてもどう対処すればいいのかわからないw
アンチエイリアス切るしかないのか・・・。
242:名前は開発中のものです。
09/03/10 16:30:49 TrSYriSF
>>241
再描画してることは分かりました
最初を左寄せ、後を右寄せとかに変えたら判明した
これをよく考えてみると、アンチエイリアスが悪いのではないかも知れません
白の上に白を重ねても白に変わりはないけど、
アンチエイリアスのグレースケールの部分を重ねたことによって、濃くなったと
そもそも[style]は、文字を表示する前に使うタグなのではと思ったりする
文字を途中まで書いて、[style]を入れるのは、期待されてない使い方なのかと
このマクロを呼び出す時には、メッセージがクリアされてる状態であることか、
途中で呼び出すのなら、[style]をマクロから外すことで対処できるかと思います
243:名前は開発中のものです。
09/03/10 17:00:30 TrSYriSF
微訂正
ごめん、今調べて分かったけど、根本的なことが抜けていた
[style]は行のスタールを指定するタグだから、行の途中というのがまずかったみたい
メッセージがクリアされてる状態でなくても、改行して次の行なら挙動は問題ない
244:名前は開発中のものです。
09/03/10 17:08:26 uuY2ymni
>>242
なるほど!メッセージレイヤーがクリア状態のみ実行すればいいのか!
cond属性にクリア状態の判定を行えばいいかな?
メッセージレイヤーがクリア状態か判定する方法を、
MessageLayer.tjsを見てできそうなの探したんですが、
[style align="left" linespacing="10" cond="kag.fore.messages[0].lastDrawnCh==''"]
でいいんですかね?
lastDrawnChって最後に描画した文字とのことで、
[er]とか[cm]でクリアすると空白になると予想したのだけど。。。
245:名前は開発中のものです。
09/03/10 17:12:18 uuY2ymni
>>243
ほんと色々ありがとうございます。
クリア状態の判定じゃなくて、行頭かの判定でもいいってことですよね?
やり方がわからないですがw
246:名前は開発中のものです。
09/03/10 21:18:35 1sBYFFlG
>>239
今さらだが、kagのソース (MessageLayer.tjs) を解析してみた。
文字を描画するときはいきなりメッセージレイヤに描画ではなく、
行ごとに "行描画用浮遊メッセージレイヤ" に描画してから、
それをメッセージレイヤ本体に転写している。
で、"メッセージレイヤ" と "行描画用浮遊メッセージレイヤ" は
両方とも見える状態のため、転写後 "行描画用浮遊メッセージレイヤ"
の文字をクリアしないと文字が重なり輪郭が太くなる。
(アンチエイリアスがかかていると輪郭部分で太くなる)
で、この転写のタイミングは3つあって
(1) 改行 (2) [locate]タグ (3) [style]タグ の align 属性
(1)(2) は 転写後に "行描画用浮遊メッセージレイヤ" を初期化
(文字もクリア)しているけど (3) は初期化していないから
>>239 のようなことが起こる。
例えば同じ行で1文字ごとに [style align="left"] を入れると
今度はメッセージレイヤ上に重ね書きを繰り返すので
前の文字がどんどん太くなるし、メニューから "アンチエイリアス"
を OFF にすれば文字は全く太らない。
また1文字ごとに [style align="left"], [style align="right"]
を交互に入れると今度は文字の数が増えてしまう。
(続く)
247:名前は開発中のものです。
09/03/10 21:21:36 1sBYFFlG
>>246 の続き
で、対策なんだけど、行の途中で [style align] を変更した時の
動作(仕様)によって変わる。
(仕様1) 変更時点で行の全ての文字は新しい align に従う。
(対策1) MessageLayer.tjs の function setStyle(elm) で
fixLineLayer(); を削除。(2箇所)
(仕様2) 変更時点より後の文字だけ新しい align に従う。
(対策2) MessageLayer.tjs の function setStyle(elm) で
fixLineLayer(); の後に文字をクリアする処理を追加。(2箇所)
(仕様3) 行の途中で [style align] を変更してはいけない。
(仕様1)(仕様2) が本来の仕様なら kag のバグかな?
248:名前は開発中のものです。
09/03/10 22:17:59 uuY2ymni
>>246
解析ありがとうです。
やっぱりマクロで組むときに、仕様3で、
cond="current.x == current.marginL"と書いて、
行頭時のみstyleタグを使用するようにしようと思います。
助言を頂いたお二人ありがとう!
249:名前は開発中のものです。
09/03/10 22:55:28 uuY2ymni
cond="kag.current.x == kag.current.marginL"だった。。。
250:名前は開発中のものです。
09/03/11 11:22:25 61HDwFvy
>>248
仕様3で
使用するように
しよう
251:名前は開発中のものです。
09/03/11 14:27:43 3KzMS1iA
おもしろいでちゅねー
252:名前は開発中のものです。
09/03/11 17:08:42 +tS0RLY3
はじめての
はいはいワロスワロス
253:名前は開発中のものです。
09/03/11 22:20:26 JcAglrjg
バグ報告よろちくび
254:名前は開発中のものです。
09/03/12 18:28:17 OREavZTD
初歩的なことだけど、
シナリオファイル内で[iscript]で関数を記述したとして、
その[iscript]通過後に、[jump]でその関数の記述前に飛んで、
もう一度[iscript]の所にきたらどうなるの?
関数を再定義するのかな?
timer関数とかで、enabled=trueの時に、
同じ関数を読み込むとかエラーおきるのだろうか?
255:名前は開発中のものです。
09/03/13 02:04:19 QcRrk2h9
自分で試せよんなもん
256:名前は開発中のものです。
09/03/13 15:44:01 EYxKsgP9
>>254
オーバーライドの仕組みを勉強してみるといいよ。
257:名前は開発中のものです。
09/03/13 17:27:38 4y2AAoc7
KKDE2で240桁以降って下のバーや右カーソル押しても潜っちゃって見れないんだけど
これは改行するしか対処方ないかな?
結構探したつもりなんだけど、指定行や右端で折りたたみってオプションないよね?
258:名前は開発中のものです。
09/03/13 19:37:02 r/LS/GQ0
>>256
それはオーバーライドとは違うような…
オーバーライドって言ってみたかっただけならスマス
259:名前は開発中のものです。
09/03/15 19:07:43 JjWHmm0Y
最近プラグイン製作にはまってるんだ
今100種類くらい(使い道アルかは知らないけど)あるんだけど
これってどっかで公開したら需要あるかな?
作るだけで満足しちゃって、俺自身は使ってないから不具合とかあるかもしれないんだけどね
主に、エフェクト系が多い
Fateに使われてるようなエフェクトは全部作った
音響系も、MIDIを内部で変換してWAVで流す(つまり、基本的にやWAVを使用できる)プラグインとか作った
書いてて思ったけど重要なさそうなのばっかだな……
おとなしくゴミプラグインは削除して作品製作にはいるか。チラ裏すまん
260:名前は開発中のものです。
09/03/15 19:11:06 /7mOtL8f
>>259
興味あるから公開してほしい。
261:名前は開発中のものです。
09/03/15 19:23:02 JjWHmm0Y
2日レスなかったのにこんなに早くレスつくとわ……びっくりした
ソース付きの方が良いかな?
汚いから
262:名前は開発中のものです。
09/03/15 19:24:01 JjWHmm0Y
参考にはならないと思うけど
263:名前は開発中のものです。
09/03/15 20:03:49 +BcqjnZr
うp!うp!
ソースは見たい人もいるんじゃないかね?
俺は見てもわからんけどw
264:名前は開発中のものです。
09/03/15 21:14:11 Mu0gXtML
>>261
みんなスレ汚しを控えてるだけで、常駐してる人は多いぞここ
265:名前は開発中のものです。
09/03/15 21:39:42 ol4KMu09
>>261
さっさとうpするんだな
痛い目にあいたくはないだろう
266:名前は開発中のものです。
09/03/15 22:01:17 JjWHmm0Y
こんなに反応あるとわwww
なんか、ありがとう
今から自作物整理して、あとで上げます
参考までに、あったらいいなっていうプラグインを教えてくれませんか?
1物語に1回使うかなってくらいのすごく限定的なものでも良いんで
267:名前は開発中のものです。
09/03/15 23:20:18 0PT1WS+f
>Fateに使われてるようなエフェクトは全部作った
花札のアルゴリズムがあるなら見てみたい。
>MIDIを内部で変換してWAVで流す
どういう遣り方か見当もつかない。興味あります。
268:名前は開発中のものです。
09/03/15 23:32:47 qrntCZtW
公開とするとADVゲーム市場が崩壊するシナリオジェネレータとかどうかなw
269:名前は開発中のものです。
09/03/15 23:42:12 g2asMGJI
>>266
前に一度話題になったみたいだが、うみねこに搭載されてる
キャラクターが泡(ドット)で出現or消えるができるエフェクト。
泡(ドット)じゃなくてもっと色々なエフェクトでキャラクターの出現ができる
プラグインがあると需要あると思う。
というか自分が欲しいw
270:名前は開発中のものです。
09/03/16 00:01:42 EpWdkxA1
>>266
シナリオの文字がフェードで表示されるのがあったらいいな
よくゲームのOPの演出で使われるようないっぺんに浮き出てくるんじゃなくて
文字の表示が左から右に出てくるというか
271:名前は開発中のものです。
09/03/16 00:11:53 AIAyb+lA
>>268
あほ?
>>269
既にある
>>270
画像でファイルを保持し、トランス
これじゃ駄目な理由は?
少し囓ったことあるなら、FONTをRECTすれば文字にできるだろ?
>>266
ガラスが割れるみたいなエフェクトあると嬉しい
272:名前は開発中のものです。
09/03/16 00:34:53 mxKYyZV/
>>270
サークル煌明さんのところにあるやつかな?
273:270
09/03/16 00:56:29 EpWdkxA1
>>271
一部の演出じゃないのでそれだと色々困る
というか説明が分かりにくかったね、ごめん
>>272
そうそうこういうの!
すでにあったんだね。教えてくれてありがとう
274:名前は開発中のものです。
09/03/17 16:26:49 zKNYimra
正規表現を使って、文字列のstr中の半角数字の桁揃え、乃至は
数字の先頭にある連続する 0 を削除するにはどうするのですか?
file00199 ⇒ file199
みたいなのです。
+009 みたいのだと8進数になってしまってこまっているのです。
tjsで汎用性の低いのを作れないでもないのですが・・・
275:名前は開発中のものです。
09/03/17 17:24:34 uugonJS8
桁揃えされた文字列がほしい時は sprintf を使う
"file%05d".sprintf(199) → "file00199"
文字列の頭の0消去なら正規表現でさっくり
/^0*/.replace("00199","") → "199"
データは数値でもつのを基本にして、文字列が必要なときだけ sprintf で生成するほうがなにかと便利
276:名前は開発中のものです。
09/03/17 19:13:04 4wcH/Upa
指定したURLとは、ずれた場所でもカーソルが人差し指マークになってしまい、そこをクリックすると
エラーになってしまいます。どこがおかしいのでしょうか?
[cm]
[nowait]
[title name=ヘルプ]
[position left="20" top="0" width="400" height="300" marginr=-200 opacity="0"]
[image layer="base" storage="about"]
[font size="30" color="0xFFFFFF" shadow="false" edge="true" edgecolor=0x56dfcc]
吉里吉里
[locate y="70"]
[font size=14 color="0xFFFFFF" shadow="false" edge="true" edgecolor=0x6d5d5d]
presented by 吉里吉里[r]
[link exp="System.shellExecute('URLリンク(devdoc.kikyou.info)')"]
URLリンク(devdoc.kikyou.info) [font size=14 *color=0xFFFFFF shadow="false" edge="false"][r]
[s]
277:名前は開発中のものです。
09/03/17 19:21:39 4wcH/Upa
すみません、指定していたCGが原因だったみたいです。
278:名前は開発中のものです。
09/03/17 23:18:52 zKNYimra
>>275
迅速にして完璧の回答、ありがとうございます。
自分で理解するのに時間かかりましたが何とかできました。
var arr = file.split( /[^0-9]/ ); arr.remove('',true);
で文字列中の数字の配列を獲得して、置き換えるやり方でなんとかなりました。
file_123_4_4みたいな値の重複とかの問題は…tjsでなんとかします;
279:名前は開発中のものです。
09/03/18 20:13:20 ZDYXfAUv
質問させてください。
KAGにて、キーボードのEnterキーを無効にしたいと思い、
MainWindowクラスのcheckProceedingKeyを弄ってみました。
すると、通常時は確かに無効になりました。
しかし、クリッカブルマップを有効にすると、Enterキーが使えてしまいます。
これを無効にするには、どこを書き換えてやればよいのでしょうか?
ご指摘お願いいたします。
280:名前は開発中のものです。
09/03/19 04:18:40 IGRmS1ea
>>279
それは、Window.useMouseKey 機能によるもの。
その状態では、カーソルキーがマウスカーソル、エンターキーはマウスの
左クリックに対応した状態になって、キー入力イベントは全くこなくなる。
MainWindow.tjs 中の function enableMouseKey() の中の
useMouseKey = true; の部分をつぶすと効かなくなるが、
そのかわりクリッカブルマップをカーソルで選択できなくなる。
281:名前は開発中のものです。
09/03/19 06:54:26 bW6OyTuQ
>>280
ありがとうございます。たすかりました。
282:名前は開発中のものです。
09/03/19 23:59:53 aUtQqcXK
質問させてください
mpegで作った動画を吉里吉里で再生したはよいのですが
なぜかコンソールには
ムービーを Mixer モードで開くことができません
: Failed to call ConnectFilters( pMPEGVideoCodec, pRdr ). : [0x80004005] エラーを特定できません
と出てオーバーレイでの再生になってしまいます。
スクリプトの方でレイヤー指定すると、画面は真っ暗で音声しか流れない状況になってしまい
オーバーレイでの再生しか受け付けません。
オーバーレイの再生で見ると、かなり画像が劣化しているのですが
・レイヤーモードだと動画そのままの画質で見れるのか
・エラーの理由はマシンスペックによるものなのか
どなたかお答えいただけますと幸いです。
283:名前は開発中のものです。
09/03/20 01:47:21 N+uqd+oI
evalで代入される方の関数にエンティティを使いたいのですが出来ません。
例えば
[eval exp="tf.test_number = 0"]
[eval exp="&'tf.test_' + tf.test_number = 'テスト'"]
[emb exp="tf.test_0"]
といった感じのことがしたいのですがエラーになってしまいます。
どのようにすればいいでしょうか?
284:名前は開発中のものです。
09/03/20 01:51:31 HbT54b6M
>>274
>>275
あたりみるといいよ
TJS使うけど大丈夫だよね?
285:名前は開発中のものです。
09/03/20 01:57:25 KGRS2CW/
>>282
あんさんの環境が腐ってる可能性大。
まずはドライバと DirectX を最新に。
あと他の環境でも試すこと
286:名前は開発中のものです。
09/03/20 01:58:50 KGRS2CW/
>>283
[eval exp="tf['test_' + tf.test_number] = 'テスト'"]
287:283
09/03/20 02:40:20 N+uqd+oI
>>286
出来ました。お早い回答ありがとうございました。
288:名前は開発中のものです。
09/03/20 04:23:38 i5kAzZXi
例えば800*600のサイズのpng画像が120枚あるとして、
それを1から順番に読み込み表示する(アニメーションさせる)コストってどんなもんでしょうか?
事前に全画像を読み込んでおくとメモリ消費が凄そうですし、
レイヤを5枚くらい用意して、順番に表示非表示を繰り返しながら裏で次の画像を読み込んでいくと
ちょっとカクつきそうですし・・・
289:名前は開発中のものです。
09/03/20 05:28:11 5D/COt3n
なあ婆さんや、プラグインを公開するとかなんとか言っていた御仁はどこに行ったんじゃ?
290:名前は開発中のものです。
09/03/20 06:41:24 V4blPppD
桃と一緒にどんぶらこっこと流れ去って行ったのかもなぁ。
俺も中身がどんなのかちょっとだけ楽しみにしていたので残念ですわ。
291:名前は開発中のものです。
09/03/20 08:21:20 fogy9krD
>>288
800x600のpng画像120枚を表示するコストがどんなもんかといわれても、
メモリ上で圧縮した状態で持つのか展開した状態で持つのかとか、コストに大きな
影響を与える他の要素も多いしなんとも。
一般的な話をするなら、800*600 24bit を120枚メモリに展開すると約165MBなので、
現代のPC事情ならどって事ないきもするけれど、読み込むのに結構な時間がかかるよ。
利用詳細が分からないので何とも言えないけれど、120枚をmpg等の動画に
して取り扱うのが普通の対応じゃないかな。
292:名前は開発中のものです。
09/03/20 10:59:51 a1PmJ7Q8
>>285
レスありがとうございます
ぐぐったら吉里吉里wikiに詳細が出てました。
ドライバとDirectXは最新なのですが
マシンスペック(というかグラボ?)によるものみたいですね。
完成したらノートでも確認してみようと思います。
293:名前は開発中のものです。
09/03/20 11:30:01 i5kAzZXi
>>291
ありがとうございます。
αチャンネルの情報を持ったムービーでデータが持てれば早いとは思うのですが、
αチャンネルの情報を持てる動画形式って何かあるでしょうか?
検索で調べても殆ど出てこず、そもそもそれで書き出せるツールもほぼ無いようで・・・
294:名前は開発中のものです。
09/03/20 11:31:28 i5kAzZXi
あ、利用用途は画面上での爆発とかのエフェクト表示です。
想定画面サイズが800*600なので、最大サイズを例に質問しました。
295:名前は開発中のものです。
09/03/20 13:17:46 Pc0JW1eL
ムービーのセグメントループ設定をシナリオ進行とは別口で制御できないかな?
具体的には、立ち絵動画の複数シーンをランダムで再生させたいんだけど・・・
直視、まばたき、視線ずらし・戻し、あくび、etc・・・ 見たいなシークエンスをランダムに。
asdファイルよろしく、独立制御出来ないかなぁ。。。
296:名前は開発中のものです。
09/03/20 15:47:25 PeoRsPZZ
>>295
それこそアニメにすればいいのに
297:名前は開発中のものです。
09/03/20 17:18:23 Pc0JW1eL
や、まぁそうなんだけどねw
ただ、ドラクエ8の仲間コマンドのときみたく出来たらなあ…って思って。。
298:名前は開発中のものです。
09/03/20 17:27:48 N+uqd+oI
指定したメッセージレイヤーに現在表示されている文字列を取得することはできますか?
299:名前は開発中のものです。
09/03/20 17:58:56 O79CV9V+
>>298
できません。
300:名前は開発中のものです。
09/03/20 20:36:58 ZLwpp1Tk
>>297
試した事がないから出来るかどうか知らないけど
asdファイル内でevalタグ使って動かしてみたら?
301:298
09/03/20 23:05:30 N+uqd+oI
>>299
そうですか…ありがとうございました。
302:名前は開発中のものです。
09/03/20 23:46:37 i5kAzZXi
結局、αチャンネルを持った動画を書き出す方法は分からなかった・・・というかほぼ皆無
楓softwareって所の人が、連番pngをαチャンネル付きの動画にするツールを制作中ってあったけど去年から音沙汰無し
まあ、完成したとしても一般公開されるかどうかも分からないものだけど・・・
で、どれ位負荷があるか、自分でやってみました。
αチャンネル付きのpngファイル(800*600)を120枚、レイヤに読み込んで再生
まず書き出し直後のpngが全部で61MB、png圧縮ツールを使って46.4MB、直接TLG6に変換して43.6MB
そして、
・レイヤを1つだけ使って次々画像を読み込んでいく
・レイヤを3つ用意して、表示・非表示を切り替えながらバックグラウンドで次の画像を読み込んでおく
・レイヤを画像の枚数分だけ作って、最初に全部一気に読み込む
で、画像を順番に表示するスクリプトを組んでやってみたのですが
再生時の速度は「最初に全部読み込む」で、ファイル形式を問わず最速でしたが、画像を読み込む時に2秒くらいかかりました。
(それとメモリ消費が莫大)
一つ目と二つ目は、メモリ消費・再生速度にほぼ差が無く、どちらもある一定のラインからは、画像表示の速度は上がりませんでした。
唯一、画像をBitmapで持つ事で、一つ目・二つ目の方法でも十分な再生速度が得られましたが
画像だけで200MB以上必要になるので、全く実用的とは言えません。
TLG6と5には殆ど差が無かったので、画像形式はTLG6を使用するのが最適解のようです。
読み込みと表示のコストはともかく、他のツールやゲームではどのような形でこういうデータを持っているのでしょうか・・・
まあ800*600なんでサイズのエフェクト自体そう無いとは思いますが、容量的な問題はついて回りそうです。
縦横を半分にして、スクリプト側で2倍に拡大して表示、というようなやり方が必要かもしれません。
303:名前は開発中のものです。
09/03/21 00:26:58 6m29JYLY
>>302
現状だと、えーと、たしか Theora がαをもった形式に対応してた気がするのでそれを使うとか。
定番の手抜き実装は、元画像を、左半分にRGB、右半分にαをグレー化したものと配置した、
横2倍サイズの動画を作って、1フレーム展開するごとに右半分の1プレーンだけ左半分のα領域に
コピーする方法。すごい無駄に見えるけど、α領域はかなり圧縮されるからたいして問題にならない。
動画の再生機構として既存のものが使えるのでフレーム落ちの処理とか音声同期とか考えなくてすんで楽。
吉里吉里の VideoOverlay クラスを活用するなら、レイヤの右半分のBを左半分のAにコピー
するような処理だけプラグインでつくって、レイヤモードで再生しつつ、onFrameUpdate でそれを呼び出す、
とかすれば最低限の手間で作れると思われ。
304:名前は開発中のものです。
09/03/21 01:29:18 +F+a4UYI
nukIM@S-2とか。
でも、>>303の方法がコーデックに依存しないくていいね。
305:名前は開発中のものです。
09/03/21 03:25:18 ddcsL8oV
[if exp="askYesNo('OKですか?')"]
OK
[else]
NO
[endif]
で「はい」にしても「いいえ」にしてもNOになってしまいます。
どういうことでしょうか?どうすれば直るでしょうか?
お願いします。
306:名前は開発中のものです。
09/03/21 03:35:52 5IsgF8Fw
>>305
うちの環境にコピペして試したら選択に対応する形でYES/NO表示した。
そこ以外の問題。
307:名前は開発中のものです。
09/03/21 03:59:39 6m29JYLY
>>302
ちょちょいと作ってみた。暇ならその 120枚素材で動画つくってためしてみておくれ。
URLリンク(ruriko.denpa.org)
昔、directshow 呼び出して作ってみた layerExMovie ってのもあるんだけど、
素直に VideoOverlay 使ったほうがはるかに楽だねw WMVも使えるし。
308:名前は開発中のものです。
09/03/21 04:43:25 +F+a4UYI
>>307
神!
横からもらっていきますね。
これでゴリゴリTJS書かなくても逃げ切れる……
309:名前は開発中のものです。
09/03/21 11:17:03 W6lPwOk7
>>307
これすごいな。あなたが神か
310:名前は開発中のものです。
09/03/21 11:22:24 vZG3WwT3
>>303
配置は縦の方が良くないかな?
アルゴリズム的にも。
311:名前は開発中のものです。
09/03/21 13:41:52 8Wmc9Lpn
>>307
おおお、これは凄い! ばっちり再生されました!
んで、関数化して使ってみたんですけど
function Effect_Movie(file) {
var E_layer = new Layer(kag, kag.fore.base);
var E_movie = new AlphaVideo(kag, E_layer);
var filename = file + ".mpg";
E_layer.visible = true;
E_movie.layer1 = E_layer;
E_movie.open(filename);
E_movie.loop = true;
E_movie.play();
}
Effect_Movie('aaa');
こうすると、Abnormal program terminationが大量発生して落ちました。
関数にしないと普通に使えたんですが・・・
312:名前は開発中のものです。
09/03/21 13:57:57 6m29JYLY
>>311
そんな書き方したら関数ぬけるときに E_layer も E_movie も廃棄処理が
走るから、無理矢理動こうとして大変なことに…・
クラスのメンバー変数とかにもつようにしましょう
>>310
コピー処理がキャッシュの範囲に入りやすいかなーと思って
横にしたんだけど、動画的には縦のがいいのかしら?
313:名前は開発中のものです。
09/03/21 14:46:50 8Wmc9Lpn
>>312
あーーなるほど、クラスとか関数について知識が足りませんでした。
クラスを作って入れてやればちゃんと動きました
314:名前は開発中のものです。
09/03/21 17:43:54 vZG3WwT3
>>312
キャッシュの問題は2個のポインタで追いかけるわけだから、そんなに違わない気がするけど
エンコード/デコードアルゴリズムの関係で、右に繋がってると接続部分が画像によっては
ちゃんとデコードされなくなったりしないかな。
縦ならいざとなったら、8の倍数とかに詰めちゃうのも簡単だし、横より融通が利きやすい気がする。
例えば、メニーコアに対応させるのが簡単になりそうだろ?
315:名前は開発中のものです。
09/03/21 21:52:08 ruvdw8Cr
今前面に出ている背景レイヤが、kag.fore.baseかkag.back.baseか調べる方法はありませんか?
316:名前は開発中のものです。
09/03/21 23:32:20 uWbJzMH9
>>315
面白いこと聞くね
前面に出てるLayerは常にkag.foreだよ
トランジションなんかで、交換した場合も交換し終わった後に
fore <-> back;
で、交換されてるから
今、目に見えてるのは常にfore
317:名前は開発中のものです。
09/03/22 00:05:08 DdURj3AQ
KAGのcheckboxへのチェックは、commitタグで確定されますが
checkboxから移動できる先が多いと、うっかりミスでcommitし忘れたりします。
checkboxにチェックを入れたり外したりしたら、その瞬間に入力を確定させるいい方法はありませんか?
318:名前は開発中のものです。
09/03/22 00:26:46 DdcqioyR
>>315は
var mylayer = kag.fore.base;
//何度かトランジションする
//さて、今mylayerに入っているのはどっちだろう?
みたいなことを知る手段を聞きたいんだと見た
319:名前は開発中のものです。
09/03/22 00:33:56 tFuXruna
>>318
さっきも言ったとおり
トランジションしても、最終的に中身交換されるから
変わらないでしょ?
自分で変えない限り
maylayer は kag.fore.base のまま
320:名前は開発中のものです。
09/03/22 00:39:29 kcPNhm7V
fore.baseでnew Layerしたオブジェクトがあって、何回かトランジションした
このオブジェクトで画像を表示したい、でもfore.baseが後ろに回ってると画像も裏に回って表示されない
その場だけで使い捨てしたいので、一々classを作ってonExchangeForeBackするのも大変、さあどうしよう
こんな感じ
321:名前は開発中のものです。
09/03/22 00:43:36 O+SW/UjB
>>320
layer.parent = fore.base;
で適当に表示されてるほうにつなぎなおしたんじゃだめなの?
322:名前は開発中のものです。
09/03/22 00:54:00 a32vmTXO
>>320
それ、どこで破棄してるんだ?
>>317
kagのcheckboxタグはexp属性がない。
そもそもLinkCheckBoxLayerは親レイヤのonButtonClickとかを呼ばない。
下手に書き換えても今度はcommitでエラーを出すと思う。
プラグイン作るかtjsでやるしかないな。
323:名前は開発中のものです。
09/03/22 01:00:44 6cDML2ds
>>319
>maylayer は kag.fore.base のまま
間違い。トランジションするたびにmaylayerはfore、baseの値になる。
正確には、maylayer
324:名前は開発中のものです。
09/03/22 01:02:47 6cDML2ds
途中で送ってしまった。
maylayerの値はそのままだが、kag.fore.baseとkag.back.baseの中身(アドレス)が入れ替わる。
それを正しくなるように調整するための KAGPlugin#onExchangeForeBack
325:名前は開発中のものです。
09/03/22 01:07:59 DdURj3AQ
>>322
ありがとうございます
エラー回避の手間に見合う程の改造の効果も無さそうなので
地道にcommitします
326:名前は開発中のものです。
09/03/22 01:17:30 kcPNhm7V
>>321
なるほど、parentというのがあったのか
layer.parent = kag.fore.base;
kag.update;
で出来た、どうもありがとう
327:名前は開発中のものです。
09/03/23 20:33:45 KrLh9tix
TJSに構造体って無いの?orz
328:名前は開発中のものです。
09/03/23 20:42:36 NMvVPiPs
クラスでやれ
329:名前は開発中のものです。
09/03/23 21:46:12 a/PYd7GW
辞書配列でも代用できるぞ
330:名前は開発中のものです。
09/03/23 23:01:09 KrLh9tix
>>329
辞書配列って内部的にはどうやってるのかな……
それ次第では色々出来るんだけどな……
Cの配列と同じかな?
331:名前は開発中のものです。
09/03/23 23:40:26 NMvVPiPs
どういう意味で?
332:名前は開発中のものです。
09/03/23 23:45:05 KrLh9tix
>>331
メモリ的な意味で
連番で要領確保できるなら最高なんだが
333:名前は開発中のものです。
09/03/24 00:01:02 LfASVegT
とりあえずマニュアル読んで出直してきたほうがいいと思われ
334:名前は開発中のものです。
09/03/24 12:25:35 QS0mPzR8
クラスでやらん理由がほしい所だな。
普通に使う場合、構造体で出来る事はクラスで全て出来るんじゃね?
335:名前は開発中のものです。
09/03/24 15:05:29 nYkaFotU
まあどうしてもC的にメモリ確保したければプラグインかけばよろし
iTJSDispatch2さえ適切に実装すりゃ普通にtjsからアクセスできる
336:名前は開発中のものです。
09/03/24 18:18:12 5BS0J/IG
TJSにCで言うsizeofってありませんか?
必死に調べてるんですがみつかりません……
337:名前は開発中のものです。
09/03/24 19:58:05 Fp8OuF9S
配列の長さならArray.count
338:名前は開発中のものです。
09/03/24 19:58:24 Orj+hGmQ
必要ないから存在しない。
何がやりたいのかかきなされ
339:名前は開発中のものです。
09/03/24 20:07:14 Fp8OuF9S
ああint.sizeofとかのことなら>>335だな
340:名前は開発中のものです。
09/03/24 20:58:28 CE14R9GG
1つのプログラミング言語でしか物事を考えられない
奴ってたまにいるよね
341:名前は開発中のものです。
09/03/24 21:17:09 5BS0J/IG
>>338
好きなタイミングでデータをバイナリ形式で保存することを考えていて
f_open,f_closeなどの関数をdll化したところまではいいんですが
変数を個別に保存してたんじゃ、すごくめんどくさい
ということで、構造体(変数のみのclass)として保存しようと思ったんですが、
save(sizeof(class) , &class);
int save(int memsize , void* pclass){〜処理〜}
こういう手段をとるのがおそらく一番スマートですよね
というわけで、sizeofを探していました
そのclassの中で使った変数を、typeof(?)で、型を判別し個別に計算してもいいのですが、煩雑で実行環境依存となってしまうため
聞きました
C言語が分からなければ通じないと思ったので個別に聞いてしまいました。説明不足で申し訳ないです
342:名前は開発中のものです。
09/03/24 21:28:16 Orj+hGmQ
tjs とかすりもしていない件
質問A Dictionary.saveStruct でだめな理由は?
343:名前は開発中のものです。
09/03/24 21:30:58 Orj+hGmQ
質問B とりあえずどうしても cで保存したいんだとして、
吉里吉里側のデータはどういう形でわたってくると
考えてる?
iTJSDispatch2 や tTJSVariant が何者か説明できる?
344:名前は開発中のものです。
09/03/24 21:31:18 CE14R9GG
もしかして吉里吉里のソースすらまともに読んでないのか?
tTJSVariantてクラスがあるはずだが
(最近、プラグイン書いてないんでうろ覚え)
ついでに言うと>>342の意見に同意
第2引数でバイナリにすりゃいい
345:名前は開発中のものです。
09/03/24 21:37:12 Orj+hGmQ
ああ、なんとなくわかった。
吉里吉里のクラスが固定サイズだとおもってるんだな
残念ながら吉里吉里のデータ構造はサイズ不定で動的なで
さらに個別ネイティブオブジェクトの実装依存だ。
統一されたインターフェースのみが存在する。
「シリアライズ」って言葉の意味は分かる?
わからないなら今の君には無理だから変数
保存だけで我慢しなされ
346:名前は開発中のものです。
09/03/24 22:06:11 5BS0J/IG
こんなに沢山回答どうもです
吉里吉里のソースはめんどくさいんで読んでません
↑こんな舐めた態度で、実装外のことをやろうと思ってた自分が馬鹿でした
反省して、大人しくソース読んできます
お時間取らせて申し訳ないです
347:名前は開発中のものです。
09/03/24 22:10:07 GoXeFwNr
>>346
今回の件に限らず、ソースは一通り目を通しておくといいよ
冗談抜きに一番の参考書だから
348:名前は開発中のものです。
09/03/24 22:28:46 +zuQz9WC
>>346
そんなに時間を無駄に使う必要はない。
必要なことは TJS2リファレンスの「組み込みの手引き」に全部書かれてる。
あとは tp_stub.ht と basetest プラグインのソースだけ見ておけばいい。
それらを見て理解できないようなら、C/C++ の勉強をやりなおす必要がある。
349:名前は開発中のものです。
09/03/24 22:34:19 Fp8OuF9S
オクテットストリームでビットフィールドを実現して
そこへ自前で領域確保とかして書き込んでいけば
もしかしてプラグインなしでもそれっぽいものができる?
350:名前は開発中のものです。
09/03/24 22:43:12 CE14R9GG
…後は親切な>>348に任せるわ
351:名前は開発中のものです。
09/03/25 03:52:19 VUFh0LiU
マクロに、文字を送って表示したいんだけどどうすればいいんだろう
〜名前〜
あああああああああああああああああああああああああ
あああああああああああああああああああああああああ
こういうウィンドウを考えていて
名前の部分だけ、messagelayer1に書こうと思ってます
―マクロ([macro name=ch])
[current layer=message1]
[delay speed=nowait]
〜 〜←ここに名前を表示したい
[delay speed=user]
[current layer=message0]
―エンドマクロ
そこで、[ch name="キャラ1"]等といった使い方をしたいのですが
一度、変数に入れる方法を思いついたのですがマクロ内で
[eval exp="tf.名前=%name"]←をやろうとするとエラー発生で動きません
マクロに、文字列を渡し、その文字列を表示するにはどうしたらいいのでしょうか?
352:名前は開発中のものです。
09/03/25 04:07:17 hJvrKHwY
>351
[emb exp="mp.name"]
KAG System リファレンス内の「タグリファレンス」のembタグの項目と、
おなじく「TJSをもっと使うために」のmpの項目を参照
ちなみにchは、KAGの内部でそういう名前のタグが使われているので、
マクロ名は別のにしたほうがいい
353:名前は開発中のものです。
09/03/25 04:10:26 VUFh0LiU
>>352
ありがとうございます
chは使わないようにします
354:名前は開発中のものです。
09/03/25 19:05:13 5nqsG5hx
サムネイルのサイズを変更したいと思ってます。
そうすると、前のサイズでのセーブデータが読み込めません。
前のサイズのセーブデータを今のサイズに変換する方法を教えて頂けませんでしょうか?
よろしくお願いします。
355:名前は開発中のものです。
09/03/25 23:09:22 VUFh0LiU
吉里吉里で、いわゆる目パチみたいなことはできるのでしょうか?
文字を表示しながら〜○○
みたいな動作ってどうやってやればいいんでしょうか……
356:名前は開発中のものです。
09/03/25 23:25:28 BVNPEEAK
>>355
そんなのすぐできる
kagのtemplateつかってるなら、
systemフォルダの中のAnimationLayer.tjsファイルを読め
書いてあるから
357:名前は開発中のものです。
09/03/25 23:26:32 VUFh0LiU
>>356
ありがとうございますです
358:名前は開発中のものです。
09/03/26 06:37:10 vfXg1EKH
>>354
saveThumbnailをキーワードにしてMainWindow.tjsを追ってみろ
どうやってデータが保存されてるか読み取れないようなら互換性なしとして諦めろ
なんとなくわかったのなら、ビットマップのヘッダみるなりレイヤに読み込むなりして
目的のサムネイルのサイズを調べて、オフセットを計算すれば栞データは手に入るはず
359:名前は開発中のものです。
09/03/27 01:26:51 mFoQPo9H
>>358
ありがd
なんとなくだけどわかった。
やってみる。
360:名前は開発中のものです。
09/03/30 17:33:15 G2nY8uhV
タグマクロ使いまくった処理のかなり頻繁なゲーム作ってるんだけど、
使わないものは積極的に@erasemacroで消したほうがいいの?
現状で3Mくらい読み込んでゲーム動かしてるんだけれど、その程度じゃわざわざ消す必要も無い?
処理速度を重視してるので、目にわかるような負担軽減効果が見られるならやらなければ〜とは思ってるんだけど、管理する数が多すぎてやるにはそれなりの覚悟がいるので…。
361:名前は開発中のものです。
09/03/30 17:56:29 r/TSlpFw
参考になるかは不明だけど、俺はSLGを作ってる。
エフェクトとかの為に、かなりの量の画像を起動時に読み込んでおいている
けど、3M程度なら処理速度に差はないんじゃないかな。
寧ろ消したりする処理で遅くなる可能性あると思う。まあ、マクロなんで
画像とは違うだろうけどね
362:名前は開発中のものです。
09/03/30 18:18:56 nlSMeikS
>>360
現時点ですでに処理速度がもっさりしてるとか
明らかに遅いと感じる状態でなければ、
おそらく見た目には何の効果もない
363:名前は開発中のものです。
09/03/30 19:22:31 G2nY8uhV
>>361-362
けっこう気にしてた点だけど、やっぱ容量的にも大したことないし問題はなさそうね。さんくす。
364:名前は開発中のものです。
09/03/30 19:31:03 b081FDF2
画像読み込まなくても
レイヤ何十枚とかコンフィグで用意しとくと、メモリ使用が150MBとかいって
ちょっと心配になる
365:名前は開発中のものです。
09/03/30 22:35:23 G2nY8uhV
文字はわからんけど、前景レイヤー数は処理の激しいゲームだと目にわかるレベルで重くなるからそういうの気になるもの作ってるならlaycountとかでシーンごとに調整したほうが良い。
ノートとかの貧弱な環境だと目に見えてわかるからなぁ。
ちなみに自分が実体験したのは、前景レイヤー50枚くらいのを25枚くらいに減らしたときね。
366:名前は開発中のものです。
09/03/30 22:47:55 m2FTtfgw
そんなにレイヤー数って要る?
うちとか多くても3つくらいで済むけど
367:名前は開発中のものです。
09/03/30 22:54:38 MU0a5/7H
同じゲームじゃないんだから。
368:名前は開発中のものです。
09/03/31 02:21:04 7ELU0+Y2
あんまりちゃかちゃか動かすようだったら配列にしてやって一枚のレイヤに書き出すとかしたほうがいい事もある
369:名前は開発中のものです。
09/03/31 02:36:34 8bPc8gMy
使用しているLayerの数を取得する方法ってありますか?
Messageと、前景それぞれの数に応じて処理を変える必要があるんですが
370:名前は開発中のものです。
09/03/31 02:51:02 7ELU0+Y2
>>369
forで回してvisibleがtrueのレイヤを数えるとか。widthやheightが初期値じゃない奴を数えるとか。
でも、立ち絵とかを立たせた時に自前で変数を用意してあらかじめ数えておいた方がいいかもね。
371:名前は開発中のものです。
09/03/31 03:08:32 8bPc8gMy
>>370
確かに、そうですね。自分で数えることにしました。ありがとうございます。
もうひとつなのですが、現在非表示かどうか取得するのは
var tst;
tst=kag.fore.message[0].visible;
これで、tstにはfalse or true が入ると思っていたのですが、どうやら違うみたいです
非表示かどうかのプロパティはいったい何になるのでしょうか
372:名前は開発中のものです。
09/03/31 04:30:01 7ELU0+Y2
>>371
kag.fore.messages
複数形じゃなかったっけ?
373:名前は開発中のものです。
09/03/31 06:19:19 8bPc8gMy
>>372
まさか、そんな凡ミスだったとは……orz
ありがとうございました
374:名前は開発中のものです。
09/03/31 08:38:22 mWC375xx
試してないけど、kag.fore.layers.countとかで取得できない? >レイヤ数
375:名前は開発中のものです。
09/03/31 09:19:55 8bPc8gMy
>>374
kag.numMessageLayersで取得できるみたいですよ
度々すいませんorz
F1+ShiftKeyなんかを押すと、デバッグコンソールなんかが表示されてしまいますよね?
この、いわゆるデバッグモードを解除する方法って無いのでしょうか?
376:名前は開発中のものです。
09/04/01 22:46:34 IaBNOmCo
システム面に一貫性が無いのが吉里吉里の弱点だと思っている
自由の裏返しで
377:名前は開発中のものです。
09/04/02 13:42:40 ioRM8biu
え?
378:名前は開発中のものです。
09/04/02 13:49:22 NRAE3sQL
きちんと使いこなしてるところとそうでないところの落差はひどいものがあるのは確かだな
379:名前は開発中のものです。
09/04/02 14:06:53 PIq12mry
>>378
きちんと使いこなしてる例をあげてくれ、参考にしたい
380:名前は開発中のものです。
09/04/02 14:34:54 KSZodyIE
>>379
タイプムーンのFateは、これをつかっていなかった?
逆だっけ?月姫だっけ?
381:名前は開発中のものです。
09/04/02 14:53:36 8pHsic/q
Fateは、きちんと使いこなしてる例とは違わね?
ていうかきちんと使いこなすってどういう意味だかよくわからんな
382:名前は開発中のものです。
09/04/02 15:04:58 Buca8rwt
今時セーブロードがメニューバーからとかいう時代錯誤アイテムを使う人間なんているの?
383:名前は開発中のものです。
09/04/02 15:34:45 T4KVaxD2
>>382
別にメニューバーからセーブでもいいと思うけどな。
システムに気合いれてるが、肝心のゲーム本編がへぼいのはたくさんあるしな。
うまく使いこなしている、という意味であれば、ごうさんの会社だろうな。
384:名前は開発中のものです。
09/04/02 15:48:27 axpHWPne
頑張ってオリジナルのセーブ画面を作るのはいいんだけど、
キー操作を無視した作りだと、個人的にはゲンナリするな
そんならまだメニューバーのほうがマシだと思うぜ
385:名前は開発中のものです。
09/04/02 15:53:40 NRAE3sQL
>>381
KAG の内部構造を把握して、マクロ以上のふみこんだ作業ができてれば
使いこなせてると言えるんじゃないかと。わかりやすい例としては
・終了ダイアログの差し替えができてる
・コンフィグ処理やセーブロード処理をメニューバー以外できちんと組み込めてる
>>379
商業だとこんなとこかね。
↑カスタム度低
あかべぇそふとつぅ:標準的なカスタムの代表例的なブランド
ナインテイル:レイヤアクションの扱いがとにかくうまいブランド。カードバトルとかの特殊システムも組んでる
TYPE-MOON:吉里吉里を有名にしたブランド。いろいろカスタムしてる他、花札とかの特殊なシステムも組んでる
ゆずソフト:KAGEXを使ってる代表的ブランド。常に最新開発版な人柱ブランドでもある
ハイクオソフト:TJSで完全独自システムを組んでる珍しい例
↓カスタム度高
386:名前は開発中のものです。
09/04/02 16:00:48 KSZodyIE
>>385
ところで、そのカスタム度が高いソフトメーカーは、金を払って協力してもらっているのか
自分たちでカスタマイズしているのか、どちらなのだろう?
素朴な疑問だけど。
387:名前は開発中のものです。
09/04/02 16:01:14 kwX+uxuF
2年前に1本作った時は、KAGEXに微妙なバグがあって使うのやめたんだけど
今はバグ周りは解消されてるのかな
388:名前は開発中のものです。
09/04/02 16:08:37 THJvs+Do
正直、KAGEXのメリットがいまいち分からない
389:名前は開発中のものです。
09/04/02 18:15:21 NRAE3sQL
>>368
ナインテイル、TYPE-MOON、ハイクオは社内PGと思われる。
ゆずソフトはワムソフトに外注してる。
あかべぇ系は、最近のだとG線、DDC、WLO、パンツが同系統のカスタムがかかってて、たぶん社内PG。
るい智、コンチェルトノートはゆず同様にワムソフト外注でKAGEX使ってる。
ガチ乙女も吉里吉里だけど全然別系統のカスタムがかかってるのでさらに別のPGぽい
390:名前は開発中のものです。
09/04/02 18:44:09 8pHsic/q
全然知らない社名?ばっかりなんだが、俺ヤバイかな
391:名前は開発中のものです。
09/04/02 18:51:14 84wnMQfa
エロゲの勢い全体が落ちた+>>390が年をとった&社会人になった だろう
392:名前は開発中のものです。
09/04/02 19:08:30 KSZodyIE
>>389
なるほど、ありがとう。
393:名前は開発中のものです。
09/04/02 20:03:23 25lOJ//x
エロゲは大学生がやってるのか
394:名前は開発中のものです。
09/04/02 20:14:33 BXTEZVpz
それにしても>>389は大したもんだ。
そこまでスラスラ出るのは、業界人でないならよっぽどエロイ人なんだな(・∀・`)y━~~
395:名前は開発中のものです。
09/04/02 20:32:00 hxJaACLL
だれか>>375お願いします
ちょっとフリーのソフトで試してみたのですが、普通にデバッグコンソールが表示されてしまうソフトが結構ありました
これまずいですよね……
396:名前は開発中のものです。
09/04/02 20:35:02 kwX+uxuF
krkrconf.exe使え
397:名前は開発中のものです。
09/04/02 20:35:18 q1VAyNTx
リファレンスに書いてなかった?
398:名前は開発中のものです。
09/04/02 22:58:28 89py0zzO
>>395
フリーだと忘れてるの多いよな
396も言ってるけど、krkrconfの設定とかReleaserで
デバッグ支援ウィンドウを無効にする設定があるはず
(デフォでは有効になってたと思う)
399:名前は開発中のものです。
09/04/03 00:55:54 sVoWzUgB
>>396
解決しました
>>397
リファレンス探しまくってたんですけどなかったと思います
多分見落としだと思いますが、Config.tjsあたりでデバッグモードの有無を設定できるのかなあ、なんて考えて一生懸命TJSを追ってました
>>398
ありがとうございます
しかし、これ、アーカイブの中に入れたら無効化されちゃいますね
外に出してあったら、削除されちゃうし
どうにか隠蔽方法は無いのだろうか……
400:名前は開発中のものです。
09/04/03 01:13:57 ZuAT6EN6
デバッグコンソールでできることなんてスクリプトが見えるくらいで何も困らん
その程度自己解決できないなら吉里吉里使うなよ
401:名前は開発中のものです。
09/04/03 01:19:03 sVoWzUgB
>>400
タグリファレンスに乗ってるようなこと質問してるわけじゃないんだから大目に見てください
デバッグコンソールで変数代入とかされたら、意図しないバグがおこったり、クリアせずにCGだけ見られたりいろいろできると思うのですが
400の方は変数名を、全てランダムでつけていたり、何か対策をとられているのでしょうか?
それとも、俺以上にあほで無知なのでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4611日前に更新/284 KB
担当:undef