[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/25 22:48 / Filesize : 284 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 21:45:09 ID:vk8ZBBdD]
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。

※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!

前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その16
pc11.2ch.net/test/read.cgi/gamedev/1227735828/

吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/

吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/

ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。

必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)

227 名前:224 mailto:sage [2009/03/08(日) 16:31:45 ID:sCuwdZMS]
>>225
PassThroughDrawDeviceのソースを読んでみたんですが、アップデート処理ではiTVPLayerManager::UpdateToDrawDeviceを呼んでるだけなので
描画処理をDirectXなりで高速化しようと思ったらレイヤ関連の低水準な部分から実装し直す必要がありそう?
レイヤのピクセルデータをDirect3Dのテクスチャで持っておいて、更新時にレンダーターゲットに合成とか。
そこまでいくと既存エンジン使うことの意味が薄れるというか……。
環境依存になってもいいから速度が欲しいって層も結構いるはずなので誰か実装して公開してないかな。
欲しいなら自分で作れって話だけど、はい。

FPS調整は今のところContinuous Handlerで描画処理を呼んでるので、-contfreqで呼出頻度を変えてるだけです。

>>226
慣れ親しんだ吉里吉里(+KAG)で書きたいので、何とかどうにかしたい。

228 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 17:22:04 ID:5QzPfy2V]
>>227
>レイヤのピクセルデータをDirect3Dのテクスチャで持っておいて、更新時にレンダーターゲットに合成とか
iTVPLayerManagerはそのための処理を抽象化した機構だぞっと
iTVPLayerManager 経由で吉里吉里側で把握してる更新領域分のビットマップだけを送り込んでくれるようになってる。
ただし、吉里吉里側の設計上、drawdevice におくりこんで制御できるのは、子レイヤの合成を全部把握してる
primaryLayer のみ

既存実装での Update() はそのレイヤマネージャの更新処理の口を全部たたいてるだけ。
iTVPDrawDevice::StartBitmapCompletion, NotifyBitmapCompleted, EndBitmapCompletion
が順次呼ばれてビットマップ情報の drawdevice 側への転送が行われるようになってる。

そのビットマップをどう保持するかは drawdevice の実装次第で、Direct3D ならテクスチャに
保持して、更新があった部分だけ lock してテクスチャを更新することになる。
そのテクスチャ化した吉里吉里レイヤの実際の描画処理は Show() で行う。

ソース眺めるなら、drawdeviceD3D とかも見るべし。複数の primaryLayer のビットマップ情報を
テクスチャ化して、拡縮した上で合成かけるサンプルになってる。もっとも単純に生成した順に重ねてるだけだが、

最背面:吉里吉里の primaryLayer その1
中間: 任意の D3D の描画
最前面:吉里吉里の primaryLayer その2

といった形への改造なら簡単に作れるだろう。
ただし、これは、吉里吉里本体が内包してる D3D7 のインターフェースを使ってる
から、自前で3D処理も作るなら今なら D3D9 で書き直したほうが良いとは思う。

実際の3Dエンジンとの複合例なら drawdeviceIrrlicht のサンプル実装もある。
Irrlicht 描画の内容を吉里吉里のレイヤに吸い込む処理ももってるから、
それはそれで参考になるだろう。それはやっぱり転送大量で重いけどね

FPS処理はその実装でおk

229 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 05:04:31 ID:WZvWWyt5]
>>211
こういう場合は、ルールを明確でシンプルにすること。
例えばパラメータがいろいろあるからといって、それらを一つ一つ表情に反映させようとすると
めちゃくちゃになる。211が言っているようなゲームの思考ルーチンだと、例えばどきどき度など
というパラメータを1つだけ作って(どきどきどの算出関数は他の複数のパラメータを参照して良い。
またこの関数をキャラのタイプ別に用意しても良い)そのどきどき度に応じてキャラ表情を1次元上に並べる。
そして、個性や強さは、そのどきどき度をどの程度補正できるかというパラメータで表現してしまう。
補正パラメータが適正値を超えると、逆の反応を示すようになるわけ。
これで、基本がシンプルになったから、後は性格付け(勝ってると補正パラメータが下がって
いくとか、ゲーム数が増えると補正パラメータが下がっていくとか)と、プレイヤーの反応に
対するイレギュラー(大きくかけると驚くとか)をいくつか入れてやれば、プレイヤー側で
勝手に裏読みし始めるようになるので、それなりのものはすぐ作れるよ。

ポイントは、多数のパラメータを、表情を表示するために一元的なパラメータにしてしまうところだな。

230 名前:211=222 mailto:sage [2009/03/09(月) 06:51:51 ID:+2V/95PJ]
>>223,229
アドバイスありがとう!
でも実は‥ 関数は使ってないんだ。(´д`;)

処女作なので、条件分岐と変数に四則演算や1〜100の乱数を入れるスクリプトだけで
作れるものをと思って挑戦した次第。
何しろどういう計算の関数にしたら思うようなシステムになるかまるっきり思いもつかない。
それぞれをマクロにまとめてどうにか見られる形になったというレベルなもので。

ゲーム自体は2人がまず参加料のチップを出した後、1枚ずつの札を引いてチップを賭ける。
札の大きい方が勝ちでチップを総取りという実に単純なもの。

キャラの行動も個性を抜きにすれば、キャラが賭ける側(子)の時は見た札の大きさに反応して
ベットする(賭ける)枚数を決める。キャラが受ける側(親)の時はプレイヤーが賭けた枚数に
反応してコールするか降りるか決める。というだけのごく単純なもの。
ただし表情は、札を配られる前、配られて札を見た時、プレイヤーの行動に反応する時、
自分の行動をする時、勝負の結果に対する時 etc..かなり多岐に渡るという。

やっぱりちゃんとTJSを勉強しないとダメだなー。でもそれを使えるようになっても、
どういう関数に組んだらいいかというセンスもまた必要なわけで。

とりあえず今回はここまで進んでいるのでこのまま力押しでいこうかと。
>>223のまず絵を入れる前に文章で仮製作するというのは今すぐそのまま使える手法でいいね。
>>229のアドバイスも、今後関数を勉強してぜひ試してみたいと思います。

231 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 12:12:27 ID:xRvvOvpc]
タイトル画面のメニューのボタンを押したらpush音が鳴るようにしたのですが、
(linkタグのclickse属性でwavファイルを鳴らしています)
起動時の一番最初だけタイミングがずれてイヤです

(1)ずれる原因は、次のうちどれでしょうか
・wavを鳴らすための準備(初期化?)をしている
・wavファイルがどこのフォルダにあるか探している
・その他初歩的なミス

(2)2回目以降がきちんとタイミング良く鳴るわけは、次のうちどれでしょうか
・キャッシュデータ(って言うのだろうか)が残っている
・対象のwavファイルまでの道筋を記憶している
・その他

(3)これを解決するにはどのようにしたらいいのでしょうか

232 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 12:47:25 ID:FL2+xgM6]
解決法:oggにする

233 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 12:51:20 ID:xRvvOvpc]
>>232
目から鱗!
みなさんそうやってらっしゃるんですかあ

234 名前:名前は開発中のものです。 [2009/03/09(月) 15:19:00 ID:cWf/NN7v]
>>231
どっかで、無音のWAVを最初にマクロとか色々読み込む段階で一回鳴らしとくといい
ってのを見たことがあるよ
理由は忘れたけど
起動してから初めて使うWAVは、ずれるみたい

235 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 15:37:20 ID:xRvvOvpc]
>>234
無音wav これはひょっとしたらと思ったやり方です やはりやってらっしゃるのかあ
さっきコンソールを見たら、やっぱり初回wavの時に何かごちゃごちゃやってるようです

(info) DirectSound Driver/Device found : プライマリ サウンド ドライバ
15:25:57 (info) DirectSound Driver/Device found :
SoundMAX Digital Audio [C:\WINDOWS\system32\ ……以下略

wavファイルの方に問題ではなく、ドライバの起動(って言うのかな)に時間がかかるようですね
無音wavの利点は、wavファイル=効果音、oggファイル=BGM、と大まかな使い分けで分かりやすい
この方法を試してみることにします ありがとうございました



236 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 17:31:27 ID:BBoPyAuw]
クリック待ちアイコンをタグで変更できますか?
できるのならどうやるか教えてくださいお願いします

237 名前:名前は開発中のものです。 [2009/03/09(月) 17:40:09 ID:skZwU9FF]
>>236
devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html#glyph
リファレンスちゃんと嫁

238 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:32:09 ID:7gFS/87r]
>>236
何をどうググったのか、知りたいところだ。

239 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 21:35:21 ID: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 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 13:31:06 ID:TrSYriSF]
>>239
いろいろ試していて面白いソースですねw
フォントや太字が関係ないのは、文字サイズを大きくしてみたら分かります
(少し太くなるように見える現象が、大きくしてもあまり変わらない)
スクショを撮って拡大してみたら、アンチエイリアスが原因と分かりました
メニューから「文字表示」「アンチエイリアス」でチェックを外してみたら、変化がなくなりました

以下は予想です
すでに文字が表示されてる状態で左寄せをすると、再描画されることになり、
2重にアンチエイリアスをかけて、結果少しだけ太く見えた
吉里吉里内部のことは分かりませんw

241 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 15:36:26 ID:uuY2ymni]
>>240
でたらめなソースですね、ほんと。
すいません。
何故コレに気づいたかというとマクロに処理を一括させてたんですが、
文字列をマクロにわたして出力させたときに、
通常1行ごとにわたしてたので気づかなかったんですが、
1行にこのマクロを複数呼び出すと、この現象が起こって。
それでどこに原因があるか調べるためにこのソース書いたんです。

アンチエイリアスが原因なんですか・・・。
正直聞いてもどう対処すればいいのかわからないw
アンチエイリアス切るしかないのか・・・。

242 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 16:30:49 ID:TrSYriSF]
>>241
再描画してることは分かりました
最初を左寄せ、後を右寄せとかに変えたら判明した
これをよく考えてみると、アンチエイリアスが悪いのではないかも知れません
白の上に白を重ねても白に変わりはないけど、
アンチエイリアスのグレースケールの部分を重ねたことによって、濃くなったと

そもそも[style]は、文字を表示する前に使うタグなのではと思ったりする
文字を途中まで書いて、[style]を入れるのは、期待されてない使い方なのかと

このマクロを呼び出す時には、メッセージがクリアされてる状態であることか、
途中で呼び出すのなら、[style]をマクロから外すことで対処できるかと思います

243 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 17:00:30 ID:TrSYriSF]
微訂正
ごめん、今調べて分かったけど、根本的なことが抜けていた
[style]は行のスタールを指定するタグだから、行の途中というのがまずかったみたい
メッセージがクリアされてる状態でなくても、改行して次の行なら挙動は問題ない

244 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 17:08:26 ID:uuY2ymni]
>>242
なるほど!メッセージレイヤーがクリア状態のみ実行すればいいのか!
cond属性にクリア状態の判定を行えばいいかな?
メッセージレイヤーがクリア状態か判定する方法を、
MessageLayer.tjsを見てできそうなの探したんですが、
[style align="left" linespacing="10" cond="kag.fore.messages[0].lastDrawnCh==''"]
でいいんですかね?
lastDrawnChって最後に描画した文字とのことで、
[er]とか[cm]でクリアすると空白になると予想したのだけど。。。

245 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 17:12:18 ID:uuY2ymni]
>>243
ほんと色々ありがとうございます。
クリア状態の判定じゃなくて、行頭かの判定でもいいってことですよね?
やり方がわからないですがw



246 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 21:18:35 ID: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 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 21:21:36 ID: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 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 22:17:59 ID:uuY2ymni]
>>246
解析ありがとうです。
やっぱりマクロで組むときに、仕様3で、
cond="current.x == current.marginL"と書いて、
行頭時のみstyleタグを使用するようにしようと思います。

助言を頂いたお二人ありがとう!

249 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 22:55:28 ID:uuY2ymni]
cond="kag.current.x == kag.current.marginL"だった。。。

250 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 11:22:25 ID:61HDwFvy]
>>248
仕様3で
使用するように
しよう

251 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 14:27:43 ID:3KzMS1iA]
おもしろいでちゅねー

252 名前:名前は開発中のものです。 [2009/03/11(水) 17:08:42 ID:+tS0RLY3]
はじめての
はいはいワロスワロス

253 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 22:20:26 ID:JcAglrjg]
バグ報告よろちくび

254 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 18:28:17 ID:OREavZTD]
初歩的なことだけど、
シナリオファイル内で[iscript]で関数を記述したとして、
その[iscript]通過後に、[jump]でその関数の記述前に飛んで、
もう一度[iscript]の所にきたらどうなるの?
関数を再定義するのかな?
timer関数とかで、enabled=trueの時に、
同じ関数を読み込むとかエラーおきるのだろうか?

255 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 02:04:19 ID:QcRrk2h9]
自分で試せよんなもん



256 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 15:44:01 ID:EYxKsgP9]
>>254
オーバーライドの仕組みを勉強してみるといいよ。


257 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 17:27:38 ID:4y2AAoc7]
KKDE2で240桁以降って下のバーや右カーソル押しても潜っちゃって見れないんだけど
これは改行するしか対処方ないかな?
結構探したつもりなんだけど、指定行や右端で折りたたみってオプションないよね?

258 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 19:37:02 ID:r/LS/GQ0]
>>256
それはオーバーライドとは違うような…

オーバーライドって言ってみたかっただけならスマス

259 名前:名前は開発中のものです。 [2009/03/15(日) 19:07:43 ID:JjWHmm0Y]
最近プラグイン製作にはまってるんだ
今100種類くらい(使い道アルかは知らないけど)あるんだけど
これってどっかで公開したら需要あるかな?

作るだけで満足しちゃって、俺自身は使ってないから不具合とかあるかもしれないんだけどね
主に、エフェクト系が多い
Fateに使われてるようなエフェクトは全部作った

音響系も、MIDIを内部で変換してWAVで流す(つまり、基本的にやWAVを使用できる)プラグインとか作った
書いてて思ったけど重要なさそうなのばっかだな……
おとなしくゴミプラグインは削除して作品製作にはいるか。チラ裏すまん

260 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 19:11:06 ID:/7mOtL8f]
>>259
興味あるから公開してほしい。

261 名前:名前は開発中のものです。 [2009/03/15(日) 19:23:02 ID:JjWHmm0Y]
2日レスなかったのにこんなに早くレスつくとわ……びっくりした
ソース付きの方が良いかな?
汚いから

262 名前:名前は開発中のものです。 [2009/03/15(日) 19:24:01 ID:JjWHmm0Y]
参考にはならないと思うけど

263 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 20:03:49 ID:+BcqjnZr]
うp!うp!
ソースは見たい人もいるんじゃないかね?
俺は見てもわからんけどw

264 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 21:14:11 ID:Mu0gXtML]
>>261
みんなスレ汚しを控えてるだけで、常駐してる人は多いぞここ

265 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 21:39:42 ID:ol4KMu09]
>>261
さっさとうpするんだな
痛い目にあいたくはないだろう



266 名前:名前は開発中のものです。 [2009/03/15(日) 22:01:17 ID:JjWHmm0Y]
こんなに反応あるとわwww
なんか、ありがとう
今から自作物整理して、あとで上げます

参考までに、あったらいいなっていうプラグインを教えてくれませんか?
1物語に1回使うかなってくらいのすごく限定的なものでも良いんで

267 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 23:20:18 ID:0PT1WS+f]
>Fateに使われてるようなエフェクトは全部作った
花札のアルゴリズムがあるなら見てみたい。

>MIDIを内部で変換してWAVで流す
どういう遣り方か見当もつかない。興味あります。


268 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 23:32:47 ID:qrntCZtW]
公開とするとADVゲーム市場が崩壊するシナリオジェネレータとかどうかなw

269 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 23:42:12 ID:g2asMGJI]
>>266
前に一度話題になったみたいだが、うみねこに搭載されてる
キャラクターが泡(ドット)で出現or消えるができるエフェクト。
泡(ドット)じゃなくてもっと色々なエフェクトでキャラクターの出現ができる
プラグインがあると需要あると思う。
というか自分が欲しいw

270 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 00:01:42 ID:EpWdkxA1]
>>266
シナリオの文字がフェードで表示されるのがあったらいいな
よくゲームのOPの演出で使われるようないっぺんに浮き出てくるんじゃなくて
文字の表示が左から右に出てくるというか

271 名前:名前は開発中のものです。 [2009/03/16(月) 00:11:53 ID:AIAyb+lA]
>>268
あほ?

>>269
既にある

>>270
画像でファイルを保持し、トランス
これじゃ駄目な理由は?
少し囓ったことあるなら、FONTをRECTすれば文字にできるだろ?

>>266
ガラスが割れるみたいなエフェクトあると嬉しい

272 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 00:34:53 ID:mxKYyZV/]
>>270
サークル煌明さんのところにあるやつかな?

273 名前:270 mailto:sage [2009/03/16(月) 00:56:29 ID:EpWdkxA1]
>>271
一部の演出じゃないのでそれだと色々困る
というか説明が分かりにくかったね、ごめん

>>272
そうそうこういうの!
すでにあったんだね。教えてくれてありがとう

274 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 16:26:49 ID:zKNYimra]
正規表現を使って、文字列のstr中の半角数字の桁揃え、乃至は
数字の先頭にある連続する 0 を削除するにはどうするのですか?

file00199 ⇒ file199

みたいなのです。
+009 みたいのだと8進数になってしまってこまっているのです。
tjsで汎用性の低いのを作れないでもないのですが・・・


275 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 17:24:34 ID:uugonJS8]
桁揃えされた文字列がほしい時は sprintf を使う

"file%05d".sprintf(199) → "file00199"

文字列の頭の0消去なら正規表現でさっくり

/^0*/.replace("00199","") → "199"

データは数値でもつのを基本にして、文字列が必要なときだけ sprintf で生成するほうがなにかと便利




276 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 19:13:04 ID: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('devdoc.kikyou.info/')"]
devdoc.kikyou.info/[endlink] [font size=14 *color=0xFFFFFF shadow="false" edge="false"][r]
[s]

277 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 19:21:39 ID:4wcH/Upa]
すみません、指定していたCGが原因だったみたいです。

278 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 23:18:52 ID:zKNYimra]
>>275
迅速にして完璧の回答、ありがとうございます。
自分で理解するのに時間かかりましたが何とかできました。
var arr = file.split( /[^0-9]/ ); arr.remove('',true);
で文字列中の数字の配列を獲得して、置き換えるやり方でなんとかなりました。
file_123_4_4みたいな値の重複とかの問題は…tjsでなんとかします;


279 名前:名前は開発中のものです。 mailto:sage [2009/03/18(水) 20:13:20 ID:ZDYXfAUv]
質問させてください。
KAGにて、キーボードのEnterキーを無効にしたいと思い、
MainWindowクラスのcheckProceedingKeyを弄ってみました。
すると、通常時は確かに無効になりました。
しかし、クリッカブルマップを有効にすると、Enterキーが使えてしまいます。
これを無効にするには、どこを書き換えてやればよいのでしょうか?
ご指摘お願いいたします。

280 名前:名前は開発中のものです。 mailto:sage [2009/03/19(木) 04:18:40 ID:IGRmS1ea]
>>279
それは、Window.useMouseKey 機能によるもの。
その状態では、カーソルキーがマウスカーソル、エンターキーはマウスの
左クリックに対応した状態になって、キー入力イベントは全くこなくなる。

MainWindow.tjs 中の function enableMouseKey() の中の
useMouseKey = true; の部分をつぶすと効かなくなるが、
そのかわりクリッカブルマップをカーソルで選択できなくなる。


281 名前:名前は開発中のものです。 mailto:sage [2009/03/19(木) 06:54:26 ID:bW6OyTuQ]
>>280
ありがとうございます。たすかりました。

282 名前:名前は開発中のものです。 mailto:sage [2009/03/19(木) 23:59:53 ID:aUtQqcXK]
質問させてください

mpegで作った動画を吉里吉里で再生したはよいのですが
なぜかコンソールには
ムービーを Mixer モードで開くことができません
: Failed to call ConnectFilters( pMPEGVideoCodec, pRdr ). : [0x80004005] エラーを特定できません
と出てオーバーレイでの再生になってしまいます。

スクリプトの方でレイヤー指定すると、画面は真っ暗で音声しか流れない状況になってしまい
オーバーレイでの再生しか受け付けません。

オーバーレイの再生で見ると、かなり画像が劣化しているのですが
・レイヤーモードだと動画そのままの画質で見れるのか
・エラーの理由はマシンスペックによるものなのか
どなたかお答えいただけますと幸いです。

283 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:47:21 ID:N+uqd+oI]
evalで代入される方の関数にエンティティを使いたいのですが出来ません。
例えば
[eval exp="tf.test_number = 0"]
[eval exp="&'tf.test_' + tf.test_number = 'テスト'"]
[emb exp="tf.test_0"]
といった感じのことがしたいのですがエラーになってしまいます。
どのようにすればいいでしょうか?

284 名前:名前は開発中のものです。 [2009/03/20(金) 01:51:31 ID:HbT54b6M]
>>274
>>275
あたりみるといいよ
TJS使うけど大丈夫だよね?

285 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:57:25 ID:KGRS2CW/]
>>282
あんさんの環境が腐ってる可能性大。
まずはドライバと DirectX を最新に。
あと他の環境でも試すこと




286 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:58:50 ID:KGRS2CW/]
>>283
[eval exp="tf['test_' + tf.test_number] = 'テスト'"]


287 名前:283 mailto:sage [2009/03/20(金) 02:40:20 ID:N+uqd+oI]
>>286
出来ました。お早い回答ありがとうございました。

288 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 04:23:38 ID:i5kAzZXi]
例えば800*600のサイズのpng画像が120枚あるとして、
それを1から順番に読み込み表示する(アニメーションさせる)コストってどんなもんでしょうか?
事前に全画像を読み込んでおくとメモリ消費が凄そうですし、
レイヤを5枚くらい用意して、順番に表示非表示を繰り返しながら裏で次の画像を読み込んでいくと
ちょっとカクつきそうですし・・・

289 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 05:28:11 ID:5D/COt3n]
なあ婆さんや、プラグインを公開するとかなんとか言っていた御仁はどこに行ったんじゃ?

290 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 06:41:24 ID:V4blPppD]
桃と一緒にどんぶらこっこと流れ去って行ったのかもなぁ。
俺も中身がどんなのかちょっとだけ楽しみにしていたので残念ですわ。

291 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 08:21:20 ID:fogy9krD]
>>288
800x600のpng画像120枚を表示するコストがどんなもんかといわれても、
メモリ上で圧縮した状態で持つのか展開した状態で持つのかとか、コストに大きな
影響を与える他の要素も多いしなんとも。

一般的な話をするなら、800*600 24bit を120枚メモリに展開すると約165MBなので、
現代のPC事情ならどって事ないきもするけれど、読み込むのに結構な時間がかかるよ。
利用詳細が分からないので何とも言えないけれど、120枚をmpg等の動画に
して取り扱うのが普通の対応じゃないかな。

292 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 10:59:51 ID:a1PmJ7Q8]
>>285
レスありがとうございます
ぐぐったら吉里吉里wikiに詳細が出てました。
ドライバとDirectXは最新なのですが
マシンスペック(というかグラボ?)によるものみたいですね。
完成したらノートでも確認してみようと思います。

293 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 11:30:01 ID:i5kAzZXi]
>>291
ありがとうございます。
αチャンネルの情報を持ったムービーでデータが持てれば早いとは思うのですが、
αチャンネルの情報を持てる動画形式って何かあるでしょうか?
検索で調べても殆ど出てこず、そもそもそれで書き出せるツールもほぼ無いようで・・・

294 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 11:31:28 ID:i5kAzZXi]
あ、利用用途は画面上での爆発とかのエフェクト表示です。
想定画面サイズが800*600なので、最大サイズを例に質問しました。

295 名前:名前は開発中のものです。 [2009/03/20(金) 13:17:46 ID:Pc0JW1eL]
ムービーのセグメントループ設定をシナリオ進行とは別口で制御できないかな?
具体的には、立ち絵動画の複数シーンをランダムで再生させたいんだけど・・・
直視、まばたき、視線ずらし・戻し、あくび、etc・・・ 見たいなシークエンスをランダムに。

asdファイルよろしく、独立制御出来ないかなぁ。。。



296 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 15:47:25 ID:PeoRsPZZ]
>>295
それこそアニメにすればいいのに

297 名前:名前は開発中のものです。 [2009/03/20(金) 17:18:23 ID:Pc0JW1eL]
や、まぁそうなんだけどねw
ただ、ドラクエ8の仲間コマンドのときみたく出来たらなあ…って思って。。

298 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 17:27:48 ID:N+uqd+oI]
指定したメッセージレイヤーに現在表示されている文字列を取得することはできますか?

299 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 17:58:56 ID:O79CV9V+]
>>298
できません。

300 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 20:36:58 ID:ZLwpp1Tk]
>>297
試した事がないから出来るかどうか知らないけど
asdファイル内でevalタグ使って動かしてみたら?

301 名前:298 mailto:sage [2009/03/20(金) 23:05:30 ID:N+uqd+oI]
>>299
そうですか…ありがとうございました。

302 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 23:46:37 ID: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 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 00:26:58 ID:6m29JYLY]
>>302
現状だと、えーと、たしか Theora がαをもった形式に対応してた気がするのでそれを使うとか。

定番の手抜き実装は、元画像を、左半分にRGB、右半分にαをグレー化したものと配置した、
横2倍サイズの動画を作って、1フレーム展開するごとに右半分の1プレーンだけ左半分のα領域に
コピーする方法。すごい無駄に見えるけど、α領域はかなり圧縮されるからたいして問題にならない。
動画の再生機構として既存のものが使えるのでフレーム落ちの処理とか音声同期とか考えなくてすんで楽。

吉里吉里の VideoOverlay クラスを活用するなら、レイヤの右半分のBを左半分のAにコピー
するような処理だけプラグインでつくって、レイヤモードで再生しつつ、onFrameUpdate でそれを呼び出す、
とかすれば最低限の手間で作れると思われ。

304 名前:名前は開発中のものです。 [2009/03/21(土) 01:29:18 ID:+F+a4UYI]
nukIM@S-2とか。
でも、>>303の方法がコーデックに依存しないくていいね。


305 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 03:25:18 ID:ddcsL8oV]
[if exp="askYesNo('OKですか?')"]
OK
[else]
NO
[endif]
で「はい」にしても「いいえ」にしてもNOになってしまいます。
どういうことでしょうか?どうすれば直るでしょうか?
お願いします。



306 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 03:35:52 ID:5IsgF8Fw]
>>305
うちの環境にコピペして試したら選択に対応する形でYES/NO表示した。
そこ以外の問題。

307 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 03:59:39 ID:6m29JYLY]
>>302
ちょちょいと作ってみた。暇ならその 120枚素材で動画つくってためしてみておくれ。
ttp://ruriko.denpa.org/layerExBTOA20090321.zip

昔、directshow 呼び出して作ってみた layerExMovie ってのもあるんだけど、
素直に VideoOverlay 使ったほうがはるかに楽だねw WMVも使えるし。

308 名前:名前は開発中のものです。 [2009/03/21(土) 04:43:25 ID:+F+a4UYI]
>>307
神!
横からもらっていきますね。
これでゴリゴリTJS書かなくても逃げ切れる……

309 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 11:17:03 ID:W6lPwOk7]
>>307
これすごいな。あなたが神か

310 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 11:22:24 ID:vZG3WwT3]
>>303
配置は縦の方が良くないかな?
アルゴリズム的にも。

311 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 13:41:52 ID: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 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 13:57:57 ID:6m29JYLY]
>>311
そんな書き方したら関数ぬけるときに E_layer も E_movie も廃棄処理が
走るから、無理矢理動こうとして大変なことに…・
クラスのメンバー変数とかにもつようにしましょう

>>310
コピー処理がキャッシュの範囲に入りやすいかなーと思って
横にしたんだけど、動画的には縦のがいいのかしら?

313 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 14:46:50 ID:8Wmc9Lpn]
>>312
あーーなるほど、クラスとか関数について知識が足りませんでした。
クラスを作って入れてやればちゃんと動きました

314 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 17:43:54 ID:vZG3WwT3]
>>312
キャッシュの問題は2個のポインタで追いかけるわけだから、そんなに違わない気がするけど
エンコード/デコードアルゴリズムの関係で、右に繋がってると接続部分が画像によっては
ちゃんとデコードされなくなったりしないかな。
縦ならいざとなったら、8の倍数とかに詰めちゃうのも簡単だし、横より融通が利きやすい気がする。
例えば、メニーコアに対応させるのが簡単になりそうだろ?

315 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 21:52:08 ID:ruvdw8Cr]
今前面に出ている背景レイヤが、kag.fore.baseかkag.back.baseか調べる方法はありませんか?



316 名前:名前は開発中のものです。 [2009/03/21(土) 23:32:20 ID:uWbJzMH9]
>>315
面白いこと聞くね
前面に出てるLayerは常にkag.foreだよ
トランジションなんかで、交換した場合も交換し終わった後に
fore <-> back;
で、交換されてるから
今、目に見えてるのは常にfore

317 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 00:05:08 ID:DdURj3AQ]
KAGのcheckboxへのチェックは、commitタグで確定されますが
checkboxから移動できる先が多いと、うっかりミスでcommitし忘れたりします。
checkboxにチェックを入れたり外したりしたら、その瞬間に入力を確定させるいい方法はありませんか?

318 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 00:26:46 ID:DdcqioyR]
>>315

var mylayer = kag.fore.base;

//何度かトランジションする
//さて、今mylayerに入っているのはどっちだろう?

みたいなことを知る手段を聞きたいんだと見た

319 名前:名前は開発中のものです。 [2009/03/22(日) 00:33:56 ID:tFuXruna]
>>318
さっきも言ったとおり
トランジションしても、最終的に中身交換されるから
変わらないでしょ?

自分で変えない限り
maylayer は kag.fore.base のまま

320 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 00:39:29 ID:kcPNhm7V]
fore.baseでnew Layerしたオブジェクトがあって、何回かトランジションした
このオブジェクトで画像を表示したい、でもfore.baseが後ろに回ってると画像も裏に回って表示されない
その場だけで使い捨てしたいので、一々classを作ってonExchangeForeBackするのも大変、さあどうしよう
こんな感じ

321 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 00:43:36 ID:O+SW/UjB]
>>320

layer.parent = fore.base;

で適当に表示されてるほうにつなぎなおしたんじゃだめなの?

322 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 00:54:00 ID:a32vmTXO]
>>320
それ、どこで破棄してるんだ?

>>317
kagのcheckboxタグはexp属性がない。
そもそもLinkCheckBoxLayerは親レイヤのonButtonClickとかを呼ばない。
下手に書き換えても今度はcommitでエラーを出すと思う。

プラグイン作るかtjsでやるしかないな。

323 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 01:00:44 ID:6cDML2ds]
>>319
>maylayer は kag.fore.base のまま
間違い。トランジションするたびにmaylayerはfore、baseの値になる。
正確には、maylayer

324 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 01:02:47 ID:6cDML2ds]
途中で送ってしまった。
maylayerの値はそのままだが、kag.fore.baseとkag.back.baseの中身(アドレス)が入れ替わる。
それを正しくなるように調整するための KAGPlugin#onExchangeForeBack

325 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 01:07:59 ID:DdURj3AQ]
>>322
ありがとうございます
エラー回避の手間に見合う程の改造の効果も無さそうなので
地道にcommitします



326 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 01:17:30 ID:kcPNhm7V]
>>321
なるほど、parentというのがあったのか
layer.parent = kag.fore.base;
kag.update;
で出来た、どうもありがとう

327 名前:名前は開発中のものです。 [2009/03/23(月) 20:33:45 ID:KrLh9tix]
TJSに構造体って無いの?orz






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef