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

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

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

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

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


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

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

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

必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
0796名前は開発中のものです。2009/09/11(金) 21:06:33ID:rvQ3GooP
自分は中身を教材として勉強させてもらってるよ>KAGEX
0797名前は開発中のものです。2009/09/12(土) 00:54:22ID:8FdGq4tM
ときメモオンラインというものが出た時は衝撃だったな…
0798名前は開発中のものです。2009/09/12(土) 03:11:04ID:nDisIv25
>>795
おれも他人のわけ分からんバグ追うくらいなら自分のバグ直した方がましだと思った。

>>767
糞運営と郵便であんなもん送ってくんなという衝撃は確かに凄かった。
ラブプラス作る暇があったらときメモ4をだせとry。
0799名前は開発中のものです。2009/09/12(土) 05:26:45ID:p1b1Umd9
KAGEXは動的処理とシーン管理を強化した感じらしいので興味あったけど、
自前でKAGに直交するシステム書いたから結局触ってないなあ。

汎用性だけは無駄に追求したからそのうち自サイトで公開しようと
思ったけどここの様子じゃ需要まるでなさそうだから止めよ。
0800名前は開発中のものです。2009/09/12(土) 12:12:08ID:za4RQio6
フラッシュがレイヤーに描画可能になったから
アニメーション関係はフラッシュで素材作ると便利すぎだな
0801名前は開発中のものです。2009/09/12(土) 12:20:43ID:za4RQio6
フラッシュでも小さな素材なら
pen3 800Mhzの場合
CPU使用率5〜10%程度で低スペックでも問題なし

さらに吉里吉里が使いやすくなったな、プラグイン作者GJ
0802名前は開発中のものです。2009/09/12(土) 12:28:12ID:CmU2oyh+
何そのプラグイン
0803名前は開発中のものです。2009/09/12(土) 12:51:18ID:za4RQio6
>>802
http://ruriko.denpa.org/200909b.html
ごめん場所張り忘れ
0804名前は開発中のものです。2009/09/12(土) 13:58:31ID:iLXVHxXJ
何そのやずやのCM並に不自然な紹介文
0805名前は開発中のものです。2009/09/12(土) 14:41:47ID:agXxHdQ6
音声認識をソフトを扱えるプラグインは出ていますか?
0806名前は開発中のものです。2009/09/12(土) 15:52:50ID:45dqQffw
ハドソン!ハドソン!ハドソン!
0807名前は開発中のものです。2009/09/12(土) 17:11:08ID:W8CAjfty
プラグインの利用やTJSも自在に使えるようになりたいけど、まだまださっぱりなおれ
変数と配列とKAGが友達さ。TJS記法なんか見たら癲癇おこしちゃう!

でもいつかは使えるようになりたいです
0808名前は開発中のものです。2009/09/12(土) 17:17:38ID:oJTaE29I
むしろ、吉里吉里は変なところでTJSから見えない部分があるのがなんともな。
例えば今1文字ずつ表示している文字を横取りするトラップを追加しないと自前の文字履歴が作れないとか、
ロードした直後の挙動とか。
0809名前は開発中のものです。2009/09/12(土) 17:41:50ID:bOrrV2AU
前者は普通にtjsから見える部分じゃ。後者はなんのことやら
0810名前は開発中のものです。2009/09/12(土) 17:52:28ID:oJTaE29I
>>809
前者だが、トラップコード書かないでテキストの出力履歴を拾える?
せめてリダイレクト先を変更できるといいんだが……。

後者については、[gostart]マクロを実行するとどういう挙動でKAGスクリプトの元の位置に戻ってくるのかが掴めていない。
0811名前は開発中のものです。2009/09/12(土) 17:56:51ID:sLGLRvKr
「KAGから見えない」の間違いじゃ?
0812名前は開発中のものです。2009/09/12(土) 18:28:40ID:EDMuJFgT
KAGが「今のテキスト窓の表示内容を保持してない」ってことなら、そりゃ KAG の設計思想の問題だな。
KAGにはそもそも「現在のテキスト」とか「履歴」って概念がない。そもそも現行の履歴機構自体がトラップ構造だし。
のっとりたければ、kag.historyLayer を独自のに差し替えればいいんじゃないかね。メソッドさえそろってりゃ動くよ

gotostart はマクロじゃなくてコマンド。
中でやってることは、startanchor で保存された999番のセーブデータをロードしてるだけ。
0813名前は開発中のものです。2009/09/12(土) 22:06:43ID:60pfmund
お前ら難しい話してるな。理解できないや
0814名前は開発中のものです。2009/09/12(土) 22:35:04ID:2wKq4M0d
俺もだ
0815名前は開発中のものです。2009/09/12(土) 22:58:25ID:0+tDtZyD
トラップコード!
0816名前は開発中のものです。2009/09/13(日) 00:03:18ID:2Fd8Zkzf
TJSから見えないって言うからそういえば実装はされてるが
TJS用のインターフェースがないAPIがあったなぁ。とか思った俺の素朴さは一体・・・。
0817名前は開発中のものです。2009/09/13(日) 00:05:10ID:OMO28Fw5
>>799
そんなことないです!
0818名前は開発中のものです。2009/09/13(日) 00:39:02ID:i/afq1RU
オブジェクトから変数を(引数によって加工してから)呼び出すのに
メンバ関数を使ってvar i= obj.method(x,y);などとするのと、
グローバル関数を使って引数に目的のオブジェクトを加えvar i= func(obj,x,y);などとするのでは
大差無いでしょうか。
0819名前は開発中のものです。2009/09/13(日) 01:30:20ID:2Fd8Zkzf
呼び出せるプロパティと言われるjsやってるが「変数を呼び出す」は流石に意味が分からん。
0820名前は開発中のものです。2009/09/13(日) 01:59:52ID:biW6E8I2
>>818
「変数を呼び出す」はメンバ変数の値を参照するって意味じゃね?
前者はオブジェクト指向っぽい
後者はobjがvoidや無効化してるときに対処しやすい
0821名前は開発中のものです。2009/09/13(日) 02:32:20ID:+RcIn9zT
>>818
そこは特に迷ったりするところじゃない。
意味的には820のいうとおり。どちらでも書きやすいほうを使えばいい。
0822名前は開発中のものです。2009/09/13(日) 02:40:09ID:dnjZ8QyR
両方必要に応じて使い分けるのが正解だな。後者だけどそもそもオブジェクトを使う意味が薄い。
0823名前は開発中のものです。2009/09/13(日) 07:48:50ID:JDEb4q0h
まあ>>818だけじゃ何も分からんな
0824名前は開発中のものです。2009/09/13(日) 12:57:34ID:dJYBwVz7
良く分からないけど、普通なら
var i, o = obj;
i = o.method(x,y);
のシーンぽいが、、、
0825名前は開発中のものです。2009/09/13(日) 13:07:06ID:8w2O/QjY
考え方としてはどっちも同じようなもんだよ
たとえばC言語でオブジェクト指向っぽく書こうと思ったら>>818の後者みたいにする
0826名前は開発中のものです。2009/09/13(日) 15:16:18ID:HdVL0+cK
同じようなリンクの処理を多数行うのでループを使ってみたのですが、
*loop
[link target="*select1" exp="tf.sel +=1"]
[emb exp="f.stats[tf.char]"]←キャラクタ名
[endlink]
[eval exp="tf.char++"]
※何回かループさせる

表示結果(例)
A
B
C
〜略〜
と、なり、どの選択を選んでもselect1にジャンプする。
だが、どの選択を選らんだのかによって、select1での処理を変えたい。
それを判断するためにリンクに「sel」の変数を与えてみたのですが、
どれを選んでも「sel」の値が一緒になってしまうため、失敗。
現在行き詰まってます。
何かいい方法はありませんか?
0827名前は開発中のものです。2009/09/13(日) 15:40:01ID:dnjZ8QyR
このスレの少し前に同内容の質問と回答がある
0828名前は開発中のものです。2009/09/13(日) 16:58:09ID:HdVL0+cK
>>827
>>670ですね……確認不足で申し訳ないです。
[link target="*select1" exp="&@'tf.sel =$[tf.forloop]'"]
にする事で解決しました。
ありがとうございます。


0829名前は開発中のものです。2009/09/13(日) 22:03:12ID:zlgu161m
>>670が自分でびっくりした
0830名前は開発中のものです。2009/09/14(月) 03:41:14ID:CjS4p2dh
@iscript
var LayF= new Layer(kag, kag.primaryLayer);
LayF.setPos(100, 100, 200, 200); LayF.setSizeToImageSize;
LayF.colorRect(0, 0, 200, 400, 0xffffff);
var LayB= new Layer(kag, kag.primaryLayer);
LayB.setPos(300, 100, 200, 200); LayB.setSizeToImageSize;
LayB.colorRect(0, 0, 200, 200, 0x808080);
var LayFC= new Layer(kag, LayF);
LayFC.setPos(0, 20, 200, 180); LayFC.setSizeToImageSize;
LayFC.colorRect(0, 0, 200, 180, 0xff0000);
var LayBC= new Layer(kag, LayB);
LayBC.setPos(0, 20, 200, 180); LayBC.setSizeToImageSize;
LayBC.colorRect(0, 0, 200, 180, 0x0000ff);
LayF.visible = LayB.visible = LayFC.visible = LayBC.visible = true;
@endscript
[p]
@iscript
LayF.beginTransition('crossfade', true , LayB, %[time:'4000']);
@endscript
[p]
@iscript
invalidate LayF; invalidate LayB; invalidate LayFC; invalidate LayBC;
@endscript

子ごとのトランジションのテストをしているのですが、
トランジションの最中、LayFのleftとtopの分だけ、表示が巧くいっていないのですが、
回避する方法は何かないでしょうか?(left=top=0以外で)「version 2.30.2.416 」
0831名前は開発中のものです。2009/09/14(月) 07:32:28ID:iYQ6b4Of
>>830
上から別のレイヤーがかぶさってるからじゃね?
それから、オレなら4つも変数作らずに配列で初期化しちゃうかな。
08328302009/09/14(月) 12:44:51ID:P0E07ICO
>>831
レスありがとうございます。
830は、テスト用に単純化したもので、運用とは異なります。
(830のsetSizeToImageSizeは、全部不要でした)

実際には、以前、ここで見掛けた、kag.fore.base以外にプライマリーレイヤを追加するのを
試していて遭遇した問題です。
(その場合は、プライマリーとkag.fore.baseの間にコンテナ用のレイヤをさらに追加して、
そちらで、topとleftを指定すれば、取り合えずはしのげるのですが……
830だと、最初にLayCを作成して、LayFはLayCの子、LayBはLayFの子にして、LayCのtopとleftを
指定、LayFのtopとlefは0といった感じ)

コンテナを使うのが、お作法ならお作法で構わないのですが、
830の段階では、コンテナを使うのにも気付いていなかったので質問しました。
他にもっと無駄の無い方法がありそうな気もします……
0833名前は開発中のものです。2009/09/14(月) 12:54:47ID:P0hH5cA4
>>830
トランジションするレイヤの left, top, opacity を一度でも変えてしまうと
そのレイヤでのトランジションは失敗する。多分そういう仕様です。

回避するには left, top, opacity を動かしたレイヤの親でトランジションする方法があります。

>>830 の例では LayF, LayB の親が kag.primaryLayer になっているが、これを fore.base と back.base のペアに変えてこれをトランジションするか、新たに
var LayFP= new Layer(kag, kag.primaryLayer);
var LayBP= new Layer(kag, kag.primaryLayer);
などと作りこれを親にして、トランジションは LayFP, LayBP のペアで行う。

(試していないので違ってたらゴメン)
08348302009/09/14(月) 19:16:56ID:KZfHS5sJ
>>833
どちらも、巧くいきました。ありがとうございます。
考え方としては、KAGで背景(top=left=0, opacity=255)ごとのトランジションが推奨なのと、
同じようなものですね。そうしてみると、公式過去ログの方にも、あってもよさそうな話題ですが、
適当な検索ワードで絞り込めず断念しました。

(付記:
>一度でも変えてしまうと
一度変更しても、トランジションの開始前に
初期値(top=left=0, opacity=255)に戻しておけばよいみたいです)
0835名前は開発中のものです。2009/09/15(火) 12:10:06ID:3AAzPb/L
トランジションのマクロ作った時に left とか pos とかの位置が
どうにもおかしくなるのはそういうことでしたかね。

属性で left=%left1|0 とか [freeimage] 入れてみるとかしてますが
時々思い通りには行かなかったり。
あぁ、理解が足りてないんだなぁ。
0836名前は開発中のものです。2009/09/16(水) 10:56:40ID:NCl4Epv/
@rclick コマンドで右クリックしたときの動作を定義できるけど、ボタン上にマウスカーソルがある場合は右クリックしても何も起こらない。
画面全体でrclickコマンドの定義を有効にするにはどうすればいいの?
0837名前は開発中のものです。2009/09/16(水) 12:15:20ID:fb0AHpBP
>>836
MessageLayer.tjs内を「function onExecute」とかで検索すると幸せになれる
0838名前は開発中のものです。2009/09/16(水) 12:18:37ID:QBbKEKaX
音泉っていうwebラジオ配信サイトでラジオ聞きながらKKDE使っていると
高確率でブルースクリーンになる…
0839名前は開発中のものです。2009/09/16(水) 13:20:01ID:NCl4Epv/
>>837
解決しました!

手元で使ってるKAGが年代ものなんですが、まず最新版のKAGから該当部分を抜き出して、onExecuteハンドラが動くようにしました。

具体的な解決法ですが、ByttonLayer.onExecute()ハンドラでkag.onPrimaryRightClick()を実行する形です。
この場合、事実上ボタンは右クリックに対して透過扱いになります。
0840名前は開発中のものです。2009/09/16(水) 15:52:54ID:vLgweafg
>>839
>手元で使ってるKAGが年代もの

論外だ、質問するにしても最新に差し替えてからだ。
0841名前は開発中のものです。2009/09/16(水) 16:21:48ID:TMi/1sDM
じゃあちょとチェックアウトしてくるか・・・
08427022009/09/17(木) 17:13:25ID:Gc1+z1T4
ホイールでテキストを送る機能をオフにするにはどうしたらいいんですか
0843名前は開発中のものです。2009/09/17(木) 17:16:31ID:VHK9apoT
リファレンスをよめばいいとおもいます。
0844名前は開発中のものです。2009/09/18(金) 18:49:15ID:evtGsLnp
このエンジンを評価してみた人いる?
KAG互換かな?

ttp://www.ies-net.com/home
0845名前は開発中のものです。2009/09/18(金) 21:02:15ID:p1xQb7ed
全然別物だろ。
マクロで工夫すれば同じコードを流用できると当たり前のことを書いてるだけ。
ECMAScriptを参考にしてると書かないで、吉里吉里と書いたのは単なる宣伝目的だな。
0846名前は開発中のものです。2009/09/18(金) 21:05:53ID:e6h6qoRX
メールしてまで評価しようとはおもわんなぁ
0847名前は開発中のものです。2009/09/18(金) 21:08:15ID:R+jiDVg6
どうせならTJSを直接移植すればいいのに
0848名前は開発中のものです。2009/09/18(金) 21:10:11ID:Y34ukRj0
変数や関数名の入力補完をしやすいお薦めエディタってある?
複数ファイルに分けて作成しているときは似たり寄ったりかな。
0849名前は開発中のものです。2009/09/18(金) 21:15:23ID:FoEYh4Dx
>>848
入力補完なら、EmEditor Proが過剰なくらいやってくれるが。
どちらかというと、メソッドやクラスの定義場所に一発でジャンプしたいかな。
ctagsを改造すればいいんだけど。
以前Squirrel向けのは作ったことあるからTJS向けのも作ってみるかなぁ。
0850名前は開発中のものです。2009/09/18(金) 21:16:58ID:6FZ9xGQZ
KKDE2のアップデートまだー
0851名前は開発中のものです。2009/09/19(土) 01:30:05ID:4UC60NgT
>>844
全然別物だった。
けど、iPhoneで動作するゲームを作れるのに惹かれる
0852名前は開発中のものです。2009/09/20(日) 11:52:21ID:uBXXJrhM
過去ログで調べもものしてたらおさかな定食にいいプラグインがありそうなんだけど
おさかな定食っていつごろから今の状態が続いてるんでしょうか・・・?
0853名前は開発中のものです。2009/09/20(日) 12:12:27ID:5jAFOtQd
そういえば、まだおさかな定食復旧してないんだよな
引越し作業にこんなに掛かるもんなのか?
0854名前は開発中のものです。2009/09/20(日) 16:35:59ID:13MH5JEG
引越しに合わせてファイルを修正してるのなら
時間はかかっても仕方ないが…
ノーサポートでいいから早く復旧して欲しいな
0855名前は開発中のものです。2009/09/20(日) 21:55:32ID:dZdZ7IqR
暫定倉庫でもいい
0856名前は開発中のものです。2009/09/20(日) 23:34:34ID:DZtL7OZ2
来年の今頃もおさかな定食があの状態でも驚かない
0857名前は開発中のものです。2009/09/21(月) 00:35:35ID:2rdZchz0
>>852
確か6月はまだDLできてたような・・・
0858名前は開発中のものです。2009/09/21(月) 01:12:22ID:UZiMTDQB
他力本願でゲームを作るのもどうかと思うが
0859名前は開発中のものです。2009/09/21(月) 01:16:20ID:69Pjtjw7
参考くらいあっていいだろう
0860名前は開発中のものです。2009/09/21(月) 01:30:28ID:cf9VT6bL
終了確認をダイアログではなくレイヤーでやりたいのですが
function onCloseQuery()の
saveSystemVariables();
if(!askOnClose) { super.onCloseQuery(true); return; }
super.onCloseQuery(askYesNo("終了しますか?"));
を消して
kag.callExtraConductor('終了.ks','*終了シナリオ内');
ではその後シナリオ内の[link exp=" kag.shutdown()"]が効かなくなってしまいます。
どのようにすればいいですか?
0861名前は開発中のものです。2009/09/21(月) 23:35:59ID:Afbu6NXB
終了.ks の *終了シナリオ内 ラベルの終わりで
Window.onCloseQuery(終了するかどうか) incontextof kag;
0862名前は開発中のものです。2009/09/23(水) 11:08:42ID:48qbElB4
誰か昨日の吉里吉里勉強会いってきた奴いないかな?
吉里吉里3はどんな状況とかの話とかあったら教えておくれー
0863名前は開発中のものです。2009/09/23(水) 11:22:05ID:Ki71KdO3
>>862
mixiにレポがきてるお
0864名前は開発中のものです。2009/09/24(木) 19:00:42ID:0U2U8Wq2
最近、みくしが無いと何も見れない状況だよな。
勿論、公式情報とかじゃないから、それに文句を言うつもりは無いが、
あの窮屈な空間が嫌で辞めちまった身にはつらいw
0865名前は開発中のものです。2009/09/25(金) 01:41:19ID:g8dS8TRE
吉里吉里3は止まってるとしか
0866名前は開発中のものです。2009/09/25(金) 08:37:43ID:n5loEePc
>>865
まじめにやってれば半年もあれば開発できるものだしな。
0867名前は開発中のものです。2009/09/25(金) 09:30:27ID:PhkD4GjX
吉里吉里はある意味完成の領域に達してるからな。
KagEXを完成の領域に持ってきた方が、受けが良いんじゃなかろうか。
0868名前は開発中のものです。2009/09/25(金) 09:40:26ID:+dkIAQuX
KAGEXはワールド拡張とかの概念や記述が理解できなくて諦めた
0869名前は開発中のものです。2009/09/25(金) 09:47:24ID:sKoqn0LW
バグとやらが気になって手がさせない

ところでmixiのレポートであった
FLASHで右クリックすると出るFLASH関連のメニューを
出さない方法ってどこかにないだろうか
0870名前は開発中のものです。2009/09/25(金) 14:37:43ID:OhTQHWYF
>>866
インタプリタのみを動かすだけなら半年で出来るだろうが
関連するAPIを用意したり付随するツール群を揃えてさらに実用レベルの品質まで持っていくのは数年かかるだろう。
それこそコミッターが居れば今ごろ完成してたかも知れんし。

>>867
あれを使うくらいならMainWindow.tjsを整理するついでに自分で作るってやつが居るんじゃないだろうか。
0871名前は開発中のものです。2009/09/25(金) 14:41:59ID:AuREjKi2
>>869
ttp://www.kirikiri.info/bbslog/log/004718
これはどうだろう?

KAGEXは機会があれば触ってみればいいんじゃね?
バグが〜とか書いてる人のは本当にKAGEXのバグなのか今の所わからんし。
自前スクリプトのバグ、使い方や記述を間違えてる可能性もある。
0872名前は開発中のものです。2009/09/25(金) 15:51:31ID:cADywhdF
>>869
このスレをすこしさかのぼるんだ!
0873名前は開発中のものです。2009/09/25(金) 18:12:35ID:PhkD4GjX
吉里吉里3の開発室初めてみたけど、描画関係の高速化も期待出来るのか。
吉里吉里でノベル以外を作ってる俺としては頑張ってもらいたいものだ。
0874名前は開発中のものです。2009/09/26(土) 01:54:33ID:cSoIuReO
>>861
ありがとうございます。なぜかタイトル画面でしか閉じられなかったりするので色々頑張ってみます。
0875名前は開発中のものです。2009/09/26(土) 02:06:02ID:sCbbckM4
吉里吉里でノベル以外を作る利点てなに?

ノベル以外ならC/C++にluaとかDSL組み込んじゃえばいい気がするんだけど。
そういうDSL上に構築されたゲーム用F/Wもあるしさ。
0876名前は開発中のものです。2009/09/26(土) 02:09:34ID:riSF4elI
>>875
ノベルメインでミニゲームをそれなりに本格的にやりたいとしたらどうすりゃいいのかよくわからん。
どこか解説してたりするところない?
0877名前は開発中のものです。2009/09/26(土) 02:11:30ID:tgpICSzg
C/C++ が書けない人でも作業できる、とか?
パフォーマンスがさほど要求されない場面なら有効だと思うよ。画像やサウンドの扱いもシンプルだし。
0878名前は開発中のものです。2009/09/26(土) 02:15:49ID:MSxnwiCG
>>875-876
汎用ゲームエンジンだと逆にノベル部分がネックになったりするわなぁ。
吉里吉里はその辺、嫌と言うほど作りこまれてるから。

メッセージフレームだしてクリックごとにテキストを切り替える程度と妥協できるなら、
汎用エンジンで作ってゲームをメインにしたらいいかもしれないけどね。
0879名前は開発中のものです。2009/09/26(土) 03:50:30ID:sCbbckM4
TJSも普通にグフィックコンテキストを取得してそれに対して書き込んで
反映させるっていうスタイルだったらなぁ。
あとtjsでゲームループ書くとコードが一般的じゃないのも分かりづらいよな。

//こういうコードの方がいいな
function game_loop(){
update();
render();
sleep(acutaly_elapse);
}

//ここのコードが吉里吉里だとLayerにほげほげするのがやりづらい
function render(){
g = screen.grahics();
img = new Image("image.png");
g.draw(img,x, y);
g.dispose();
}
0880名前は開発中のものです。2009/09/26(土) 12:52:20ID:O+pMsbT1
>>871-872
おお、ありがとう!
そうかプラグインでもできたのか
どちらも試してみるわ
0881名前は開発中のものです。2009/09/26(土) 15:14:47ID:tgpICSzg
>>879
吉里吉里のレイヤって標準機能が少ないだけで概念的にはグラフィックコンテキストそのものだろ

画像だけの独立した概念があるとすっきりするよなぁとは思うけどね
0882名前は開発中のものです。2009/09/26(土) 15:19:23ID:MSxnwiCG
まあ、秒間60フレームでヌルヌルぶん回すようにはできてないからな。
0883名前は開発中のものです。2009/09/26(土) 19:51:18ID:0JH+tER8
>>881
グラフィックコンテキストが画像とそれに関するステートを持っているのが問題なのかと。
ふつうはだいたいこんな定義だろ。
abstract class Layer{
/**
 レイヤが表示されていれば描画する
 @prams g グラフィックコンテキスト
*/
update(Grahics g){
if(this.visible){
g.drawImage(this.image, x, y);
}
}

/**
 @params 表示され得るかどうか設定
 @return 表示され得るならば真
*/
property visible;

/**
 @params 画像を設定
 @return 持っている画像を取得
*/
property image;
}

んでこういうかんじのを継承してSpriteクラスとかMapTipLayerクラスとか作るわけで、レイヤの役割的にグラフィックスコンテキストをhas-aなのは設計へんじゃね?

>画像だけの独立した概念があるとすっきりするよなぁとは思うけどね
この話もたまに上がってるしさ。
というかyieldか継続とシリアライズを実装してくだせぇDeeたん。
0884名前は開発中のものです。2009/09/26(土) 20:29:13ID:gKaOv5Va
継続とまともなクロージャ導入してクラスを無くしてほしい
ちゃんとした言語にしたかったらRubyやPythonでも組み込んでくれた方がよっぽど助かる
0885名前は開発中のものです。2009/09/26(土) 20:32:28ID:g2s5GieN
C++のBoost.Serializationを参考にTJSでシリアライズのフレームワークを書いてみたけど、
Layerみたいにガチガチな依存関係を持っていてコンストラクタ引数に他オブジェクトを要求するクラスの
外部シリアライザの実装のしかたがどうしても思いつかなくて頓挫。
仕方ないから既存の構築済みオブジェクトをdeserializeに渡してメンバだけ復元するようにした。
オブジェクトの共有が絡んでくると一気にややこしくなる。
0886名前は開発中のものです。2009/09/26(土) 21:01:37ID:tgpICSzg
>>883
メモリグラフィックコンテキストが内包してるフレームバッファが見えてるだけ、
と考えれば概念的におかしいところはない。
visible を含むレイヤのツリー配置機能はさらに外枠の構造で、これは
他ではみられない構造だから珍しいけどおかしいところは無いと思う。
Window - Layer までで一つの概念を形成してる。

結局、Image 単体が存在しないから Layer で代用してるのがおかしいだけという話になるんじゃないかと。
実際のところは独自の Image と、それに対応した Layer.drwaImage() を
ネイティブプラグインとして作ってしまえばいいだけではある。
というか、LayerExDraw プラグインとして既に1例は存在してる。
0887名前は開発中のものです。2009/09/26(土) 22:10:18ID:riSF4elI
・・・・話してることがさっぱり分からん。
くそう、一応C++とかも勉強してるんだけどなぁ・・・。
WindowsAPIとか弄らないと駄目なのか。

ミニゲームを組み込みたいと思ってはいても、どう実現すれば良いのかさっぱりだ。
マリオくらいならC++で組めるんだけど、どう勉強したらいいんだろう。
0888名前は開発中のものです。2009/09/26(土) 23:25:07ID:deXUyIGG
アイテム周りをまとめたitem.ksをcallで呼んでいます。

老人A.ks
[call storage=item.ks]
*アイテム1
老人A「それはなんですか?」
*アイテム2
老人A「それは私の豆腐です」

少女B.ks
[call storage=item.ks]
*アイテム1
少女B「それはマドです」
*アイテム2
少女B「それは誰かの豆腐ですか?」

item.ksではアイテム一覧の表示、使用の選択をしています。
アイテム1を使いますか?→[return target=*アイテム1]
アイテム2を使いますか?→[return target=*アイテム2]

returnで呼び出し元に戻ると思ったのですが、
リファを読むとどうやらitem内でのラベルを読んでいるよう思った動作になりませんでした。
呼び出したシナリオのラベルに行きたいのですが、どうすればいいでしょうか?
0889名前は開発中のものです。2009/09/26(土) 23:35:07ID:gKaOv5Va
呼び出し元に依存するならサブルーチンにする意味無いだろ
素直にjump使えばいい
0890名前は開発中のものです。2009/09/26(土) 23:43:10ID:g2s5GieN
>>887
リポジトリにネイティブプラグインのサンプルソースがごろごろ転がってるから
それ読みながら自分で弄ってみるところから始めれば?
ttps://sv.kikyou.info/trac/kirikiri/wiki/AboutSubversion

そういえば、C++でミニゲーム組み込むならDrawDevice組んで切り替えて
ContinuousHandlerでゲームループ呼んでやるのが正当なのかな。

KAGのインタフェースと組み合わせたくて、レンダリング結果を
Layerにmemcpyで流し込んでやったら普通に動いたけど糞重かった。
0891名前は開発中のものです。2009/09/27(日) 00:41:59ID:bjD8tvap
>>887
吉里吉里を改造せず、独自描画処理を行う C++プログラムを組み込むには、
(1) drawDevice プラグインの形で描画系を作成して独自処理を埋め込む
(2) 吉里吉里のウインドウの上に子ウインドウを作成してそこで独自処理を行うプラグインを作成する
の二つの方法がある。

前者は吉里吉里の描画内容と自分の描画内容を混ぜ込むことができるが、逆に言うと
吉里吉里の描画処理も自前で書かないといけない。後者は完全に上にかぶさる形での
処理しかできないが、吉里吉里の描画自体は気にする必要がない。

いずれの場合も、必要に応じて吉里吉里がベースのウインドウを破棄する場合があるので、
いつでもその再生成に対応できる組み方をする必要がある。前者は専用のインターフェースからの
呼び返しが来るが、後者は、Window.registerMessageReceived でハンドラを登録して自前で通知をうける必要がある。
マウスやキーボードのイベント処理は、前者の場合はこれもインターフェースから呼び返しが
くるのでそれを使う。後者では、自前の Window Procedure に Win32 でイベントが直接来るのでこれを処理する。

メインループ処理は、いずれも吉里吉里の continous Handler からの呼び返しの形で構築する形になる。
これもプラグイン用の専用の口がある。

吉里吉里レポジトリの drawDeviceIrrlicht プラグインが、両者とも実装したサンプルになってるので参考にするといいだろう。

>>890
レイヤへのコピーも、最近はマシンパワーでおしきれば案外動くよw
drawDeviceIrrlicht はそのバージョンもある。
0892名前は開発中のものです。2009/09/27(日) 01:34:14ID:w3eCa0aX
>>885
おれもやったことあるけど
KagPaerserとLayer考えるとC++から叩いた方がいい。

>>886
>レイヤのツリー配置機能はさらに外枠の構造で、これは他ではみられない構造だから珍しい
これはこれで曲者な気が。

>Image 単体が存在しないから Layer で代用してるのがおかしい
やっぱImageクラスほしいよな・・・。

>>887
設計とプログラミングの概念的な話というか。
勉強ならマリオ作れるならADVエンジンくらい作れると思う。
速度出すにはVMとコンパイラもつくるけど。
ミニゲームはtjsで実装したら?
ミニゲームコード実行中はKAGの方からイベントもらわないといけないかもしれないけど。
んでミニゲーム終了時に後始末関数呼んでその戻り値をトリガーにKAG側への復帰処理呼ぶとか。
ミニゲームのループはcontinousHandlerを差し替える。
あとは、終了操作とかした時のための処理を追加か、これはKAG側からミニゲームへ割り込むかミニゲーム側で処理させるか。
tjsでもRPGくらいならマシンパワーでごり押しできるよw
0893名前は開発中のものです。2009/09/27(日) 09:27:58ID:6ih0MpsH
吉里吉里独自?の画像形式に、TLG5・TLG6ってありますよね
png使うよりはこのどっちかの方がやっぱり色々いいと思うんですが、皆さんは使ってます?
自分はpngじゃないとエクスプローラーでサムネイル表示できないのが痛くて、今はpngでやってるんですが
0894名前は開発中のものです。2009/09/27(日) 09:50:42ID:T6nKkldw
圧縮率も良いし、展開も速いから立ち絵に使ってるよ。
スージープラグイン入れればすぐにビュワー表示できるしね。
0895名前は開発中のものです。2009/09/27(日) 14:15:33ID:bjD8tvap
>>893
スキップ時とかにあからさまに体感差が出るよ。PNGは展開が重い。
イベント絵はあまり気にならないけど立ち絵は TLG にしたほうがいい
■ このスレッドは過去ログ倉庫に格納されています