トップページgamedev
1001コメント363KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/05/22(土) 15:41:56ID:tZCB+yDd
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。

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

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

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

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

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

前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その20
http://pc11.2ch.net/test/read.cgi/gamedev/1264933876/
0283名前は開発中のものです。2010/07/01(木) 16:04:30ID:wJPs8lve
グダグダ言ってねぇで
クソしてしね
0284名前は開発中のものです。2010/07/01(木) 21:26:56ID:RUJut2XG
他に同様の報告無い時点で
自分のPCが異常なだけなことに気づけよ
0285名前は開発中のものです。2010/07/01(木) 21:36:32ID:Vu3eQk1a
吉里吉里勉強会。
作品発表とあるがKAGに何か機能を実装してそのコードリーディングとかなら面白そうだが、
実際は淡々とゲームの中身を説明されるんだろうな・・・。
0286名前は開発中のものです。2010/07/01(木) 21:50:11ID:UrKJkH0x
本体実装/プラグイン実装の話題でエキスパート勉強会なんてやらないだろうか。
0287名前は開発中のものです。2010/07/01(木) 21:59:15ID:a068Pm81
人が集まらないだろうしそんなレベルの人なら勉強会なんて必要ない
0288名前は開発中のものです。2010/07/01(木) 22:12:20ID:Vu3eQk1a
>>284
D言語でプラグイン実装解説とか面白そう
0289名前は開発中のものです。2010/07/01(木) 22:22:16ID:UrKJkH0x
D言語でプラグインか。たしかバイナリ互換性はあったからD向けのtp_stubがあれば書けるのかな。
htodとか使えば変換できるのか?
0290名前は開発中のものです。2010/07/01(木) 22:47:36ID:C1MrWpT9
こういう規模のものの勉強会って顔合わせしてチャットする程度のもんなんじゃないの?
0291名前は開発中のものです。2010/07/01(木) 23:22:11ID:2x9MrNNY
むしろメインはそのあとの宴会
0292名前は開発中のものです。2010/07/01(木) 23:45:06ID:Qaf7rZnA
質問です。
画像からムービー再生へのトランジションを行いたいのですが、
トランジションが黒の画像で終了し、それから動画が再生されてしまい
うまくいきません。
また逆の場合はうまくいきました(画像をback、動画をforeの場合)
何かヒント等お願いいたします。

[image layer=1 page=fore storage="EV01_01" visible=true]
[video visible=true mode="layer"]
[video loop=true]
[videolayer layer=1 page=back channel=1]
[layopt layer=1 page=back visible=true]
[openvideo storage="EV01-01.mpg"]
[preparevideo]
[wp for="prepare"]
[playvideo]
[trans layer=1 time=1600 method=crossfade]
0293名前は開発中のものです。2010/07/02(金) 01:21:40ID:mAIsEAI3
吉里吉里を実行したら、224.0.0.252にアクセスしようとしてFWに検知されたんだけど
これは何をしようとしているの?
0294名前は開発中のものです。2010/07/02(金) 03:02:07ID:qrBhCZjE
関係ない話だが、俺も永年使ってるとあるプレイヤーで
特定のファイルだけ再生がカクカクになってって最後は停止・・・というのになってる。
新しいDivXを入れた辺りからそうなったみたいだ。
0295名前は開発中のものです。2010/07/02(金) 03:09:53ID:GnhoDBHQ
>>293
たしか DirectDraw でフルスクリーンにするときのバージョンチェック処理で DirectX コンポーネントが勝手に外部通信しようとする

なお、224.0.0.252 の通信自体は、Vista 以降に搭載されているLAN用の自動アドレス割り当て処理が使う通信で、
これをひっかけるFWソフトはなにかおかしい
0296名前は開発中のものです。2010/07/02(金) 03:13:09ID:GnhoDBHQ
>>279
再生モードはなに使ってる?
デバイスドライバの更新とかでオーバレイが腐った可能性があると思われる。
ミキサー(VMR) やレイヤ再生してみて差をみるべし

それでも異常なようなら短いサンプルでいいからup
他人の環境でチェックしてもらうのが良いと思われ
0297名前は開発中のものです。2010/07/02(金) 03:15:46ID:QAmrYELt
224.0.0.252つうとvist以降か。
吉里吉里はドライバのバージョンを確認しに行くんだっけ?
0298名前は開発中のものです。2010/07/02(金) 03:18:12ID:QAmrYELt
被ったか、おまえら夜中なのに考えることは一緒なんだな・・・。
たしかに224.0.0.252を検出するFWは設定がきつすぎる。
0299名前は開発中のものです。2010/07/02(金) 15:43:20ID:b5T/g5L2
>>292
どうもトランジション処理とレイヤ動画処理との間で不整合生じてるぽい。バグだけどわりと根が深そう。

[trans time=1600 method=crossfade]

として全体トランジションにしておけば、動画描画先になる子レイヤ自体は内部レベルでの差し替えは発生しないので正しく表示される模様

どうしてもレイヤ単位にトランジションしたければ、ダミーのレイヤを一つつくって、動画の描画先レイヤはそれにして、
VideoOverlay.onFrameUpdate で対象レイヤに assign するような構造にすればたぶんなんとかなると思われる
0300名前は開発中のものです。2010/07/02(金) 23:31:52ID:j75c+nEe
まぁ、いくらFW突破しても
すぐ対策されるわけで・・・
0301名前は開発中のものです。2010/07/03(土) 02:45:33ID:kxpqTxJq
>>292

>>299 はちょっと間違いだった

レイヤトランジション中に裏動画の絵がまったく出ないのは、
クロスフェードトランジションがソース画像のα値を参照してしまうことによるもののようだ。
これはおそらく描画先画像の type 基準で動作しているためで、両方同じでないといけないものなので明確な「仕様」ってことになる

対策としては、ムービーの画像描画後に該当レイヤのαを 0xff でうめるようにするか、
 
 [image layer=1 page=fore storage="画像" visible=true mode=opaque]

と、元画像をロードするときに opaque 指定にしておけばよい

なお >>299 の「不整合」自体は直接原因ではないが別のバグだった。

動画再生したままで2回トランジションを行うと、本来なら元レイヤの画像が表示されるべきだが、
この画像が、内部的にずっと動画で上書きして破壊される状態になってしまっている。
レイヤを手動で update() するとどんどん内容が更新されてしまっているのがわかる。

単発レイヤトランジションでも全体トランジションでもどちらでもおこる現象で、
おそらく動画再生処理側の更新バッファ処理のさしかわり判定のがおかしいのだろうと推定される。
描画先が狂ってるだけでメモリ破壊自体はしてないようなので、とりあえず更新時は常に新しい
描画内容を指定するようにしておけば致命的なことにはならないとは思われる
0302名前は開発中のものです。2010/07/03(土) 13:23:29ID:cmVod1gA
>>300
そんな話誰もしてねーよ。
LAN内の名前解決を行うプロトコルが使うマルチキャストアドレスが
見張られててこのアドレス使ったらFWが過剰反応したって言ってんだろ。
0303名前は開発中のものです。2010/07/04(日) 10:30:38ID:Bl0MmFqw
レイヤの指定に変数を使いたいのですが、エンティティ使うと
「(Void)からobjectへ型を変換できません。」というエラーが出ます。

[eval exp="tf.hoge=3"]
[emb exp="tf.hoge"]ほげげ
[image storage="フレーム.png" layer="&tf.hoge" page=fore visible=true top=0 left=0 opacity=255]

なにがマズイのでしょうか?

embタグでは、ちゃんと3が表示されます。
数値が必要なところに文字が渡ってるのかなとも思ったんだけど
storage属性のファイル名に変数使っても、同様に落ちるんです。
0304名前は開発中のものです。2010/07/04(日) 10:34:50ID:pWMdUQfa
>>303
エンティティ使わずに直接 layer="3" でやってみる
それでエラーでるならエンティティ以外のところがまずいのでリファレンスとかもっかい読んでみ
laycount のあたりとか
0305名前は開発中のものです。2010/07/04(日) 12:19:41ID:Bl0MmFqw
>>304
layer="3" と直接指定すると動きます。
なので、他の属性とかがまずいわけではないと思うのですが…
エンティティをdisableとかenableとかするフラグがあったりしないですよね??
なんでだろう…
0306名前は開発中のものです。2010/07/04(日) 13:46:01ID:NPNr6aGl
検証してる暇がないので適当だけど
[eval exp="tf.hoge='3'"]とやってもだめ?
0307名前は開発中のものです。2010/07/04(日) 19:34:09ID:Bl0MmFqw
>>306
ありがとうございます、シングルクォートつけたらエンティティでも動きました!

でもそのあとクォートはずしてみても、ちゃんと動きました。なんだったんだ…
なにか見落としてたのかもしれませんが、とりあえず動きました。
0308名前は開発中のものです。2010/07/05(月) 02:46:33ID:Wwbywlow
KAGがレイヤ指定を解決する際に文字列であることを前提に組まれているから。
KAGWindow.getLayerFromElm(elm)とかだったかな。

KAG標準としては「必要以上にTJSは使わないで」ってことなのかな。
TJS使うならコンソール(特に逆アセ結果)とのにらめっこが必要ってことだと自分は思っている。
0309名前は開発中のものです。2010/07/05(月) 02:49:34ID:s+61392X
いや、ふつうに数値で通るよ>レイヤ指定
どちらでも大丈夫なようなコードになってる。

単に >>303 がレイヤ数増やしたあと再起動してなかったとかそんなオチだろう。
レイヤ数オーバー時の典型的なエラーだし
0310名前は開発中のものです。2010/07/05(月) 03:40:13ID:Wwbywlow
そういえば「(Void)から〜」か。自分の意見では「(int)3 から〜」になるはずだものな…。
しかも>>307の後半を見落としていた スマソ

ところで数値で指定できたっけ?
コンソール使ってkag.getLayerFromElm(%["layer", 0, "page", "fore"])を実行すると
レイヤがあるにもかかわらずエラーになるんだが(int0からObjectに変換できない)。
シナリオに記述してコンダクタ通すと違うのか?
0311名前は開発中のものです。2010/07/05(月) 10:44:44ID:dVcS22zz
KAGのタグの処理の過程上、数値でもなんでも文字列で渡るので、処理する側は文字列前提のものが
多いけど、たいていは単純に整数化されるから、整数を与えても問題ないものばかり
可能ならば文字列で渡したほうが無難

レイヤ数オーバーで (void) から Object へ〜ってやつは、2枚しかレイヤがないときに
kag.fore.layers[3] としたら void が返って、それにたいして void.loadImages とか
しようとしてるから、そういったエラーが返ってくる

>>310 のは、確かに KAGWindow.getLayerFromElm は文字列要求だから
メッセージレイヤかどうか調べるため1文字目が "m" かしらべるときに layer[0] としてて、
そこで 0[0] となって、 (int)0 から Object へ〜ってエラーがでちゃってる
0312名前は開発中のものです。2010/07/06(火) 10:05:21ID:Exhl2hqU
もうasキーワード導入して型明示できるようにしてくれ
03133062010/07/06(火) 19:27:07ID:EJEk8oid
以前マクロ内でmp.layerを弄っていたときに引っ掛ったことがあったので
もしやと早とちりしたm(_カメ_)m
>>307 ありがちなのは、栞にレイヤ数が保存されるのを失念しているケース。

@macro name=image2
[eval exp="mp.layer='0'"][image layer=%layer…]←OK
[eval exp="mp.layer=0"][image layer=%layer…]←これは(int) 0から Object へ〜ってエラー。
[eval exp="mp.layer=0"][image layer=&mp.layer…]←OK
@endmacro
0314名前は開発中のものです。2010/07/07(水) 00:56:52ID:pje+ipEr
質問させてください。
コンフィグ画面で、フォントを左右ボタンで一つづつ変更させたいのですが、
←現在のフォント名→ のような形で。
このように、「次のフォント」もしくは「一つ前のフォント」を指定するには、どうしたらよいのでしょうか。
0315名前は開発中のものです。2010/07/07(水) 01:05:51ID:oyqeFVJb
単純に「使用可能なフォントの配列」を用意してやってそれを参照すりゃいいんじゃないのかい。
オレが前に書いたコードだとこんな感じだったけど。(KAGではなくTJSとして実行)

// フォントリスト作成
var fonts = font.getList(fsfNoVertical);
var use_fonts = [];
/* use_fontsに日本語文字の含まれるフォントを登録する
細かく調べるのが面倒なのでとりあえず『フォント名に日本語が含まれている』奴を */
for(var i=0; i<fonts.count; i++){ if( /[^a-zA-Z 0-9!-@&\[-`{-~]+/.test(fonts[i]) ) use_fonts.add(fonts[i]); }
var currentFont = use_fonts.find(sf.fontFace) | 0; // 現在選択済になっているフォントをその中から探す。ここで見つかるのはフォント名ではなく、use_fonts配列の中の「何番目にあるフォントが指定されているか」という情報
// 現在選択済フォント名(例: MS明朝とか)はsf.fontFaceに記憶させる

あとは「次のフォント」もしくは「前のフォント」ボタンを押した時に、上記のuse_fontsを参照して

if(currentFont < 0) currentFont = use_fonts.count-1;
if(currentFont > (use_fonts.count-1)) currentFont = 0;
sf.fontFace = use_fonts[currentFont];
for(var i=0; i<kag.fore.messages.count; i++){
    kag.fore.messages[i].comp.setDefaultFont(%[face:sf.fontFace]);
    kag.fore.messages[i].comp.decideSizeChange();
    kag.back.messages[i].comp.setDefaultFont(%[face:sf.fontFace]);
    kag.back.messages[i].comp.decideSizeChange();
}
みたいな具合に「選択されたフォントをすべてのメッセージレイヤに適用する」処理を書いてやればよろしいんじゃないかしら。
ちゃんと動くかどうかは知らないけど
03163142010/07/07(水) 01:44:19ID:pje+ipEr
>>315
うわぁ、リファレンス見てませんでした。ほんとすいません。
ありがたく参考にさせていただきます・・・。
0317名前は開発中のものです。2010/07/07(水) 01:55:20ID:xGd78xCf
KAGの仕様にあわせるなら、フラグは fsfSameCharSet | fsfNoVertical | fsfTrueTypeOnly | fsfUseFontFace にするのが妥当だぞっと
固定ピッチなら fsfFixedPitch も追加。詳細は MainWindow.tjs の selectFont 参照

fsfSameCharSet の指定があれば、たとえばデフォルトがMS明朝/ゴシックとかなら、それ以降選ばれるのも日本語フォントだけに
なるから絞り込みとか別にいらない
03183142010/07/07(水) 10:39:37ID:pje+ipEr
>>315
>>317
おかげさまでうまくいきました。本当に有難うございます。
0319名前は開発中のものです。2010/07/08(木) 11:20:36ID:YgOo1VSe
お前らレイヤってどうしてる?
俺はいちいち名前をつけて &sf.前 な感じでやってるんだが、
もっとスマートな方法はないかね
0320名前は開発中のものです。2010/07/08(木) 15:04:23ID:Q5zdrGxs
「&sf.前」として何をしたいんだ?
目的語がねーよ。
0321名前は開発中のものです。2010/07/08(木) 16:33:16ID:V+Su1Z5G
>>319
エスパーしてみる。
前景レイヤの番号を管理するのに、用途によって番号を固定したいと。
キャラより前なら、sf.キャラ前 とか、そういうふうに名前をつけて管理してるけど、
もっとスマートな方法はないかとこういうことですかね?

マクロに組んじゃえばレイヤ番号意識することなんてほとんどないし、
そのやりかたでいいんじゃない?
空いてるレイヤ番号探して自動で使うとかもできるだろうけど、indexあたりが面倒くさそうだし。
0322名前は開発中のものです。2010/07/09(金) 10:07:19ID:HICD+Kx0
>空いてるレイヤ番号探して自動で使う

その機能を次のバージョンで是非
0323名前は開発中のものです。2010/07/09(金) 16:57:12ID:+BMJeF2v
>>322
KAGEX
0324名前は開発中のものです。2010/07/09(金) 17:16:54ID:1T+f5Mju
どんだけバカなんだよ
0325名無しさん@そうだ選挙に行こう2010/07/10(土) 09:03:48ID:KIjV6uW0
KAGEXって何か問題があって使えなかったんだよなぁ
0326名無しさん@そうだ選挙に行こう2010/07/10(土) 09:07:15ID:ISEdd959
昔使ったKAGEXは訳分からないバグがあって使うのやめた
0327名無しさん@そうだ選挙に行こう2010/07/10(土) 17:35:15ID:y5Qxbddb
なんでエラーになるか追える人でないと(KAGEXを使うのは)難しい
0328名無しさん@そうだ選挙に行こう2010/07/10(土) 22:05:58ID:rIc001M0
追えるけどドキュメントがまともにないから何が正しいかわからん。
修正しようがない。そんなもんは使いもんにならんぜ。
0329名無しさん@そうだ選挙に行こう2010/07/11(日) 00:29:36ID:KaFz96aD
ぶっちゃけドキュメント未整備でシステム周りの挙動が不審、エラーのデバッグも含めて自己責任なんていうKAGEX使うくらいなら
自分でTJS使ってシステム整備した方が最終的に楽。自分で書いたスクリプトならエラー吐いても修正箇所の目処付けやすいしな
0330名無しさん@そうだ選挙に行こう2010/07/11(日) 02:31:05ID:XKuInvYV
まともなデバッガすらない吉里吉里でドキュメントのないKAGEXデバッグしろとか鬼畜過ぎるしな。
なんの得にもならん。
0331名無しさん@そうだ選挙に行こう2010/07/11(日) 14:51:04ID:8DP8qpvm
いいじゃん。 タダなんだから。

オレは使ってるよ?
初心者だったけど、バグ直してるウチに、少しはTJSとかKAGの仕組みが判ったよ。
0332名無しさん@そうだ選挙に行こう2010/07/11(日) 19:56:48ID:AOVnnOHt
時間が浪費されまくるけどな
0333名前は開発中のものです。2010/07/12(月) 14:27:23ID:GKML8p1H
仕組みがわかったよとかいってる辺りもう全然初心者じゃない。レスから漂う実力。
0334名前は開発中のものです。2010/07/12(月) 15:25:20ID:nQnCjFqX
我々が求めるのは仕組みの理解ではなく生産性なんですよね
0335名前は開発中のものです。2010/07/12(月) 15:49:28ID:qPVxp5B4
生産性が必要なら金だして発注するのが一番だな。たぶん。
0336名前は開発中のものです。2010/07/12(月) 16:45:45ID:Twv0jeau
ところでレキシカルクロージャマダー!?
0337名前は開発中のものです。2010/07/12(月) 17:15:01ID:U87s1/CA
レキシカルクロージャ入れるならクラスは撤廃してほしいなあ
クラスはRubyの真似してるんだろうけど中途半端
0338名前は開発中のものです。2010/07/12(月) 17:20:08ID:GKML8p1H
ごめん素人なんでさっぱりわかんないんだけど、
そのクロージャをいれるとクラスをなくせるの?
0339名前は開発中のものです。2010/07/12(月) 18:35:12ID:Twv0jeau
>>337がおかしいだけだから気にするな
0340名前は開発中のものです。2010/07/12(月) 18:42:11ID:1x+SuQyA
レキシカルクロージャは欲しいが、
class無くすってのは全部functionに変数を束縛するってこと?
ClassInstanceInfoで処理ディスパッチしたりできなくなるとかマジ勘弁。
0341名前は開発中のものです。2010/07/13(火) 13:04:05ID:yexPRalg
コンフィグ画面を作りましたが、上のメニューからも設定を変更できるようにしたいです。
コンフィグ画面からの変更は、上のメニューに反映されてチェックが付くのですが
メニューからの変更をコンフィグ画面に反映させるにはどうすればいいでしょうか。
kagの変数の変更監視ループみたいなものを仕込もうと思いましたが、
クリッカブルマップを使っていて[s]で停止しているのでそれができず、困っています。
こういう場合同期ってどうやって取るもんなんでしょうか?
0342名前は開発中のものです。2010/07/13(火) 13:44:03ID:ajs1cP9o
>>341
メニュー部は kag.onなんたらMenuItemClick を呼び出すような構造になってるので、
それらの必要な部分を全部フックして必要な処理を書く
0343名前は開発中のものです。2010/07/13(火) 13:58:12ID:GmsJN3A5
俺だったらメニュー消しちゃうなぁ 無粋だし
0344名前は開発中のものです。2010/07/13(火) 18:16:59ID:HCj+8wgM
俺は自前のGUIにのっけてるのでメニューも自前だ。
全部TJSなんで気にならん程度に重いが。

まあ、メニューからの変更だろうがコンフィグからだろうが
オブザーバーパターンで総括的に処理するのがすっきりするだろうな。
0345名前は開発中のものです。2010/07/13(火) 21:38:18ID:34K67KN6
コンフィグ画面での処理を「メニューの○○が押されたもの」と一致させりゃ楽でいいんじゃない?
コンフィグで「文字速度=最速(あるいはそれに似たような立場のボタン)が押された」時はメニューの
「一度読んだところは→ノーウェイト」が押されたとみなして処理をする……みたいなの
0346名前は開発中のものです。2010/07/13(火) 22:05:39ID:01lq/ZgM
せっかくクロージャもどきがあるんだからオブザーバーなんて回りくどいことしないで
インスタンスメソッドをそのまま渡せばいいのに
実質全く同じだよ
0347名前は開発中のものです。2010/07/14(水) 03:19:43ID:esF+6Afs
ファーストクラスなだけでクロージャとか言われても。

その場凌ぎのデリゲートが大量発生してるC#コードや動的に関数定義しまくって
わけわかめなjsコードみたいにならなければそれでいいと思うよ。

まあ、コードの見え方が違ってくる以上実質同じなんて言えんが。
0348名前は開発中のものです。2010/07/14(水) 08:08:38ID:9otRy6Gy
ゲームにメニューバーってなんだかなあ
0349名前は開発中のものです。2010/07/14(水) 13:28:57ID:RtMMVffX
オブザーバーだってその場凌ぎの無意味なクラス大量発生でしょ
吉里吉里でいうクロージャ(メソッドがインスタンスを引きずる)は
たぶんオブザーバーというかイベントの簡略化のためにあるんだろうし
0350名前は開発中のものです。2010/07/14(水) 17:16:25ID:y70Gf1u3
そもそもオブザーバーとかクロージャを一々意識してプログラミングする奴なんて吉里吉里使いにゃほとんど居ない気もするが……。
そこまでコーディングについて意識せず「めんどくせえしよく判らんから変数はすべてsfかfかtfの中で処理するお^q^」って奴でも動かせちゃうのがKAGだし
0351名前は開発中のものです。2010/07/14(水) 17:31:53ID:VQa33D9U
そんな人にはTJSは使えないけどな
わざわざスクリプト言語上でイベントベースの非同期プログラミングを強要するという
何がしたいのかわけのわからない設計だからな
0352名前は開発中のものです。2010/07/14(水) 18:33:18ID:4WbJIIhR
Twitterクライアントプラグインを開発→W.Deeたんの呟きを取得してKAGシナリオとして保存、再生する
『ツインテニーソ☆ビューワ』として公開、というプランを考えたんだけど面白そう(技術的に)?
0353名前は開発中のものです。2010/07/14(水) 19:03:53ID:2r7FotAk
>>351
TJSに非同期なところは存在してないんだがなんか根本的な思い違いしてないか?
0354名前は開発中のものです。2010/07/14(水) 19:12:14ID:VQa33D9U
非同期ってマルチスレッドのことじゃないよ
一連の処理がイベントで分断されてしまうという意味
吉里吉里ではドキュメントでもまさにそういう意味で非同期という
言葉が使われてるから(AsyncTriggerなど)分かってくれるかと思ったけど
0355名前は開発中のものです。2010/07/14(水) 20:07:32ID:2r7FotAk
>>354
TJS的な「一連の処理」はイベントで分断はされない。分断されないからこそ AsyncTrigger や Timer があるわけで。
イベントドリブンシステムにのせるべきスクリプトシステムとしては一貫性のとれた設計だ。
これを「わけのわからない」って言うほうがわけがわからん

まあ、「一連の処理」ってのが、「ユーザが逐次実行したいこと」ってことで、
その実現のためにはまわりくどい書き方をしないといけないのはうざいってのが言いたいことなんだろうとは思うが。
イベントドリブン設計は、モジュールやコンポーネントつくるのには向いてるけど逐次実行記述には
向いてないってのは確か。

ただ、イベントドリブン処理系の上に逐次実行処理系を実装するのは比較的容易だが、
逆はとても大変なので、吉里吉里の設計は「汎用」エンジンとしてはすこぶる妥当だと思うがいかが?
0356名前は開発中のものです。2010/07/14(水) 21:10:05ID:w6dp0TS/
商業利用だと、吉里吉里+カスタマイズで十分なんだよな。
動作安定してるし。
足りない機能とかエフェクトはプラグインDLL作ればいいし。
吉里吉里2このまま不具合修正だけにして、安定版にしてほしいぐらい。
0357名前は開発中のものです。2010/07/14(水) 21:12:33ID:CqEkscKI
まあシナリオファイル自体がイベントストリームで馬鹿正直にファイルの上から下に実行してるわけじゃないからな。
これならわざわざ別フォーマットつくるよりtjsをDSLとしてevalしちゃうのもありだとおもう。
rubyのmiyakoとかSGEのluaとかスクリプトを直接実行してるだろ。

>逆はとても大変なので
HSPでXMLパーサ書いたときは地獄だった。
0358名前は開発中のものです。2010/07/14(水) 21:23:06ID:4WbJIIhR
名前空間はおろか構造体もないHSPでパーサかw
Cでベタ書きしたほうがましなくらいだなあ。
0359名前は開発中のものです。2010/07/14(水) 21:42:39ID:YAioA96+
パーサをCで書いてもコールバックする仕組みがないからハンドラ渡せないぞ
0360名前は開発中のものです。2010/07/15(木) 17:27:11ID:I1eHiMll
eruby、なんかタテになるんだが

が[eruby text="も" str="燃"]える で、







える

みたいになる
0361名前は開発中のものです。2010/07/15(木) 19:02:41ID:68OzebYf
SAXでなくDOMならコールバックを考える必要はないだろ。
0362名前は開発中のものです。2010/07/15(木) 21:32:31ID:NmSF5iXU
DOMはパーサじゃねーよ
0363名前は開発中のものです。2010/07/15(木) 23:12:45ID:68OzebYf
構文解析機≒パーサなんだからDOMはパーサに決まってる(正しくはXMLパーサのサポートするAPI)だろ。
0364名前は開発中のものです。2010/07/15(木) 23:15:45ID:8ZpwUtIz
DOM自体はパーサじゃないがドキュメントを元にDOMを組み立てるのはパーサだ
吉里吉里のTJSパーサだって吉里吉里のソースを読んで抽象構文木(≒DOM)を組み立てるのが仕事だ
0365名前は開発中のものです。2010/07/16(金) 01:11:50ID:asQrSjDB
DOMはデータ構造のことでなくAPIだと何度言えば。
0366名前は開発中のものです。2010/07/16(金) 01:18:54ID:QqwpUINE
DOMは用語の定義とその操作には関与しているがほかは一切関与してない。
パースどころか表現がツリーであることすら定めてない。
中立的な仕様を提供してるに過ぎん。
DOMが実際に扱うソースはHTMLである必要はない。
だからxmlも扱えるしinfo set準拠であるならバイナリですら扱える。
xmlをバイナリにする場合ストリームを順に読めば処理できるようなフォーマットにするのが普通だからいわゆるパース作業も必要ない。
かならずしもパーサがあるとは限らん。
これは実装が決める事であって仕様は関係ない。実装と仕様を混同するな。

パーサはDOMを用意するものの一部でDOMはDOMだ。
DOMがはさみならパーサははさみ工場だ。

これで分からんなら無駄だからこれ以上騒ぐなよ。該当スレでやれ。
0367名前は開発中のものです。2010/07/16(金) 05:32:34ID:Den8rq9l
とりあえず Javascript のせてみたよー
0368名前は開発中のものです。2010/07/16(金) 12:25:37ID:SQrp+A7F
TJS→KAG→JavaScriptの三重構造ですか
0369名前は開発中のものです。2010/07/16(金) 12:47:55ID:MiPlIYkX
美味しんぼなら決め技の料理にでてきそうな構造だな
0370名前は開発中のものです。2010/07/16(金) 13:02:43ID:Den8rq9l
ソース&ドキュメント
ttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/javascript/
バイナリ
ttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/bin/win32/plugin/javascript.dll
サンプル
ttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/tests/javascript/

吉里吉里の上に直接プラグイン実装したので TJS と同格。レキシカルクロージャ欲しい人はどうぞってことでw
0371名前は開発中のものです。2010/07/16(金) 13:40:05ID:2peXGs4w
>>360だけど、DLしたKSファイルが[ ]で\がないタイプだったからだわ。
俺は自動改行にしてるからだな。\追加したら治った。スレ汚しスマソ
0372名前は開発中のものです。2010/07/16(金) 18:13:30ID:+6m0pC/W
もともとDee氏のオナニーに付き合わされてるだけなんだよなw
一般的なスクリプト言語処理系を組み込むのに比べてわざわざ独自に実装するメリットは皆無
ユーザーはみんな幸せになれる
言語処理系の部分が無くなれば吉里吉里自体もシンプルになるし
その分機能の充実に労力を回せる
0373名前は開発中のものです。2010/07/16(金) 18:26:17ID:vNp6Y0fO
>>372
当初Win標準の JScript つかってたけど遅すぎたから TJS 作ったという歴史的経緯を無視しちゃあかんよ。
TJSの性能はサイズ対性能比で考えると今でもかなり高い。V8 Javascript とか Ruby とかむちゃくちゃ富豪的

実際、10年来のアプリに最新スクリプト処理系が簡単に組み入れることができるってこと自体が異常で、
これは dee たんが言語マニアだったから言語処理用の基礎部分をきっちりつくりこんだことに寄ってる。TJSがあってこそだ。
0374名前は開発中のものです。2010/07/16(金) 18:29:21ID:MiPlIYkX
>その分機能の充実に労力を回せる

ここがイミフすぎる
0375名前は開発中のものです。2010/07/16(金) 18:37:40ID:2peXGs4w
TJSってコレ以外だとどんな分野に使われてるの?
0376名前は開発中のものです。2010/07/17(土) 00:04:33ID:ZBCq/brK
TJSは記述を楽にする機能が無さすぎ
せめてfor eachくらいあってもいいのに
まあ吉里吉里のソースコード見てると、ダラダラと低レベルなコードを書くのが好きな人みたいだから
TJSもそういう仕様になってるんだろうなとは思う
0377名前は開発中のものです。2010/07/17(土) 00:19:32ID:OQc3ol6+
foreachが無くて困るのならDictionary.assign()やArray.assign()とforを組み合わせて実質同等な処理書けばいいんじゃね?
記述を楽にするのはツールじゃなくて「ツールを見て『これ使えそうだな』と気づく人間」だと思うんだ
0378名前は開発中のものです。2010/07/17(土) 01:03:55ID:T1MiapF8
自作しろよ。
EnumMembersでのコールバックとClassInstanceInfoでのディスパッチ組み合わせれば
for-eachくらいは汎用に実装できる。
0379名前は開発中のものです。2010/07/17(土) 02:01:50ID:GQG5ovis
TJSはマイナーすぎて世界が広がらないのが駄目なところだな。
まあファンにも問題があるってことだな。
0380名前は開発中のものです。2010/07/17(土) 03:56:51ID:WEbvMDAL
広がらなくてもそんなに困った事無いな。欲しいものは自分でやるか、ここで手に入るし。
吉里吉里そのもののプラグインはごうさんをストーキングしてれば大概間に合うしー。
0381名前は開発中のものです。2010/07/17(土) 04:11:53ID:ywooJ9I0
キャーごうさんなんかツクッテー
0382名前は開発中のものです。2010/07/18(日) 23:21:23ID:MaMJ8IDw
同人作りたい友達がさ、
「プログラムは吉里吉里と参考書があるからプログラマ2人しかいないし片方駆け出しだけど大丈夫!」って言ってるんだけど
このソフトそんなに簡単なもの・・・?
ここ見る限り凄い難しく見えるんだが。
■ このスレッドは過去ログ倉庫に格納されています