- 1 名前:名前は開発中のものです。 mailto:sage [2009/06/06(土) 01:11:54 ID:EztZkDNL]
- ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。 マルチポストはやめましょう。個人叩きも禁止です。 ※スレで質問をするときは※ KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、 FAQ、Google等で調べてからにしましょう。 努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ! 前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その17 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の公式掲示板や講座等を併用してください。 (併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
- 827 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 15:40:01 ID:dnjZ8QyR]
- このスレの少し前に同内容の質問と回答がある
- 828 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 16:58:09 ID:HdVL0+cK]
- >>827
>>670ですね……確認不足で申し訳ないです。 [link target="*select1" exp="&@'tf.sel =$[tf.forloop]'"] にする事で解決しました。 ありがとうございます。
- 829 名前:名前は開発中のものです。 mailto:sage [2009/09/13(日) 22:03:12 ID:zlgu161m]
- >>670が自分でびっくりした
- 830 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 03:41:14 ID: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 」
- 831 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 07:32:28 ID:iYQ6b4Of]
- >>830
上から別のレイヤーがかぶさってるからじゃね? それから、オレなら4つも変数作らずに配列で初期化しちゃうかな。
- 832 名前:830 mailto:sage [2009/09/14(月) 12:44:51 ID: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の段階では、コンテナを使うのにも気付いていなかったので質問しました。 他にもっと無駄の無い方法がありそうな気もします……
- 833 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 12:54:47 ID: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 のペアで行う。 (試していないので違ってたらゴメン)
- 834 名前:830 mailto:sage [2009/09/14(月) 19:16:56 ID:KZfHS5sJ]
- >>833
どちらも、巧くいきました。ありがとうございます。 考え方としては、KAGで背景(top=left=0, opacity=255)ごとのトランジションが推奨なのと、 同じようなものですね。そうしてみると、公式過去ログの方にも、あってもよさそうな話題ですが、 適当な検索ワードで絞り込めず断念しました。 (付記: >一度でも変えてしまうと 一度変更しても、トランジションの開始前に 初期値(top=left=0, opacity=255)に戻しておけばよいみたいです)
- 835 名前:名前は開発中のものです。 mailto:sage [2009/09/15(火) 12:10:06 ID:3AAzPb/L]
- トランジションのマクロ作った時に left とか pos とかの位置が
どうにもおかしくなるのはそういうことでしたかね。 属性で left=%left1|0 とか [freeimage] 入れてみるとかしてますが 時々思い通りには行かなかったり。 あぁ、理解が足りてないんだなぁ。
- 836 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 10:56:40 ID:NCl4Epv/]
- @rclick コマンドで右クリックしたときの動作を定義できるけど、ボタン上にマウスカーソルがある場合は右クリックしても何も起こらない。
画面全体でrclickコマンドの定義を有効にするにはどうすればいいの?
- 837 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 12:15:20 ID:fb0AHpBP]
- >>836
MessageLayer.tjs内を「function onExecute」とかで検索すると幸せになれる
- 838 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 12:18:37 ID:QBbKEKaX]
- 音泉っていうwebラジオ配信サイトでラジオ聞きながらKKDE使っていると
高確率でブルースクリーンになる…
- 839 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 13:20:01 ID:NCl4Epv/]
- >>837
解決しました! 手元で使ってるKAGが年代ものなんですが、まず最新版のKAGから該当部分を抜き出して、onExecuteハンドラが動くようにしました。 具体的な解決法ですが、ByttonLayer.onExecute()ハンドラでkag.onPrimaryRightClick()を実行する形です。 この場合、事実上ボタンは右クリックに対して透過扱いになります。
- 840 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 15:52:54 ID:vLgweafg]
- >>839
>手元で使ってるKAGが年代もの 論外だ、質問するにしても最新に差し替えてからだ。
- 841 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 16:21:48 ID:TMi/1sDM]
- じゃあちょとチェックアウトしてくるか・・・
- 842 名前:702 mailto:sage [2009/09/17(木) 17:13:25 ID:Gc1+z1T4]
- ホイールでテキストを送る機能をオフにするにはどうしたらいいんですか
- 843 名前:名前は開発中のものです。 mailto:sage [2009/09/17(木) 17:16:31 ID:VHK9apoT]
- リファレンスをよめばいいとおもいます。
- 844 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 18:49:15 ID:evtGsLnp]
- このエンジンを評価してみた人いる?
KAG互換かな? ttp://www.ies-net.com/home
- 845 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 21:02:15 ID:p1xQb7ed]
- 全然別物だろ。
マクロで工夫すれば同じコードを流用できると当たり前のことを書いてるだけ。 ECMAScriptを参考にしてると書かないで、吉里吉里と書いたのは単なる宣伝目的だな。
- 846 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 21:05:53 ID:e6h6qoRX]
- メールしてまで評価しようとはおもわんなぁ
- 847 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 21:08:15 ID:R+jiDVg6]
- どうせならTJSを直接移植すればいいのに
- 848 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 21:10:11 ID:Y34ukRj0]
- 変数や関数名の入力補完をしやすいお薦めエディタってある?
複数ファイルに分けて作成しているときは似たり寄ったりかな。
- 849 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 21:15:23 ID:FoEYh4Dx]
- >>848
入力補完なら、EmEditor Proが過剰なくらいやってくれるが。 どちらかというと、メソッドやクラスの定義場所に一発でジャンプしたいかな。 ctagsを改造すればいいんだけど。 以前Squirrel向けのは作ったことあるからTJS向けのも作ってみるかなぁ。
- 850 名前:名前は開発中のものです。 mailto:sage [2009/09/18(金) 21:16:58 ID:6FZ9xGQZ]
- KKDE2のアップデートまだー
- 851 名前:名前は開発中のものです。 mailto:sage [2009/09/19(土) 01:30:05 ID:4UC60NgT]
- >>844
全然別物だった。 けど、iPhoneで動作するゲームを作れるのに惹かれる
- 852 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 11:52:21 ID:uBXXJrhM]
- 過去ログで調べもものしてたらおさかな定食にいいプラグインがありそうなんだけど
おさかな定食っていつごろから今の状態が続いてるんでしょうか・・・?
- 853 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 12:12:27 ID:5jAFOtQd]
- そういえば、まだおさかな定食復旧してないんだよな
引越し作業にこんなに掛かるもんなのか?
- 854 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 16:35:59 ID:13MH5JEG]
- 引越しに合わせてファイルを修正してるのなら
時間はかかっても仕方ないが… ノーサポートでいいから早く復旧して欲しいな
- 855 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 21:55:32 ID:dZdZ7IqR]
- 暫定倉庫でもいい
- 856 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 23:34:34 ID:DZtL7OZ2]
- 来年の今頃もおさかな定食があの状態でも驚かない
- 857 名前:名前は開発中のものです。 mailto:sage [2009/09/21(月) 00:35:35 ID:2rdZchz0]
- >>852
確か6月はまだDLできてたような・・・
- 858 名前:名前は開発中のものです。 mailto:sage [2009/09/21(月) 01:12:22 ID:UZiMTDQB]
- 他力本願でゲームを作るのもどうかと思うが
- 859 名前:名前は開発中のものです。 mailto:sage [2009/09/21(月) 01:16:20 ID:69Pjtjw7]
- 参考くらいあっていいだろう
- 860 名前:名前は開発中のものです。 mailto:sage [2009/09/21(月) 01:30:28 ID:cf9VT6bL]
- 終了確認をダイアログではなくレイヤーでやりたいのですが
function onCloseQuery()の saveSystemVariables(); if(!askOnClose) { super.onCloseQuery(true); return; } super.onCloseQuery(askYesNo("終了しますか?")); を消して kag.callExtraConductor('終了.ks','*終了シナリオ内'); ではその後シナリオ内の[link exp=" kag.shutdown()"]が効かなくなってしまいます。 どのようにすればいいですか?
- 861 名前:名前は開発中のものです。 mailto:sage [2009/09/21(月) 23:35:59 ID:Afbu6NXB]
- 終了.ks の *終了シナリオ内 ラベルの終わりで
Window.onCloseQuery(終了するかどうか) incontextof kag;
- 862 名前:名前は開発中のものです。 mailto:sage [2009/09/23(水) 11:08:42 ID:48qbElB4]
- 誰か昨日の吉里吉里勉強会いってきた奴いないかな?
吉里吉里3はどんな状況とかの話とかあったら教えておくれー
- 863 名前:名前は開発中のものです。 mailto:sage [2009/09/23(水) 11:22:05 ID:Ki71KdO3]
- >>862
mixiにレポがきてるお
- 864 名前:名前は開発中のものです。 mailto:sage [2009/09/24(木) 19:00:42 ID:0U2U8Wq2]
- 最近、みくしが無いと何も見れない状況だよな。
勿論、公式情報とかじゃないから、それに文句を言うつもりは無いが、 あの窮屈な空間が嫌で辞めちまった身にはつらいw
- 865 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 01:41:19 ID:g8dS8TRE]
- 吉里吉里3は止まってるとしか
- 866 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 08:37:43 ID:n5loEePc]
- >>865
まじめにやってれば半年もあれば開発できるものだしな。
- 867 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 09:30:27 ID:PhkD4GjX]
- 吉里吉里はある意味完成の領域に達してるからな。
KagEXを完成の領域に持ってきた方が、受けが良いんじゃなかろうか。
- 868 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 09:40:26 ID:+dkIAQuX]
- KAGEXはワールド拡張とかの概念や記述が理解できなくて諦めた
- 869 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 09:47:24 ID:sKoqn0LW]
- バグとやらが気になって手がさせない
ところでmixiのレポートであった FLASHで右クリックすると出るFLASH関連のメニューを 出さない方法ってどこかにないだろうか
- 870 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 14:37:43 ID:OhTQHWYF]
- >>866
インタプリタのみを動かすだけなら半年で出来るだろうが 関連するAPIを用意したり付随するツール群を揃えてさらに実用レベルの品質まで持っていくのは数年かかるだろう。 それこそコミッターが居れば今ごろ完成してたかも知れんし。 >>867 あれを使うくらいならMainWindow.tjsを整理するついでに自分で作るってやつが居るんじゃないだろうか。
- 871 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 14:41:59 ID:AuREjKi2]
- >>869
ttp://www.kirikiri.info/bbslog/log/004718 これはどうだろう? KAGEXは機会があれば触ってみればいいんじゃね? バグが〜とか書いてる人のは本当にKAGEXのバグなのか今の所わからんし。 自前スクリプトのバグ、使い方や記述を間違えてる可能性もある。
- 872 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 15:51:31 ID:cADywhdF]
- >>869
このスレをすこしさかのぼるんだ!
- 873 名前:名前は開発中のものです。 mailto:sage [2009/09/25(金) 18:12:35 ID:PhkD4GjX]
- 吉里吉里3の開発室初めてみたけど、描画関係の高速化も期待出来るのか。
吉里吉里でノベル以外を作ってる俺としては頑張ってもらいたいものだ。
- 874 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 01:54:33 ID:cSoIuReO]
- >>861
ありがとうございます。なぜかタイトル画面でしか閉じられなかったりするので色々頑張ってみます。
- 875 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 02:06:02 ID:sCbbckM4]
- 吉里吉里でノベル以外を作る利点てなに?
ノベル以外ならC/C++にluaとかDSL組み込んじゃえばいい気がするんだけど。 そういうDSL上に構築されたゲーム用F/Wもあるしさ。
- 876 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 02:09:34 ID:riSF4elI]
- >>875
ノベルメインでミニゲームをそれなりに本格的にやりたいとしたらどうすりゃいいのかよくわからん。 どこか解説してたりするところない?
- 877 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 02:11:30 ID:tgpICSzg]
- C/C++ が書けない人でも作業できる、とか?
パフォーマンスがさほど要求されない場面なら有効だと思うよ。画像やサウンドの扱いもシンプルだし。
- 878 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 02:15:49 ID:MSxnwiCG]
- >>875-876
汎用ゲームエンジンだと逆にノベル部分がネックになったりするわなぁ。 吉里吉里はその辺、嫌と言うほど作りこまれてるから。 メッセージフレームだしてクリックごとにテキストを切り替える程度と妥協できるなら、 汎用エンジンで作ってゲームをメインにしたらいいかもしれないけどね。
- 879 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 03:50:30 ID: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(); }
- 880 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 12:52:20 ID:O+pMsbT1]
- >>871-872
おお、ありがとう! そうかプラグインでもできたのか どちらも試してみるわ
- 881 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 15:14:47 ID:tgpICSzg]
- >>879
吉里吉里のレイヤって標準機能が少ないだけで概念的にはグラフィックコンテキストそのものだろ 画像だけの独立した概念があるとすっきりするよなぁとは思うけどね
- 882 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 15:19:23 ID:MSxnwiCG]
- まあ、秒間60フレームでヌルヌルぶん回すようにはできてないからな。
- 883 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 19:51:18 ID: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たん。
- 884 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 20:29:13 ID:gKaOv5Va]
- 継続とまともなクロージャ導入してクラスを無くしてほしい
ちゃんとした言語にしたかったらRubyやPythonでも組み込んでくれた方がよっぽど助かる
- 885 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 20:32:28 ID:g2s5GieN]
- C++のBoost.Serializationを参考にTJSでシリアライズのフレームワークを書いてみたけど、
Layerみたいにガチガチな依存関係を持っていてコンストラクタ引数に他オブジェクトを要求するクラスの 外部シリアライザの実装のしかたがどうしても思いつかなくて頓挫。 仕方ないから既存の構築済みオブジェクトをdeserializeに渡してメンバだけ復元するようにした。 オブジェクトの共有が絡んでくると一気にややこしくなる。
- 886 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 21:01:37 ID:tgpICSzg]
- >>883
メモリグラフィックコンテキストが内包してるフレームバッファが見えてるだけ、 と考えれば概念的におかしいところはない。 visible を含むレイヤのツリー配置機能はさらに外枠の構造で、これは 他ではみられない構造だから珍しいけどおかしいところは無いと思う。 Window - Layer までで一つの概念を形成してる。 結局、Image 単体が存在しないから Layer で代用してるのがおかしいだけという話になるんじゃないかと。 実際のところは独自の Image と、それに対応した Layer.drwaImage() を ネイティブプラグインとして作ってしまえばいいだけではある。 というか、LayerExDraw プラグインとして既に1例は存在してる。
- 887 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 22:10:18 ID:riSF4elI]
- ・・・・話してることがさっぱり分からん。
くそう、一応C++とかも勉強してるんだけどなぁ・・・。 WindowsAPIとか弄らないと駄目なのか。 ミニゲームを組み込みたいと思ってはいても、どう実現すれば良いのかさっぱりだ。 マリオくらいならC++で組めるんだけど、どう勉強したらいいんだろう。
- 888 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 23:25:07 ID: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内でのラベルを読んでいるよう思った動作になりませんでした。 呼び出したシナリオのラベルに行きたいのですが、どうすればいいでしょうか?
- 889 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 23:35:07 ID:gKaOv5Va]
- 呼び出し元に依存するならサブルーチンにする意味無いだろ
素直にjump使えばいい
- 890 名前:名前は開発中のものです。 mailto:sage [2009/09/26(土) 23:43:10 ID:g2s5GieN]
- >>887
リポジトリにネイティブプラグインのサンプルソースがごろごろ転がってるから それ読みながら自分で弄ってみるところから始めれば? ttps://sv.kikyou.info/trac/kirikiri/wiki/AboutSubversion そういえば、C++でミニゲーム組み込むならDrawDevice組んで切り替えて ContinuousHandlerでゲームループ呼んでやるのが正当なのかな。 KAGのインタフェースと組み合わせたくて、レンダリング結果を Layerにmemcpyで流し込んでやったら普通に動いたけど糞重かった。
- 891 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 00:41:59 ID:bjD8tvap]
- >>887
吉里吉里を改造せず、独自描画処理を行う C++プログラムを組み込むには、 (1) drawDevice プラグインの形で描画系を作成して独自処理を埋め込む (2) 吉里吉里のウインドウの上に子ウインドウを作成してそこで独自処理を行うプラグインを作成する の二つの方法がある。 前者は吉里吉里の描画内容と自分の描画内容を混ぜ込むことができるが、逆に言うと 吉里吉里の描画処理も自前で書かないといけない。後者は完全に上にかぶさる形での 処理しかできないが、吉里吉里の描画自体は気にする必要がない。 いずれの場合も、必要に応じて吉里吉里がベースのウインドウを破棄する場合があるので、 いつでもその再生成に対応できる組み方をする必要がある。前者は専用のインターフェースからの 呼び返しが来るが、後者は、Window.registerMessageReceived でハンドラを登録して自前で通知をうける必要がある。 マウスやキーボードのイベント処理は、前者の場合はこれもインターフェースから呼び返しが くるのでそれを使う。後者では、自前の Window Procedure に Win32 でイベントが直接来るのでこれを処理する。 メインループ処理は、いずれも吉里吉里の continous Handler からの呼び返しの形で構築する形になる。 これもプラグイン用の専用の口がある。 吉里吉里レポジトリの drawDeviceIrrlicht プラグインが、両者とも実装したサンプルになってるので参考にするといいだろう。 >>890 レイヤへのコピーも、最近はマシンパワーでおしきれば案外動くよw drawDeviceIrrlicht はそのバージョンもある。
- 892 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 01:34:14 ID:w3eCa0aX]
- >>885
おれもやったことあるけど KagPaerserとLayer考えるとC++から叩いた方がいい。 >>886 >レイヤのツリー配置機能はさらに外枠の構造で、これは他ではみられない構造だから珍しい これはこれで曲者な気が。 >Image 単体が存在しないから Layer で代用してるのがおかしい やっぱImageクラスほしいよな・・・。 >>887 設計とプログラミングの概念的な話というか。 勉強ならマリオ作れるならADVエンジンくらい作れると思う。 速度出すにはVMとコンパイラもつくるけど。 ミニゲームはtjsで実装したら? ミニゲームコード実行中はKAGの方からイベントもらわないといけないかもしれないけど。 んでミニゲーム終了時に後始末関数呼んでその戻り値をトリガーにKAG側への復帰処理呼ぶとか。 ミニゲームのループはcontinousHandlerを差し替える。 あとは、終了操作とかした時のための処理を追加か、これはKAG側からミニゲームへ割り込むかミニゲーム側で処理させるか。 tjsでもRPGくらいならマシンパワーでごり押しできるよw
- 893 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 09:27:58 ID:6ih0MpsH]
- 吉里吉里独自?の画像形式に、TLG5・TLG6ってありますよね
png使うよりはこのどっちかの方がやっぱり色々いいと思うんですが、皆さんは使ってます? 自分はpngじゃないとエクスプローラーでサムネイル表示できないのが痛くて、今はpngでやってるんですが
- 894 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 09:50:42 ID:T6nKkldw]
- 圧縮率も良いし、展開も速いから立ち絵に使ってるよ。
スージープラグイン入れればすぐにビュワー表示できるしね。
- 895 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 14:15:33 ID:bjD8tvap]
- >>893
スキップ時とかにあからさまに体感差が出るよ。PNGは展開が重い。 イベント絵はあまり気にならないけど立ち絵は TLG にしたほうがいい
- 896 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 16:54:50 ID:3MK1TE0o]
- もういっそ直線的にpixels[0] から pixels[pixels.length - 1]をヘッダなしにバイナリにぶち込めばいいんじゃね?
読み込むときはint[]に全部readすればいいだけだしw
- 897 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 17:03:18 ID:LZvNFtpc]
- ヘッダが無いと画像サイズを確定できないのだが
- 898 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 17:40:44 ID:WroPin0r]
- つ旧RAW
- 899 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 18:03:17 ID:KXM6pNqY]
- 前景用画像ファイルの運用 ttp://hpcgi1.nifty.com/gutchie/wifky/wifky.pl?p=%BB%CD%CA%FD%BB%B3%CF%C3+-+%BE%AE%A5%CD%A5%BF#p2.6
こういうやり方でも良いと思う
- 900 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 18:38:44 ID:otRLhg/V]
- 立ち絵はTLGで軽くなるけど
表情差分とか小さな画像をTLGに変換すると PNGよりも容量でかくなるのはなんでだ? 不透明度の多さとか関係ある?
- 901 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 19:03:09 ID:3gT7c3A/]
- >>897
ゲーム側でフォーマット決め打ちじゃないか?
- 902 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 20:24:50 ID:CLGXjWHi]
- >>900
ある
- 903 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 22:27:35 ID:K2Cs/ynZ]
- 所謂育成ゲームを作りたいんですけど
これって吉里吉里でも可能ですか?
- 904 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 22:35:41 ID:TW8jXsoW]
- >>903
ゲーム中でどのようなグラフィック表現をしたいのかによる。 画面中にキャラ絵や数値表やいくつかのボタンを配置し、 ボタンその他のウィジェットからの入力で ゲームが進行するように実装するなら 吉里吉里/KAGで十分できるよ。 要領はゲームのオプション画面の実装の仕方と同じ。
- 905 名前:名前は開発中のものです。 mailto:sage [2009/09/27(日) 23:54:52 ID:47oAeYsk]
- [eval exp="f.chara='キャラ名'"]
[eval exp="f.odoroki=f.chara+'_odoroki'"] [image storage="&f.odoroki" layer="1" pos="c" visible="true"] とすると、「キャラ名_odoroki.png」画像が表示されたので [eval exp="'f.star_'+f.chara=1"] と書くと「f.star_キャラ名」に1を代入できると思ったのですがエラーになってできません・・・。 どう書けばいいのでしょうか? 初歩的な質問だとは思いますがよろしくお願いします。
- 906 名前:名前は開発中のものです。 mailto:sage [2009/09/28(月) 00:12:02 ID:xF6tbSO6]
- [eval exp="f['star_'+f.chara]=1"]
- 907 名前:名前は開発中のものです。 mailto:sage [2009/09/28(月) 00:12:13 ID:68KHcIit]
- >>905
このスレ頭からよんでこい
- 908 名前:名前は開発中のものです。 mailto:sage [2009/09/28(月) 00:12:51 ID:+ytX66C8]
- >>905
文字列を動的にTJSのコードに置き換える処理は、 必要上仕方なくやる場合もあるけど、基本的にはお勧めできない。 # [eval exp="'f.star_'+f.chara=1"] のこと そういうことなら、 f.stars は辞書型 %[] にしておいて、 [eval exp="'f.star[f.chara]=1"] という形で設定してあげるといいよ。
- 909 名前:名前は開発中のものです。 mailto:sage [2009/09/28(月) 19:32:57 ID:9KpicER+]
- >>904
ありがとうございます 作りたいのはそのタイプなので早速挑戦してみます
- 910 名前:名前は開発中のものです。 mailto:sage [2009/09/28(月) 21:05:31 ID:NcE8Gw/B]
- すみません、クリッカブルマップについての質問なんですが。
クリッカブルマップのある画像を常に表示しておき、プレイヤーがテキストを読み進んでいる 合間の好きな時に画像をクリックすると、別のメッセージレイヤが開いて何らかのメッセージを表示。 左クリックをするとそのメッセージレイヤが閉じてまた元の普通の画面に戻るというのをやりたいんです。 しかし私のクリッカブルマップの知識では、クリックすると特定のksファイルのtargetに跳んでいき メッセージの表示をした後、戻る時はjumpになるので戻る場所のtargetを指定しなければなりません。 上記の様にする為にreturnを使いたいのですが、この場合callタグを何処に置けばいいのか解りません。 maファイルでの書式はKAGと違うようですし、まだKAG上のスクリプトしか使えないんですが こうした事をするにはTJSを弄らないとムリでしょうか。
- 911 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 04:38:45 ID:uUxuzN7L]
- クリッカブルマップに見えるけど実はボタン並べてるだけってのでいいじゃない?
- 912 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 05:11:32 ID:e8Lvp+4/]
- 確かに。不定形のボタンは簡単に作れるからなぁ。
- 913 名前:910 mailto:sage [2009/09/29(火) 07:43:25 ID:7jdLEmGf]
- アドバイスありがとうございます。
実を言うと、グラフィカルボタンは構造が理解出来ていないらしく、 どうしてもボタン画像そのものを表示させることができないんです。 そこで何度も作ったことがあるクリッカブルマップで代用出来ないかと 思ったんですが。 グラフィカルボタンはメッセージレイヤ上に現れるんですよね? [layopt layer="message0" page=fore visible=true]\ [locate x=100 y=400]\ [button graphic="ボタン.png" target="*osita"]\ [s] これだと何も無いメッセージレイヤが表示されるだけで、そのまま[s]に従って 止まってしまいます。 コンソールで見るとボタン.pngは正常に読み込まれているらしいんですが。
- 914 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 07:51:53 ID:n3xZFulj]
- >>913
currentレイヤは確認したかね
- 915 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 10:02:36 ID:e8Lvp+4/]
- >>913
ボタンを表示するサンプルを動かして考えたかい?
- 916 名前:910=913 mailto:sage [2009/09/29(火) 16:48:59 ID:NgnztUMM]
- グラフィカルボタンの件が解決しました!
>>914,915 これまで動作を確かめる時は製作中のスクリプトの合間の部分でやっていたので、 今回はボタン表示だけのサンプルとして書いてみました。 念の為にcurrentも指定し、positionでメッセージレイヤも画面いっぱいに広げてみたのですが やはりただ真っ暗な画面が映るだけ。 しかしようやく原因が解りました。 私はメッセージレイヤのサイズをゲーム内で頻繁に変える為、デフォルトの設定は 当てにしていないので適当な数字を入れていたのですが、それのmarginがかなり大きく なっていたのでした。 だからテストをする時にはメッセージレイヤがそのデフォルト設定になり、メッセージレイヤの 中に入っているつもりでも画像がmargin部分に引っかかって表示されなかった…というお粗末。 こんな事で2年以上もグラフィカルボタンをあきらめていたとは。 つまらない事でお騒がせしてすみません。しかしおかげで重要なコマンドが使えるようになりました。 >>910の件はグラフィカルボタンでやってみます。ありがとうございました!
- 917 名前:913 mailto:sage [2009/09/29(火) 18:40:17 ID:NgnztUMM]
- 何度もすみません。
グラフィックボタンは使えるようになりましたが、やっぱり>>910のような動作をする為には 何かが不足のようです。 [button graphic="ボタン.png" exp="kag.callExtraConductor('button_oshi.ks', '*説明')"]\ [s] …としてcallタグの代わりになり、button_oshi.ksの最後にretrunを入れる事に成功しましたが、 これで戻ってくる場所は上記タグの[s]の直前になる為、やはりそこで終わってしまいます。 ボタンを押す前の状態に戻ってくる方法はないでしょうか…。
- 918 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 21:14:30 ID:myn7KpTb]
- >>917
ボタンを押す前の状態ってのがなんなのか、 何がどう上手くいかないのかがさっぱりわからん。 勘で答えるとテキストかボタンのメッセージレイヤの内容を消去してるせいだと思う。 *説明から[return]の間に[ct]や[cm]があるとか、描画先を変更せずに[er]してるとか。
- 919 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 22:38:47 ID:8ss2KQff]
- >>917
俺の場合は、ボタンを配置する基本の処理の流れは、こんな感じで組んでいるけど、どう? *ボタンを押す前の状況 画面を更新してボタンを配置する 1つ目の[butt]を、打鍵で フラグに1を入れて *打鍵した ラベルに行く 2つ目の[butt]を、打鍵で フラグに2を入れて *打鍵した ラベルに行く [s] ↑ここで打鍵まちにする *打鍵した フラグが1ならば[call]1のファイルにいってreturnでここに戻ってくる フラグが2ならば[call]2のファイルにいってreturnでここに戻ってくる [jump] *ボタンを押す前の状況 の、ラベルに戻る
- 920 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 23:23:29 ID:TftUuxwQ]
- まともにリファレンスも呼んでいなさげな913がそろそろウザくなってきた
もっと具体的にやりたいことの仕様説明をしろよチンカス どうやらオンラインヘルプっぺえ機能がやりたいようなので勝手に断定して話を進めると、 ヘルプ用レイヤをつくってそこにテキストを書き、ボタンによってレイヤのvisibleを トグルさせるのが簡単かつメンテしやすいのではないかと思う 挙動をモーダルにしておけば、テキスト自体はマクロで呼び出せるしな
- 921 名前:910=913=916=917 mailto:sage [2009/09/30(水) 01:20:01 ID:RibCgSc/]
- すみません。すっかり煮詰まった状態でテストしながら書き込んでいた為、
何だか訳の解らないことを言っていたようです。 やりたい事が不明という点。>>910の4行目までに書いたことが全てでして、 考えてみればボタンの機能は、正にそういうことをする為のものなので出来ないはずが なかったんですね。 「押す前の状態」とかややこしい事を言ってしまいましたが、ボタンを押した時に 跳んだ場所から抜け出せない(うまく戻って来れない)というだけの事でした。 >>919さんのように書いて、>>918さんの指摘も気をつけるようにしているつもりなのですが、 どうもうまく行きません。 >>916で急にボタン画像を表示できるようになったことに浮かれてしまいましたが、 まだ構造の方を理解しきれていないようです。 ただ書式の基本のこととは言え、持っているマニュアル本にはボタンについての項目がなく、 KAGリファレンスや幾つかの講座も覗いてみたのですが、グラフィカルボタンについては説明が少なくて 難航しています。 これ以上書式の基本のような事で時間をかけるのは、ここではスレ汚しになってしまいそうなので 質問はここまでにしたいと思います。 時間をかけて独力で調べ直し、うまく行ったらスレタイの"雑談"として報告しに来ます。 ちなみに、>>920さんのやり方が確かに一番私のイメージしてるものに近く簡単なようです。 是非この方法を使わせていただこうと思っています。
- 922 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 01:33:58 ID:uFdClSf4]
- >>921
いや、だからサンプルを確認したのかと。
- 923 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 01:59:23 ID:RibCgSc/]
- えーと、サンプルというのはどういう事でしょう。
リファレンスや色々な講座にある書式、こちらで書いていただいた スクリプト等をそのままコピペして試してみてダメだったのですが…。
- 924 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 02:20:16 ID:uFdClSf4]
- >>923
kag3pluginの中にsampleフォルダがあるでしょ。 そろそろ「何考えてるの? 死ぬの?」を発動してもいい?
- 925 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 03:44:37 ID:9xQ+gvHq]
- んでまぁ、何がなにやら困ったらあれだ
returnタグは戻り先を指定出来るんだから、ボタン(マップもどきか?)を描画する先頭のラベルに飛ばせばいいんじゃない? そうなると何でcallで飛んだんだ?って気はするけど。 ;MAP描画 *map [button 押したら*subをcallする感じの] [s] ;押した先の画面描画 *sub ;[s]で止めてbuttonで飛ばすか[p]だか何かそういう感じ *ret [return 戻り先を*mapに指定] ちょこっとこみいった事をしたいのであれば、リファレンスとOUTFOCUSを端から端まで目を通して軽く記憶に留めとく位の事はしたほうがいいと思う。 KAGがどんな機能を持っててどんな事が出来そうか想像しながらリファレンスを読むのは楽しいと思うんだけどな。 ゲームの完成とは直接つながらない時間の使い方なのは否定しないけども。
- 926 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 04:16:33 ID:s44Wvcu0]
- ここと公式で聞いてみて理解できなかったら仕様変更したほうがいいと思う。
そんなところに時間かけるだけ無駄。
- 927 名前:名前は開発中のものです。 mailto:sage [2009/09/30(水) 06:55:59 ID:dVOo3BQr]
- >ボタンを押した時に跳んだ場所から抜け出せない(うまく戻って来れない)
|

|