自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
吉里吉里スレ過去ログ倉庫
ttp://bbs.bokunatu.com/krkr/
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/
吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/
ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。
必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その28
http://peace.2ch.net/test/read.cgi/gamedev/1391503520/
KAGレベルしか使っていなかった人は移り始めていると思う
で、そういう人は吉里吉里Zに移行する必要もない
TJSでプラグインを書きまくってるしsystemフォルダのファイルもかなり弄ってるんだけど、
そっか、そのほうが移行しにくいのか。当たり前だよね。
今も開発が進んでいてVC++でビルドされているってのは魅力的なんだけどなあ。
出来そうな気がするんだけど、文章を表示させつつ処理を続けるって出来るのかな?
文章が流れてる最中でクリックすると、次のメッセージじゃなくて行末まで表示する処理をしてしまうけど、
これを無視して次の文章や画像表示に移りたいんだけど、難しい?
コンフィグ画面作ってて、メッセージスピードのプレビューを表示させてたら、次のなんらかのボタンを押すためにはは
(クリック1回) プレビューの行末まで一気に表示
(クリック2回) ボタンを押下出来る
の2クリック必要なんだ。 これを1クリックでボタンを押せるようにメッセージ表示途中の処理待ちを無くしたいんだ。
mainwindowのどこかを弄れば出来そうな気もするんだけど、わかる人がいたら教えてほしい。
KAG-EXと吉里吉里Zの両バージョンで組んでる最中。
http://ayaemo.skr.jp/blog/2008/01/post-597.html#kirikiri_5_2_3
文字表示速度プレビューのサンプルだけど参考にならないかな
要はこのサンプルで、長文を流す>文字表示作度を弄る>まだ長文が流れてる最中にほかのボタン等(たとえば全画面とか)を反映させたいということなんだけど
通常の吉里吉里の仕様だと文章が流れている最中には、文末までの即時表示が優先されてほかの画面上の操作を受け付けてくれないと言う状態をなんとかしたいの
文章が流れている途中にクリックしたら即時停止(もしくはそのまま文章が流れつつ)ほかのボタンやスライダーを押下出来るっていうのがどこを弄るのか良くわからない……
アルテミスとかQLIEだとふつうにできるので、まさかこんなところでハマるとは思ってなかった
うーん……俺はこのサンプルほぼそのまま使ってできてるけどなあ
メッセージレイヤはプレビュー専用のものを確保してる?
他のボタンと同じレイヤにしてると駄目だよ
別レイヤーに書いて、メッセージを表示命令を出したら即別レイヤーに切り替えているけどダメみたい
>>17のサイドメニューのサンプルでも、長文を流しながらスピードシークバーを弄って
まだ文章が流れてる最中に全画面などのボタンを押そうとすると即時押せなかったりしてる(クリックはそっちのボタンに反映してるから、メッセージ表示には使われてないっぽいけど)
それとも、見てる場所を間違えてるのかな?
;//-------------------------------
;~message4がカレント メッセージスピード変更ボタンを押す
[position layer="message6" index=1012001 left="表示座標X" top="表示座標Y"続く~
~続き width=1280 height=720 opacity=255 marginl=0 margint=0 marginr=0 marginb=0 draggable=false visible=true cond="f.config_page ==0" visible=true opacity=0]
;↓メッセージレイヤーはindexセットできないようだから強制的に
[eval exp="kag.fore.messages[6].absolute=1012001"]
[current layer="message6" page=fore]
[locklink]
[endnowait]
メッセージスピードが変更されました。
[nowait]
[unlocklink]
[current layer="message4" page=fore]
;画面リフレッシュへjump
[s]
こんな感じで組んでる。 今は誤動作が起きるのでlocklinkを入れてる。
単にメッセージスピードを確認させるために表示したいだけなんだけど、表示終わるか1クリックして表示を終端まで行かせないと次のクリックが出来ないからはまってしまったの。
もしかしてここのをダウンロードして動かしてみたのかな?
http://ayaemo.skr.jp/blog/2008/01/kirikiri-professional01.html#samples
このダウンロードファイルの中には表示速度のプレビューのサンプルは入ってないよ
あとたぶんKAGだけで表示速度のプレビューは無理なんじゃないかな
ダウンロードで試していたorz
やっぱり無理なのかね
ワムさんは実現してるっぽいからなんとかなりそうな気もするが、根本的に書き換えないといけないのかな
あれこれ考えるより、あのサンプル使うのが簡単だよ(経験者談)
別レイヤーに書いて、メッセージを表示命令を出したら即別レイヤーに切り替えているけどダメみたい
>>17のサイドメニューのサンプルでも、長文を流しながらスピードシークバーを弄って
まだ文章が流れてる最中に全画面などのボタンを押そうとすると即時押せなかったりしてる(クリックはそっちのボタンに反映してるから、メッセージ表示には使われてないっぽいけど)
それとも、見てる場所を間違えてるのかな?
;//-------------------------------
;~message4がカレント メッセージスピード変更ボタンを押す
[position layer="message6" index=1012001 left="表示座標X" top="表示座標Y"続く~
~続き width=1280 height=720 opacity=255 marginl=0 margint=0 marginr=0 marginb=0 draggable=false visible=true cond="f.config_page ==0" visible=true opacity=0]
;↓メッセージレイヤーはindexセットできないようだから強制的に
[eval exp="kag.fore.messages[6].absolute=1012001"]
[current layer="message6" page=fore]
[locklink]
[endnowait]
メッセージスピードが変更されました。
[nowait]
[unlocklink]
[current layer="message4" page=fore]
;画面リフレッシュへjump
[s]
こんな感じで組んでる。 今は誤動作が起きるのでlocklinkを入れてる。
単にメッセージスピードを確認させるために表示したいだけなんだけど、表示終わるか1クリックして表示を終端まで行かせないと次のクリックが出来ないからはまってしまったの。
もしかしてここのをダウンロードして動かしてみたのかな?
http://ayaemo.skr.jp/blog/2008/01/kirikiri-professional01.html#samples
このダウンロードファイルの中には表示速度のプレビューのサンプルは入ってないよ
あとたぶんKAGだけで表示速度のプレビューは無理なんじゃないかな
ダウンロードで試していたorz
やっぱり無理なのかね
ワムさんは実現してるっぽいからなんとかなりそうな気もするが、根本的に書き換えないといけないのかな
あれこれ考えるより、あのサンプル使うのが簡単だよ(経験者談)
俺も良いインストーラーがあったら教えて欲しい。
Inno Setupを使おうか検討しているんだけど、あれってファイルを固めて
しまうみたいでそれが嫌なんだよな。
おお、固めない設定があったんだ。教えてくれてありがとー。
できれば具体的だと嬉しい。
要望ということは公開する予定があるのかな?
単発のタグを要望すると仕様が肥大化するので
マクロを強化してほしいかな
マクロのどんなところ?
マクロ定義で、使用時に省略した引数に初期値を使うようにするのは入れる予定。
[macro name=abc var=3]
[emb exp=mp.var]
[endmacro]
みたいなの。
不満は組んでるときに出てくるので
急に聞かれても個別例はパッと出てこないけど
全体的に思うのはKAGとTJSを
行ったり来たりしなくて済むようにしてほしい
具体的にはたとえばマクロだとできないから
サブルーチンに飛んでループ処理するとか
だから要望としてはマクロでもどこでも
KAGでループできるようにしてほしい
KAGでのループは、既にExtKAGParserというのがあって、そっちで
できるようになってるんだよね。実は 44 のも実装されてた。
ttp://www.geocities.jp/keep_creating/krkrplugins/ExtKAGParser/ExtKAGParser.txt
これで不足してたら教えて。
今回探してみて思ったけど、「こんなの欲しいなぁ」ってだけの情報でも、
どっかに書いてあるとあとから見て役に立つね。
KAG拡張にはすでに
KAGEXがある
もしそれと衝突する場合
そうとう便利じゃないと普及しないと思う
どれくらいの規模の物を
配布しようとしてるか分からないけど
既にあるもので満足してるならそれを使えばいい。
そっちには無くて、でも欲しい便利機能などがあれば知りたい。
普及させるのが目的じゃなくて、俺(やみんな)が楽にゲーム作れるようになるのが目的。
>>49
それは簡単に対応できるけど、それ嬉しいかな…?ちょっと考えてみる。
>>51
KAGParserの範囲じゃなくて、メッセージレイヤの拡張だね。
メッセージレイヤ結構書き換える必要があってオオゴトだけど、確かにそういうの欲しいとは思う。
何が一番欲しいか考えたんだけど
「ソースが整理されてドキュメントが追加されて
クリーンで改造しやすくなったKAG」かな
それで欲しい機能は各自で実装するようにすれば
仕様が肥大化せず最もスマートな形だと思う
最近できた吉里吉里ZのKAG版みたいな感じ
イメージとしては「KAGZ」みたいな?
補足すると
KAG本体の話になっちゃったけど
KAGParser限定の話だとしても
吉里吉里ZではDLLによる
プラグイン仕様になったことだし
改造しやすくという要望は同じ
KAGParserはもうプラグイン化できてるから、その意味では既に各自が拡張できる下地はあると思うよ。
それ以外の仕組みで拡張を考えるのは難しいね…
>>55
①は面白いね。
デリミタとして(今は空白なのを)','も使えるようにして、マクロ側でmp["1"]に一つ目の引数(の名前)、mp["2"]で二つ目の引数(の名前)…を代入しとけば、マクロ中で%1, %2 とかで参照できそう。これは検討してみる。
②は、|の後の見出し文字列のことだよね?確かにそれは便利そう。文法がはっきりすれば実装してみたい。たとえば、
*label|+4
良子「らめー」
は
*label|良子「ら
良子「らめー」
と同義ということでいい?
③は[emb]のことかな。確かに面倒だ。{}で囲んだら[eval exp=""]と同等と考える、みたいなのはできると思うが、そうすると'{'が普通の文章中で使えなくなっちゃうんだよね…。
[&ABC]を[emb exp="ABC"]と同等にする、とかならアリかも。どうかな。
>>56
quakeの中の話はKAGParserじゃないんだけど、気持ちはわかる。
ただ、Win8対応は本家でKAGシステム側で対応中だから待つか、今のブランチを使うとか。
ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/branches/kag3_win8fix
あと、quakeの拡張はプラグインがいくつか既に公開されてるからそれも検討したらどうかな。コレとか。
ttp://koumei.rejec.net/html/exp_quake.html
実はExtKAGPerserの中の人に連絡とってみた。一緒に色々検討してみるつもり。
>KAGParserはもうプラグイン化できてる
それはそうなんだけど
>それ以外の仕組みで拡張を考えるのは難しい
とは思わない
だって吉里吉里そのものがノベルゲームエンジンに
新しい拡張の仕組みを用意したわけじゃん
じゃあ具体的にどんな拡張の仕組みがあるかといえば
たとえばKAG(Parser)をプラグインで拡張できるみたいな
プラグインと称する仕組みもすでにあるんだけど
洗練されて使いやすいとは思えない
ソース見たら、今でもできるようになってたよ。
>>58
汎用的なプラグインの仕組みかー。それは今の俺の力では無理なんで、今回はスキップさせてくれ…。
どっちかというと美しいインターフェースの設計みたいな、そういう力が必要だなぁ。できる人、頼む。
お疲れさまです
KAGPerserはシナリオ部分ですね失礼しました
[s]タグやラベル通過だけでなく
[l]タグ直前までの既読判定もできるような何かが欲しいんですが
これはKAGParser、KAGParser.onLabel範疇でしょうか?
商業PCゲーみたいに既読文章の文字の色を変える機能を
実装しようとしたんですが既読判定は[s]タグかラベル通過のみで
[l]タグで止まってる状態でセーブして、それをロードしてもうまくいかないというか…
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
あとKAGの守備範囲かどうか考えてないけど
思いついた欲しい機能挙げていい?
ネットのブラウザみたいに
スクロールバーで上下スクロールして
読むタイプのメッセージウィンドウ
クリックで改ページするんじゃなくて
既にあるもので満足してるならそれを使えばいい。
そっちには無くて、でも欲しい便利機能などがあれば知りたい。
普及させるのが目的じゃなくて、俺(やみんな)が楽にゲーム作れるようになるのが目的。
>>49
それは簡単に対応できるけど、それ嬉しいかな…?ちょっと考えてみる。
>>51
KAGParserの範囲じゃなくて、メッセージレイヤの拡張だね。
メッセージレイヤ結構書き換える必要があってオオゴトだけど、確かにそういうの欲しいとは思う。
何が一番欲しいか考えたんだけど
「ソースが整理されてドキュメントが追加されて
クリーンで改造しやすくなったKAG」かな
それで欲しい機能は各自で実装するようにすれば
仕様が肥大化せず最もスマートな形だと思う
最近できた吉里吉里ZのKAG版みたいな感じ
イメージとしては「KAGZ」みたいな?
補足すると
KAG本体の話になっちゃったけど
KAGParser限定の話だとしても
吉里吉里ZではDLLによる
プラグイン仕様になったことだし
改造しやすくという要望は同じ
KAGParserはもうプラグイン化できてるから、その意味では既に各自が拡張できる下地はあると思うよ。
それ以外の仕組みで拡張を考えるのは難しいね…
>>55
①は面白いね。
デリミタとして(今は空白なのを)','も使えるようにして、マクロ側でmp["1"]に一つ目の引数(の名前)、mp["2"]で二つ目の引数(の名前)…を代入しとけば、マクロ中で%1, %2 とかで参照できそう。これは検討してみる。
②は、|の後の見出し文字列のことだよね?確かにそれは便利そう。文法がはっきりすれば実装してみたい。たとえば、
*label|+4
良子「らめー」
は
*label|良子「ら
良子「らめー」
と同義ということでいい?
③は[emb]のことかな。確かに面倒だ。{}で囲んだら[eval exp=""]と同等と考える、みたいなのはできると思うが、そうすると'{'が普通の文章中で使えなくなっちゃうんだよね…。
[&ABC]を[emb exp="ABC"]と同等にする、とかならアリかも。どうかな。
>>56
quakeの中の話はKAGParserじゃないんだけど、気持ちはわかる。
ただ、Win8対応は本家でKAGシステム側で対応中だから待つか、今のブランチを使うとか。
ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/branches/kag3_win8fix
あと、quakeの拡張はプラグインがいくつか既に公開されてるからそれも検討したらどうかな。コレとか。
ttp://koumei.rejec.net/html/exp_quake.html
実はExtKAGPerserの中の人に連絡とってみた。一緒に色々検討してみるつもり。
>KAGParserはもうプラグイン化できてる
それはそうなんだけど
>それ以外の仕組みで拡張を考えるのは難しい
とは思わない
だって吉里吉里そのものがノベルゲームエンジンに
新しい拡張の仕組みを用意したわけじゃん
じゃあ具体的にどんな拡張の仕組みがあるかといえば
たとえばKAG(Parser)をプラグインで拡張できるみたいな
プラグインと称する仕組みもすでにあるんだけど
洗練されて使いやすいとは思えない
ソース見たら、今でもできるようになってたよ。
>>58
汎用的なプラグインの仕組みかー。それは今の俺の力では無理なんで、今回はスキップさせてくれ…。
どっちかというと美しいインターフェースの設計みたいな、そういう力が必要だなぁ。できる人、頼む。
お疲れさまです
KAGPerserはシナリオ部分ですね失礼しました
[s]タグやラベル通過だけでなく
[l]タグ直前までの既読判定もできるような何かが欲しいんですが
これはKAGParser、KAGParser.onLabel範疇でしょうか?
商業PCゲーみたいに既読文章の文字の色を変える機能を
実装しようとしたんですが既読判定は[s]タグかラベル通過のみで
[l]タグで止まってる状態でセーブして、それをロードしてもうまくいかないというか…
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
タグの属性の=の前後に空白を入れても認識するようにして欲しいっす。
こんな感じで。
[call target = *subroutine]
既にあるもので満足してるならそれを使えばいい。
そっちには無くて、でも欲しい便利機能などがあれば知りたい。
普及させるのが目的じゃなくて、俺(やみんな)が楽にゲーム作れるようになるのが目的。
>>49
それは簡単に対応できるけど、それ嬉しいかな…?ちょっと考えてみる。
>>51
KAGParserの範囲じゃなくて、メッセージレイヤの拡張だね。
メッセージレイヤ結構書き換える必要があってオオゴトだけど、確かにそういうの欲しいとは思う。
何が一番欲しいか考えたんだけど
「ソースが整理されてドキュメントが追加されて
クリーンで改造しやすくなったKAG」かな
それで欲しい機能は各自で実装するようにすれば
仕様が肥大化せず最もスマートな形だと思う
最近できた吉里吉里ZのKAG版みたいな感じ
イメージとしては「KAGZ」みたいな?
補足すると
KAG本体の話になっちゃったけど
KAGParser限定の話だとしても
吉里吉里ZではDLLによる
プラグイン仕様になったことだし
改造しやすくという要望は同じ
KAGParserはもうプラグイン化できてるから、その意味では既に各自が拡張できる下地はあると思うよ。
それ以外の仕組みで拡張を考えるのは難しいね…
>>55
①は面白いね。
デリミタとして(今は空白なのを)','も使えるようにして、マクロ側でmp["1"]に一つ目の引数(の名前)、mp["2"]で二つ目の引数(の名前)…を代入しとけば、マクロ中で%1, %2 とかで参照できそう。これは検討してみる。
②は、|の後の見出し文字列のことだよね?確かにそれは便利そう。文法がはっきりすれば実装してみたい。たとえば、
*label|+4
良子「らめー」
は
*label|良子「ら
良子「らめー」
と同義ということでいい?
③は[emb]のことかな。確かに面倒だ。{}で囲んだら[eval exp=""]と同等と考える、みたいなのはできると思うが、そうすると'{'が普通の文章中で使えなくなっちゃうんだよね…。
[&ABC]を[emb exp="ABC"]と同等にする、とかならアリかも。どうかな。
>>56
quakeの中の話はKAGParserじゃないんだけど、気持ちはわかる。
ただ、Win8対応は本家でKAGシステム側で対応中だから待つか、今のブランチを使うとか。
ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/branches/kag3_win8fix
あと、quakeの拡張はプラグインがいくつか既に公開されてるからそれも検討したらどうかな。コレとか。
ttp://koumei.rejec.net/html/exp_quake.html
実はExtKAGPerserの中の人に連絡とってみた。一緒に色々検討してみるつもり。
>KAGParserはもうプラグイン化できてる
それはそうなんだけど
>それ以外の仕組みで拡張を考えるのは難しい
とは思わない
だって吉里吉里そのものがノベルゲームエンジンに
新しい拡張の仕組みを用意したわけじゃん
じゃあ具体的にどんな拡張の仕組みがあるかといえば
たとえばKAG(Parser)をプラグインで拡張できるみたいな
プラグインと称する仕組みもすでにあるんだけど
洗練されて使いやすいとは思えない
ソース見たら、今でもできるようになってたよ。
>>58
汎用的なプラグインの仕組みかー。それは今の俺の力では無理なんで、今回はスキップさせてくれ…。
どっちかというと美しいインターフェースの設計みたいな、そういう力が必要だなぁ。できる人、頼む。
お疲れさまです
KAGPerserはシナリオ部分ですね失礼しました
[s]タグやラベル通過だけでなく
[l]タグ直前までの既読判定もできるような何かが欲しいんですが
これはKAGParser、KAGParser.onLabel範疇でしょうか?
商業PCゲーみたいに既読文章の文字の色を変える機能を
実装しようとしたんですが既読判定は[s]タグかラベル通過のみで
[l]タグで止まってる状態でセーブして、それをロードしてもうまくいかないというか…
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
ソース見たら、今でもできるようになってたよ。
>>58
汎用的なプラグインの仕組みかー。それは今の俺の力では無理なんで、今回はスキップさせてくれ…。
どっちかというと美しいインターフェースの設計みたいな、そういう力が必要だなぁ。できる人、頼む。
中の人まだここ見てるかな。
マクロ中で[iscript]~[endscript]が使えるようになるとありがたいんだけど
無理でしょうか?
ExtKAGParserの中の人への意見は、彼(彼女?)の掲示板にした方がいいよ。ここを見てるかどうかわかんないし。
マクロ中で[iscropt][endscript]実装するのは実は結構難しいんだよね。
割り切ってTJSの文字列中だろうがなんだろうが[endscript]が出てきたら何が何でも終わり!のように
実装するなら楽だけど。というか99%はそれで十分なんだろうけど。
タグ途中での改行が認められてるパーサを使うなら、[eval] で代用したらどう?
そっか、難しいんだ。
[eval]で代用すると面倒そうだから、今まで通りマクロからサブルーチンに飛ばすか
TJSで関数を作るかしてそこに書くわw
ExtKAGParserは、マクロ中の[iscript]に対応したってさ。
おお、ありがたいな。次の開発でぜひ使わせてもらおう。
KAGParserは、KAGスクリプトを解析してタグを返したり、マクロ定義したり、[if]とか[jump]とかの制御構文を実行したりするもの。
画像に(というかLayerクラスに)属性追加したりはしないよ。
コレ↓ね。
ttp://devdoc.kikyou.info/tvp/docs/kr2doc/contents/f_KAGParser.html
①マクロ限定でもいいんだけど、[char,1,1,3,4]とか[wait,1000]みたいに引数をカンマで渡したい。
$_とか$1みたいな形で引き出せると嬉しいにゃイコール撃ちたくない・・・[cus_wait w1000]みたいなのだと複数割り当てられないし。
②*chap01_0251|○○「ら、らめぇ
的なセーブラベル作るの大変。セーブラベル作成時に自動的に次の行の頭何文字か持ってくる/こないと選択式に出来ないだろうか
③evalのコマンドをもう少し簡略化して欲しい。
*check_
{var char_name='童貞ちゃん'}
{var var1=0}
{static var VAR1MAX=10}
ドコにお宝あるかなぁ[s]
*check
[er]{&char_name}ちゃん!お疲れ様!いま{&var1++.'/'.&VAR1MAX}個だよ。あと{&VAR1MAX-&var1}個集めればクリアだよ![s]
的な呼び方KAGからできたら楽そうなんだけど・・・むり?[eval exp=""]っていちいち打つのだるい上に変数確認めんどひ
KAGParserはもうプラグイン化できてるから、その意味では既に各自が拡張できる下地はあると思うよ。
それ以外の仕組みで拡張を考えるのは難しいね…
>>55
①は面白いね。
デリミタとして(今は空白なのを)','も使えるようにして、マクロ側でmp["1"]に一つ目の引数(の名前)、mp["2"]で二つ目の引数(の名前)…を代入しとけば、マクロ中で%1, %2 とかで参照できそう。これは検討してみる。
②は、|の後の見出し文字列のことだよね?確かにそれは便利そう。文法がはっきりすれば実装してみたい。たとえば、
*label|+4
良子「らめー」
は
*label|良子「ら
良子「らめー」
と同義ということでいい?
③は[emb]のことかな。確かに面倒だ。{}で囲んだら[eval exp=""]と同等と考える、みたいなのはできると思うが、そうすると'{'が普通の文章中で使えなくなっちゃうんだよね…。
[&ABC]を[emb exp="ABC"]と同等にする、とかならアリかも。どうかな。
>>56
quakeの中の話はKAGParserじゃないんだけど、気持ちはわかる。
ただ、Win8対応は本家でKAGシステム側で対応中だから待つか、今のブランチを使うとか。
ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/branches/kag3_win8fix
あと、quakeの拡張はプラグインがいくつか既に公開されてるからそれも検討したらどうかな。コレとか。
ttp://koumei.rejec.net/html/exp_quake.html
実はExtKAGPerserの中の人に連絡とってみた。一緒に色々検討してみるつもり。
>KAGParserはもうプラグイン化できてる
それはそうなんだけど
>それ以外の仕組みで拡張を考えるのは難しい
とは思わない
だって吉里吉里そのものがノベルゲームエンジンに
新しい拡張の仕組みを用意したわけじゃん
じゃあ具体的にどんな拡張の仕組みがあるかといえば
たとえばKAG(Parser)をプラグインで拡張できるみたいな
プラグインと称する仕組みもすでにあるんだけど
洗練されて使いやすいとは思えない
ソース見たら、今でもできるようになってたよ。
>>58
汎用的なプラグインの仕組みかー。それは今の俺の力では無理なんで、今回はスキップさせてくれ…。
どっちかというと美しいインターフェースの設計みたいな、そういう力が必要だなぁ。できる人、頼む。
お疲れさまです
KAGPerserはシナリオ部分ですね失礼しました
[s]タグやラベル通過だけでなく
[l]タグ直前までの既読判定もできるような何かが欲しいんですが
これはKAGParser、KAGParser.onLabel範疇でしょうか?
商業PCゲーみたいに既読文章の文字の色を変える機能を
実装しようとしたんですが既読判定は[s]タグかラベル通過のみで
[l]タグで止まってる状態でセーブして、それをロードしてもうまくいかないというか…
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
本家版[quake]タグのwin8フルスク対処とか拡張欲しいです
今の[quake]は大雑把な縦揺れ、横揺れのみだと思うんだけど
自然で滑らかな揺れとか揺り戻しの設定が欲しいっていうか…
KAGParserはもうプラグイン化できてるから、その意味では既に各自が拡張できる下地はあると思うよ。
それ以外の仕組みで拡張を考えるのは難しいね…
>>55
①は面白いね。
デリミタとして(今は空白なのを)','も使えるようにして、マクロ側でmp["1"]に一つ目の引数(の名前)、mp["2"]で二つ目の引数(の名前)…を代入しとけば、マクロ中で%1, %2 とかで参照できそう。これは検討してみる。
②は、|の後の見出し文字列のことだよね?確かにそれは便利そう。文法がはっきりすれば実装してみたい。たとえば、
*label|+4
良子「らめー」
は
*label|良子「ら
良子「らめー」
と同義ということでいい?
③は[emb]のことかな。確かに面倒だ。{}で囲んだら[eval exp=""]と同等と考える、みたいなのはできると思うが、そうすると'{'が普通の文章中で使えなくなっちゃうんだよね…。
[&ABC]を[emb exp="ABC"]と同等にする、とかならアリかも。どうかな。
>>56
quakeの中の話はKAGParserじゃないんだけど、気持ちはわかる。
ただ、Win8対応は本家でKAGシステム側で対応中だから待つか、今のブランチを使うとか。
ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/branches/kag3_win8fix
あと、quakeの拡張はプラグインがいくつか既に公開されてるからそれも検討したらどうかな。コレとか。
ttp://koumei.rejec.net/html/exp_quake.html
実はExtKAGPerserの中の人に連絡とってみた。一緒に色々検討してみるつもり。
>KAGParserはもうプラグイン化できてる
それはそうなんだけど
>それ以外の仕組みで拡張を考えるのは難しい
とは思わない
だって吉里吉里そのものがノベルゲームエンジンに
新しい拡張の仕組みを用意したわけじゃん
じゃあ具体的にどんな拡張の仕組みがあるかといえば
たとえばKAG(Parser)をプラグインで拡張できるみたいな
プラグインと称する仕組みもすでにあるんだけど
洗練されて使いやすいとは思えない
ソース見たら、今でもできるようになってたよ。
>>58
汎用的なプラグインの仕組みかー。それは今の俺の力では無理なんで、今回はスキップさせてくれ…。
どっちかというと美しいインターフェースの設計みたいな、そういう力が必要だなぁ。できる人、頼む。
お疲れさまです
KAGPerserはシナリオ部分ですね失礼しました
[s]タグやラベル通過だけでなく
[l]タグ直前までの既読判定もできるような何かが欲しいんですが
これはKAGParser、KAGParser.onLabel範疇でしょうか?
商業PCゲーみたいに既読文章の文字の色を変える機能を
実装しようとしたんですが既読判定は[s]タグかラベル通過のみで
[l]タグで止まってる状態でセーブして、それをロードしてもうまくいかないというか…
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
ってデザインとか演出やってて思います……
KAGだけでループ処理出来たら楽だなあ
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
これ俺も欲しい
吉里吉里でなんかいい方法ないかな
パッと思いついたすぐできそうな方法では
既読情報のフラグで色を変える
色分けはラベル単位になるけど
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
>>61
どっちもKAGParserではないなぁ…。誰かよろしく。
背景の無限ループは、どっかにプラグインがあったよ確か。
>>62
既読判定はKAGParserではなくて system/MainWindow.tjs なんだよね…。だから今回は対象外。
MainWindow.tjsのgetCurrentRead()を見るよろし。
簡単に言えば「セーブされてるラベル群中に現在のラベルがあるかどうか」をチェックしている。
だから、[l]で止まってセーブした時にそこまで読んだことにするには、仕組み上[l]の部分に(画面途中だからセーブ不能な)ラベルを配置するしかない。
うーん、たとえば、セーブポイントからの既読行数を覚えるようにすれば、たとえページの途中でも既読判定は可能だろう。でも、そうすると今度はセーブ・ロード間でのシナリオ変更に弱くなってしまうというデメリットも生まれてしまう。
なかなか難しいね。いい考えある人挙手を!というか作って!
>>63
既読部分の色を変えるのもやっぱりMainWindow.tjsをつつく。ch : function()... のあたりで、既読なら色変えるとかする。
でも、たとえば時々メッセージのテキスト色を変えて表示しているゲームの場合、既読の時にその色をどうするか、みたいな問題があるよ。
おっしゃる通りラベル単位での実装は可能ですね。
一画面3行程度で[l]を使わず、すぐ次のラベルに行けるゲームなら問題ないと思います。
ただ一画面に10行テキストとかだと可読性のため[l]を使わざるを得ないのが困り物です。
>>65重ね重ねありがとうございます。
提案されたものを考えてみたら昔、配布されていた
どこでもセーブプラグインがそういう考え方の仕様だったと思います。
あのプラグインでも文字数の変化をしてしまうと
ラベル自体に変化があるのかロード不可が生じるんですよね…
見当違いのこと言ってましたのに丁寧に答えて下さって、ありがとうございます。
>どこでもセーブプラグイン
セーブまわりの情報を動的に生成するのは
バグの温床だからなるべく避けたほうがいいと思う
ユーザから見て不便なのは分かるけど
個人的にはセーブポイントはシナリオ完成時に
スクリプトでいじらず完全に静的に固定したまま
シナリオに書いてある通りというのがオススメ
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
なるほどなあ
一応mainwindowtjsやらいじってラベル単位では
やれるのは知ってたんだが
pタグ単位でとかになるとセーブロードあたりでやっぱり難しいんだな
parserに関係ないのに丁寧に回答くれてありがとう
既読部分に絡むけど文字の縁取りとグラデ
過去スレに同じ話題があったけどkagで全部に反映される方法が吉里吉里初心者には難しいや
MessageLayer.tjsを魔改造していいのなら、今こんなの作ってます(宣伝)。
https://github.com/sayonogami/fadech_grad
>>67 はイイね!そのまま使えそう。
>>68
ExtKAGParserで既に実装されてるよ。
おーすごい!起動させてもらったよ、これで問題なくいけるんじゃないか
まだ作りかけって書いてるけど既にテキストにグラデだけなら問題なさそうな
正式公開楽しみにしてる
>>67 はイイね!そのまま使えそう。
>>68
ExtKAGParserで既に実装されてるよ。
属性が多いとスクリプトが横長になって可読性が落ちてくるので
>>67 はイイね!そのまま使えそう。
>>68
ExtKAGParserで既に実装されてるよ。
あと単純に吉里吉里で欲しいなって思ったのはボタン押したときに画像がトランジション出現消去はするんだけど
ゲーム自体は止まらず進行してる奴かな文字描画ではプラグインあるの見たんだけどね
自分でTJSで組んで描画まではいったんだがトランジションで積んだ
これもKAGParserとはちがうけれど、
表示する画面を「一番前」に不透明で表示すれば、後ろの画面が動いていてもなんとでもなるよ。
右クリックルーチンは多くがそうなってたはず。
画面がというよりクリックで読み進めてても、画面の端で動いて出て消えてるというかな
読み進めてるんだけどゲーム中流れるBGMのタイトルが左上に独自レイヤ動作でさっと出るような
自分が知らないだけかもしれないんだけど吉里吉里内では上手くできなくて
シナリオ内でいうなら他の人も書いてるけどemb他変数まわりかな
単語ひとつでこれは○○変数だよーできると楽になるような気はする
正確には文字数の変化じゃなくて行数の変化だよ。制限厳しいのはその通りだけど。
変更に強いセーブの仕組みって何かないかなぁといつも考えてるけど、いいアイディアが浮かばないね…
やっぱりマメにラベル書くのが一番かなぁ。
>>76
俺もそう思う。なんとかしたいんだけどなぁ。
>>74
そういうのはやっぱりKAGPluginにして、ちゃんとonCopyLayer()とonExchangeForeBack()を実装するとうまく動くよ。
下の「レイヤコピーに対応する」「トランジションに対応する」が参考になるかも。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToWriteKAGPlugin.html
KAGParser、現在 [macroname arg1 arg2 arg3] でマクロを呼び出すと、マクロ内で %1でarg1を、%2でarg2を…のように参照できるところまでは実装した。
これから[&entity]で[emb eval="entity"]と等価にするのを実装する予定。
今のKAGParserって処理が上から流れてないからモノスゴ判りづらいね…少しずつ書き換えてるけどエンバグが怖い。
提案した機能を組み込んだ ExtKAGParser のbeta版を upload しました。
※正式リリース(0140の予定)の時はこれは消します。
ttp://www.geocities.jp/keep_creating/krkrplugins/ExtKAGParser/ExtKAGParser-0139.zip
提案あった以下を今のExtKAGParserにマージしました。
・新表記[&tjs式]を導入。[emb exp=tjs式]と同等
・マクロ側で引数の出現順に引数名を変数%1, %2, %3で使用できる
一方、「ラベルの指定方法によっては次の行の頭数文字をページ名として使用する」機能は、仕様が明確でないことと要望が少ないことから今は実装していません。
詳細は展開してできるExtKAGParser.dllと、testscript/data/scenario/first.ksにて。
これからいろんなものでテストしてみます。
皆様もテストしてもらえると嬉しいです。特に IgnoreCR=false のゲームでのテストを望みます。
とりあえず、自前のゲームと、PBPさんの「タリナイモノ」は動きました。「タリナイモノ」は[if][endif]の間にラベルがある箇所(文法違反)があって、その一箇所だけ変更する必要がありました。
エラーチェックを厳密化しているので、こういうことは起こりがちです。
KagParserEx の pmacro 拡張が地味に便利なのでパクるのおすすめ
@pmacro は中の人と検討したけど、今回は採用を見送った。
[macro]の「指定しなかった引数のデフォルト値」の方がモノとして綺麗だろうというところで。
多方面からの要望あれば実装するかもしれないので、希望者は中の人にメールだ!
>>87
[emb exp="mp.hikisuu1"] と同等の [&mp.hikisuu1]でどう?
マクロに引数を指定しないと、mp.*にはvoidが入っているから何も表示されなかったよ。
それはpmacroの用途を見誤ってるかな。デフォルト指定でカバーできない範囲で使うものなので
機能組み合わせごとにマクロ組んでしまうタイプの記述をする人にはメリットわかりづらいかな。多機能なタグと組み合わせると真価がでる機能
[macro name="macroA"]
[emb exp="mp.hikisuu1"]
[endmacro]
[macroA hikisuu1="string_abc"]
って >>78のやつでどうやって実装するん?
引数無いときもたしかvoidが入ってんだっけ?
@pmacro は中の人と検討したけど、今回は採用を見送った。
[macro]の「指定しなかった引数のデフォルト値」の方がモノとして綺麗だろうというところで。
多方面からの要望あれば実装するかもしれないので、希望者は中の人にメールだ!
>>87
[emb exp="mp.hikisuu1"] と同等の [&mp.hikisuu1]でどう?
マクロに引数を指定しないと、mp.*にはvoidが入っているから何も表示されなかったよ。
それはpmacroの用途を見誤ってるかな。デフォルト指定でカバーできない範囲で使うものなので
機能組み合わせごとにマクロ組んでしまうタイプの記述をする人にはメリットわかりづらいかな。多機能なタグと組み合わせると真価がでる機能
中の人まだここ見てるかな。
マクロ中で[iscript]~[endscript]が使えるようになるとありがたいんだけど
無理でしょうか?
ExtKAGParserの中の人への意見は、彼(彼女?)の掲示板にした方がいいよ。ここを見てるかどうかわかんないし。
マクロ中で[iscropt][endscript]実装するのは実は結構難しいんだよね。
割り切ってTJSの文字列中だろうがなんだろうが[endscript]が出てきたら何が何でも終わり!のように
実装するなら楽だけど。というか99%はそれで十分なんだろうけど。
タグ途中での改行が認められてるパーサを使うなら、[eval] で代用したらどう?
そっか、難しいんだ。
[eval]で代用すると面倒そうだから、今まで通りマクロからサブルーチンに飛ばすか
TJSで関数を作るかしてそこに書くわw
ExtKAGParserは、マクロ中の[iscript]に対応したってさ。
おお、ありがたいな。次の開発でぜひ使わせてもらおう。
空欄?スペース?になってるところに\が異常に挿入されたり
セーブデータの読み込みでラベルが見つからなかったりした
テストありがとうございます。
>>79
ignoreCR周りはテスト環境が周りになくて…ちょっとさがして確認してみます。
>>81
引数名にシングルクォート付き 'asd' は文法エラーにすべきなので、後でそうします。
[emb exp="%1"] は [emb exp="asd"] なので、asd が変数として定義されていなければエラーになってしかるべきです。
[ch text=%1] なら希望通りになるはずです。
でも、他のテストも通ってないですね、ありがとうございます、確認します。
いい機会なので KAGParserを綺麗にしながら書き換えています。結構オオゴトです…。
;[macroD 'asd'=1] #=>ok←コレなし!
;[macroA 'asd'=1] #=>タグ:不明( ←エラーの発生した前後の~(行はこの行をさしてる)←コレも無し
続き
[macro name="macroE"]
[emb exp="mp.asd"]
[endmacro]
[macro name="macroF"]
[emb exp="mp.asd"]
[emb exp="%1"]
[endmacro]
[macroE 'asd'=1] #=>エラーは無いが、表示されない
[macroF 'asd'=1] #=>asdと表示
[macroF] #=>タグ:不明( ←エラーの発生した前後の~(行はこの行をさしてる)
マクロ呼び出し時引数がない時に%1を参照しようとするとエラーが出るみたい。
テストありがとうございます。
>>79
ignoreCR周りはテスト環境が周りになくて…ちょっとさがして確認してみます。
>>81
引数名にシングルクォート付き 'asd' は文法エラーにすべきなので、後でそうします。
[emb exp="%1"] は [emb exp="asd"] なので、asd が変数として定義されていなければエラーになってしかるべきです。
[ch text=%1] なら希望通りになるはずです。
でも、他のテストも通ってないですね、ありがとうございます、確認します。
いい機会なので KAGParserを綺麗にしながら書き換えています。結構オオゴトです…。
多分これは全て想定どおりだと思う。
[emb exp="xxx"] で、xxx が void だと、エラーになる。これは通常のKAGParserでも同じ。
下のマクロ実行を普通のKAGParserで実行するとエラーになる。
[macro name=abc]
[emb exp=%arg]
[endmacro]
[abc]
一方、ignoreCR=falseの方は、確かにおかしな部分がぽろぽろあるね。頑張ってテストする…。
例えばConfig.tjsで定義されている画面サイズなどの値を、
別のファイルに定義してある定数などを参照する事は可能ですか?
Config.tjs の仕組みは、そこで定義されてる関数を使って変数初期化してるだけなので、function KAGWindow_config() の中に適当に別のファイルから変数よみこんで設定する仕組みを足せばいいのではないかと
丁寧にありがとうございます。
function KAGWindow_config() の中ですね・・・
とりあえず実装できる希望が持てたので試行錯誤してみます。
渡し方悪いのかな
http://pastebin.com/mcs3gBEC
エラー:タグ : if ( ← エラーの発生した前後のタグを示している場合もあります )
文法エラーです(syntax error)
[eval]や[emb]のように、与えられた文字列をTJS式として認識するものに %1 を渡すには、
mp['1']のように書くといいよ。
# mp.1 はダメなので注意。
[eval exp="tf.input = (string)%1"]
じゃなくて
[eval exp="tf.input = mp['1']"]
ね。
実は呼び出されてる順番が違うとかミスはいくらでもありうる
Shift + F4でコンソール表示して、細かく数値の変化追ってみろ
ジャンプタグと変数の位置がおかしかったためでした。
cfファイルのアレを直接編集するのはユーザーには大変だと思うから、
とりあえずショートカットのコマンドラインで指定してもらうことにするわ。
面倒くさいのう ('A`)
>>103
EXではautolabelの関係でcallはシナリオスクリプトでは使ってはいけない。
(セーブするタイミングなしですぐreturnするのであれば問題ない)
そもそも素のKAG3でもcall使っててパッチによるシナリオ修正が入ると
既存のcall先でのセーブデータの互換が取れなかった気がするので、
callは使わないでシナリオ書くのが普通だと思ってたけど、どうよ?
囲んでもダメだったよ。
コマンドラインで指定すると起動時にエラーが出て終了しちゃう。
そもそも、空白のあるパスは-datapathには指定しないほうが良いみたい。
krkrconf.exeを使って""で囲んで設定してやれば起動もセーブもできるけど、
ログファイルが吐き出せなくなる現象を確認しました。
シナリオ上で、
[call strorage="call_test.ks"]
として
【call_test.ks】
*start
TEST[l]
TEST[l]
TEST[l]
[return]
このcall先でセーブしてロードすると、returnのところで
returnタグがcallタグと対応していません。(returnタグが多い)と出てエラーになるんだけど、これってバグだよね?
メッセージウィンド上のボタンクリックでも、上部バーでも同じ結果なんだけど、対処方法は無いの?
>>103
EXではautolabelの関係でcallはシナリオスクリプトでは使ってはいけない。
(セーブするタイミングなしですぐreturnするのであれば問題ない)
そもそも素のKAG3でもcall使っててパッチによるシナリオ修正が入ると
既存のcall先でのセーブデータの互換が取れなかった気がするので、
callは使わないでシナリオ書くのが普通だと思ってたけど、どうよ?
作る立場としては、半角スペースと日本語ファイル名で問題なく動作するのを確認するのが基本
半角スペース入りのフォルダにユーザーはデータを保存するな ってのはだめだろ
ツール開発するようになると、バグを未然に防ぐのにために、個人的なファイルは、はまりやすいファイル名をあえて使うようになるw
むろん人に渡すファイルでは避けるけどね
アンインストールする時に外のフォルダのファイルまで削除したり
傲慢なプログラマーは犯罪だな
ttps://twitter.com/wdko/status/613860938249142272
xp3サイズをできる限り小さくしたいとかでなければ使わなくても大丈夫かと
あー、そのオプションを外せばいいのか。存在をすっかり忘れてたw
どうもありがとう!
ところで、そのツイッターのアカウントの人ってもしかして吉里吉里の真祖さん?w
callのdepthみたいなの
KAGスクリプトの[if]タグのことでいい?
KAGスクリプト上からは確認できない。KAGParser中のローカル変数(=IfLevel)だから、KAGParser内では確認できるけど。
一応セーブデータには(call stack の一部として)残るけどね。
# [call]タグの深さは、kag.conductor.callStackDepth で確認できる。
TJSスクリプトのifも確認する方法はない。
ちょくちょく出てるExtKAGParserはKAGの[if]のチェックを厳しくしてて、[if]中にラベルがあったり[if]なしに[endif]したりするとエラーにしてくれるみたい。
本来そういうチェックはユーザじゃなくてパーサがすべきなんだよね。ただ、デフォルトのKAGParserでチェックしてないのは、きっとガチガチにしてデバッグ時の柔軟性がなくなるのを回避するためだったんだと思うから、どっちのアプローチが正しいかは判らない。
[ほげ子 zoom=150 time=500]の時に、ypos=適当な数字を入れると、何回かに一回おかしくなる
でも、一番面倒な演算してるところだな・・・・・・
ちょっと見た感じどこが問題かわからん・・・・・・助けて・・・・・・
なんかダミー画像でも使って最小内容のうpしたほうが
わかりやすいんじゃない?
ちょっと作ってみる
俺には複雑すぎてかなり混乱してきた・・・・・・
それと、探してて見つけたなんだけど
KAGEnvCharacter.tjsの
f.yoffset = yoffset if xoffset != 0;
f.xoffset = xoffset if yoffset != 0;
これxとy掛け違えてない?
それ明らかにバグだね。直して問題ないかと。
ところで
[ほげ子 ypos=100:100 zoom=150 time=500]
みたいに「prop=to:from」書式使ってyposを固定にしても問題の現象発生する?
試してみたけどダメだった。
それで、まっさらなところから再構築したんだけど……
どうやら原因は俺の日記さんのところの修正箇所のどこかっぽい
50回試して、今のところちゃんと挙動してる
お騒がせして申し訳なかった orz
ボタンを右クリックで押せてしまうのは仕様なのだろうか?
仕様だとしても押された時に設定したSEが鳴らないんだよなぁ
それと色々と使わせてもらっています
ありがとうございます
吉里吉里本体についてるシステムボタン独自改造して使ってるけど
右クリックで押せるから仕様っぽい
ちなみに音もちゃんとなるけど、例えばセーブボタン右クリックで押してもセーブ画面はでないね
ごった煮のは使ってないから解らないわ
吉里吉里本体のButtonLayer.tjsに手を加えたらそっちも解決すると思う。
一回マウスダウンすると領域外でマウスアップしても押下として処理しちゃうとか
ボタンの動作としてはちょっと難があるんよね>標準ボタンクラス
質問書こうとして誤爆した
色々試してる間に解決してしまった。
スレ27のこれを参考に顔窓作ってみた
347 : 名前は開発中のものです。 : 2013/05/18(土) 15:57:22.50 ID:fzr5Sb8S
>>346
表情欄使うには普通のキャラクター定義+以下3つが必要
1.[position]でfaceleft, facetop, facewidth, faceheightを設定
2.envinit.tjsでfaceLevelNameを設定
3.envinit.tjsでpositionsの出, 立, 顔, 消, 無を設定
サンプル
http://www.mediafire.com/download.php?q505z8od3u7fvm4
しかしよく考えたらキャラ事に頭の位置は違うけどどう言う風に書けばいいんだろう
それと元のenvinitの該当箇所
"faceLevelName" => void,
//"faceArea" => %[ name:"顔領域レイヤ", center:true/*センターフラグ*/, xoffset:0, yoffset:0, width:200, height:160 ],
//"faceZoom" => 100,
"faceLevelName"はレイヤレベルだと思うが、nameの顔領域レイヤってなんだろう
poses定義内のimage/faceImageとは別に、msgImage/msgFaceImageを定義して、
顔窓専用の立ち絵ファイル(バストアップのみのデータ)を作るのが良いのでは?
そちらの画像の大きさを固定しておけばキャラごとの背の高さも調整できるかと
faceAreaはKAGEnvCharacterExで参照される定義なので
残念ながら~Exの立ち絵が作れない(ツールがない)現状では利用は難しい
ttps://twitter.com/taninon/status/167277432842366978
過去スレで解析して心が折れてる人がいたみたいね…
charactersの中で個別に設定したら、たしかできたんじゃなかったっけ?
スマホ用吉里吉里出してくれ
欲しいよな
ティラノスクリプトやジョーカースクリプトじゃいかんのけ?
吉里吉里での開発経験を活かしてPCとスマホでプレイできるゲームを作りたいんだけど
次はどんなスクリプト・言語を使うといいでしょう
ここで聞いてみるとか
ノベルツール選考スレ 4th KIND
http://peace.2ch.net/test/read.cgi/gamedev/1329043965/
[call storage="ExtSystemButton.ks" cond="typeof global['extsystembutton_obj'] == 'undefined'"]
[sysbutton_erase]
[sysbutton visible="false" name="auto" graphic="auto" top=810 left=1607 exp="SysBtn_onAutoReadButtonClick()"]
[sysbutton_setopt name="auto" page="fore" visible="true"]
ソースコードのディレクトリに「助けて!不具合の原因がわからないの!」って文書があってワロタ
ちょっと見たけど、俺には何を言ってるのか全然わからないw
>>182
デバッグロードってなに?
ごめん名前全然ちがったOTL
それKAICHOさんとこのプラグインだからKAICHOさんに聞いた方がいいよ。
といいつつ手前の環境で試した。そのスクリプトをfirst.ksに書いてメニューのデバッグ→シナリオ再読み込み実行したけど、ちゃんと表示されたよ。他が悪いんじゃない?
KAICHOさんのプラグインは説明が解りにくいのと導入面倒くさいのが難点だ
あと他の人のプラグインとあわせるとエラーになったりする
俺はKAICHOさんのプラグインを頑張って導入&改造したおかげで
TJSとKAGの構造をスゲー理解できたよ。
大感謝してるわ。
それって実はこれ↓じゃないの?
ttp://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html#loadKAGPlugin
『KAGPluginを組み込む時は、first.ksの、「最初のセーブ可能ラベルより前」で 組み込むようにしよう。そうしないと色々不具合が起こるため。』
あそこのプラグインは最初から二重読み込みに対応してるはずなんで、自分で消したりしないほうがいいよ。
>>189
ホントあれ読むと勉強になるよね。感謝感謝。
それっぽい
セーブラベルより前に置いたほうがよかったのか
最初はあの量の説明で「おおう……」と思ったがじっくりやっていくと
説明は詳しくて、ソースにコメントも書いてあってかなりいいと思う
さらに全部入りサンプルがあるからそれも参考にできるしね
プラグインコールした後にセーブラベル通せば問題なく動くんだけどセーブラベル通らずにシナリオ再読み込みするとなぜか表示されない・・・。
[if exp="typeof global['extsystembutton_obj'] != 'undefined'"]
[eval exp="kag.removePlugin(global['extsystembutton_obj']);"]
[eval exp="global['extsystembutton_obj'].finalize();"]
[eval exp="System.inform('removed!');"]
[endif]
こんな感じで一回消してみたけどだめぽだった。もう少し検証してみてダメそうなら作者さんにきいてみよう・・・
エラーログ確認したらマクロが定義されてないってエラーが出てたので>>187のendifの前に
[eval exp="delete global['extsystembutton_obj'];"]
を追加したら問題なく再描画されました。お騒がせしました。
それって実はこれ↓じゃないの?
ttp://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html#loadKAGPlugin
『KAGPluginを組み込む時は、first.ksの、「最初のセーブ可能ラベルより前」で 組み込むようにしよう。そうしないと色々不具合が起こるため。』
あそこのプラグインは最初から二重読み込みに対応してるはずなんで、自分で消したりしないほうがいいよ。
>>189
ホントあれ読むと勉強になるよね。感謝感謝。
それっぽい
セーブラベルより前に置いたほうがよかったのか
「file://./d/kkde_200a4/project/(プロジェクト名)/data/snow_5 について適切な拡張子を持ったファイルを見つけられませんでした」
というエラーメッセージが出てしまいました
雪の画像は雪プラグインの画像(0から4)をそのまま使っているのですが問題があるのでしょうか?
(使用しているのは吉里吉里2 2.32です)
ごった煮さんのは雪の画像が増えてる。
ごった煮さんところの「全部入りサンプル」を落として、中にある snow_0.png~snow_7.png を自分のプロジェクトのどこかにコピーしてからやってみ。
サンプルを落として雪の画像を使ったところ無事プラグインが動作しました
おかげで立ち絵やメッセージレイヤの後ろに雪を降らせることができました
一人でてんぱっていたので助かりました
教えて頂き本当にありがとうございました!
ttp://lightworks.blog137.fc2.com/blog-entry-15.html
紹介して頂いた動画参考にさせて頂きました
ありがとうございました!
kag.callExtraConductorを使いなされ
この単語でググれば講座も出て来るし
そこに詳しく書いてあるはず
ありがとうございます!
調べてみます
たとえばそのリンクのexpがどっかにjumpにするような場合
onenterのサブルーチンのreturn時にエラーになりそうなんだが
それにサブルーチンで[wait]とかなんかの処理待ちがあった場合もcallとreturnが合わないエラーになりそう
うちはexpにkag.callExtraConductor使ってるよ
今の所、問題は特にない
連レスすまん
質問者の198が言う所の「選択肢からサブルーチンを呼ぶ」という動作なら
うちはexpでサブルーチン呼んで
必要に応じて[return storage="" target=""]で戻り先まで指定してるって話
202の条件で試したことない