1 名前:名前は開発中のものです。 [2010/05/22(土) 15:41:56 ID: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 pc11.2ch.net/test/read.cgi/gamedev/1264933876/
39 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 06:26:51 ID:8c/di4zs] >>36 がどういう思考の流れで「混合」という意味不明な思考に至ったのかはちょっと興味あるなw
40 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 07:10:33 ID:nX26q0ke] oggとかに書き込んであるタグ情報を取り出す方法ってある? タイトルタグとかを抽出出来ると管理が楽になるんだけど・・・
41 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 08:47:09 ID:jo1ttNyg] ogg対応のプレーヤやタグ編集ソフトを使うのはダメなのかのう 俺SuperTagEditorつーやつ使ってるけど、 タイトルを一括してクリップボードにコピーできるぞ そうすりゃ後はテキストファイルにしたりexcelに貼り込んだり 完全自動化したいってんなら、 oggフォーマットを勉強して冒頭のヘッダ情報を抜き出すソフトをお作り
42 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 09:00:19 ID:nX26q0ke] いやそうじゃなくて吉里吉里の中で取得して変数に格納なりしたいって話なんだけど
43 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 16:10:46 ID:lNXx/gay] >>36 >>31 はグリーンスレッド的な実装をする話をしてるんであってマルチタスクの話はしてない。 それにいまはpythonだろうがrubyだろうがsmalltalkだろうがjavascriptだろうがスレッドくらい使える。 まあ、吉里吉里で>>31 の方法を使ってまで並列処理する意味はない気がするが。 つーか吉里吉里ならGILで十分。
44 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 16:32:36 ID:L/FIBD99] 言いだしっぺがやる法則ですね分かります
45 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 16:49:22 ID:8c/di4zs] どこらへんがグリーンスレッド的なんだろう ^^; そもそも >>31 は、吉里吉里の TJS 実装は GIL を持ってなくてロックしてくれないからどうするかって話だぞっと
46 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 17:11:32 ID:Gl2+JiOI] > 吉里吉里はスクリプト言語 > マルチスレッドが考慮されてないのはあたりまえ > Windowsはもともとがマルチタスクを前提として設計されている > こっちはすごい 吉里吉里は、Win32レイヤで書かれた下位層、 C++記述されたスクリプト言語であるTJS層、 TJSで記述されたノベル言語であるKAG層。 の3層構成になっている。 で、下位層はC++でWin32APIを直接叩いてるから、 そのレイヤでは当然Windowsプログラミングの常識が絡んでくるのよん。
47 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 17:13:46 ID:Gl2+JiOI] ちなみに配布されている「吉里吉里」という名前のパッケージは これら全てをひっくるめた総称として使われていることが多いですね。 適当な話をする時にはごっちゃでもいいんだけど、 これらの階層を意識した細かい話をする時には 階層の区分けに自覚的でないと話が混乱するよ。
48 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 17:46:21 ID:JzgxT+Nv] >>43 ネットワーク処理を書くのなら、スレッド無しで非同期処理のみで実装するほうが面倒な件。 ああいや、完全非同期にしても吉里吉里のタスクとは別でaccept待つならスレッド一つは必要になる?
49 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 21:36:40 ID:aL+rRsRT] Windows7 64bitになって、krkrrel.exe(リリーサー)が途中でエラーになって 動かないんだけど同じ人いるかな。 互換性のトラブルシューティングでもvirtual PCのXPモードで動かしてもダメだった。
50 名前:46 mailto:sage [2010/05/23(日) 21:55:21 ID:aL+rRsRT] すまん、最新版DLしたら直った。 手持ちがkr2_230版だったが、最新のはkr2_230r2になってた。
51 名前:名前は開発中のものです。 mailto:sage [2010/05/24(月) 13:29:04 ID:A/QWIwPb] r2になって色々改善されてるっぽいよね
52 名前:52 [2010/05/25(火) 05:20:44 ID:TAKdIbQN] 教えてくださいー。 格闘ゲームのHP表示みたいなメーターを装着したいんですけど どうやったらいいですか? ググったらタイムアウトまでの時間表示のやり方というのしか見つけられませんでした。 時間とともに減っていくだけじゃなく、数字の増減を表示したいのですが・・・。
53 名前:名前は開発中のものです。 mailto:sage [2010/05/25(火) 12:17:34 ID:tdz/xrWI] スレ跨ってすみません 前スレ986です 目的はオート中のウェイトをクリックなどの操作でキャンセルです 「どんな操作で」が質問中に抜けていて混乱させてしまいすみませんでした 前スレ995を参考にやってみようと思います みなさんありがとうございました
54 名前:名前は開発中のものです。 mailto:sage [2010/05/25(火) 12:21:06 ID:StsUsnmU] >>52 カウントダウンタイマーなら、残り時間を格納している変数があるはずだから そこをHPの変数とかに置き換えればOK あとは残り時間を減らしていく部分とか、ゼロになると何かする部分とかは削る
55 名前:名前は開発中のものです。 mailto:sage [2010/05/25(火) 13:44:20 ID:6CvLfqH6] ZOOMプラグイン使って縮小させるとかでいいんじゃない 簡単だし
56 名前:名前は開発中のものです。 mailto:sage [2010/05/25(火) 16:59:43 ID:AqubFvJ8] ZOOMだと、右から左にグラデがかかってる画像とかをバーにすると、ちょっと駄目かも。 setSizeでレイヤの描画表示領域のサイズを変えるのが一番いいんじゃね
57 名前:名前は開発中のものです。 [2010/05/25(火) 17:29:25 ID:T4GTU+pL] >>56 よさげだね。
58 名前:名前は開発中のものです。 mailto:sage [2010/05/25(火) 23:33:51 ID:wXbNmro6] >>55 国家の基はあくまでも人です。対等や平等はありえません。 あらゆる対人関係が上下関係であるのと同様、国家間の関係は上下関係です。 日本はまず日中関係、日韓関係でそこをはっきりさせる必要があります。 子どもの躾と同じです。 そして日米関係、これは正確には米日関係という事になります。 甘んじろと言うのではありません。 分・際を弁えることと下に甘んじることは、全く違います。 二言目には対等だの平等だの口にする民主党は、そこを理解していません。
59 名前:名前は開発中のものです。 mailto:sage [2010/05/26(水) 16:19:28 ID:NStzn3an] >>58 ラーメンまだー?
60 名前:名前は開発中のものです。 mailto:sage [2010/05/26(水) 16:28:41 ID:Z7HeaOfL] >>59 誤爆だろそうでなくても相手するなアホ
61 名前:名前は開発中のものです。 mailto:sage [2010/05/27(木) 12:22:15 ID:dJ3cKJXP] 背景を3Dにするってできますか?
62 名前:名前は開発中のものです。 mailto:sage [2010/05/27(木) 12:22:51 ID:fvNtsgl2] その質問をしているレベルでは永遠にむり
63 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 04:22:27 ID:BMOhnCwO] ヒントだけでもお願いします
64 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 08:21:12 ID:zXqRvFOz] 3Dソフトを買う→背景を作ってレンダリング→背景レイヤに表示 終わり
65 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 09:29:40 ID:lF306QjG] >>63 きわめて確立は低いがマジ質問の可能性にかけて。 吉里吉里内でレンダリングしたり、3D画像を動かそうと思ったら無理。 既存の吉里吉里ではそういった物はサポートされていない。 3Dで作った画像を背景にするのは当然可能。つか2Dも3Dもこれなら 一緒だからな。
66 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 10:55:15 ID:pNfHlrW7] kagexってクリッカブルマップってのは使えない?
67 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 12:07:45 ID:SEzdAxm/] >>65 drawdeviceIrrlicht プラグインってのがあってだね。 無理ではないんだ
68 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 14:36:44 ID:lF306QjG] >>67 実はその存在は知ってたり。 ただ、一般的ではないし、簡単に導入できるものでもないので割愛した。 あくまでも吉里吉里のツールとして想定されてないって感じで書いたんだが まあ、回りくどかったな。 「プラグインならあるけど、恐らく君じゃ無理」と書くべきだったかも。
69 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 16:03:47 ID:eZrIM7a5] 嘘を書くような奴は回答しなくていいんだ。
70 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 20:06:13 ID:p9xTwI73] ポインタ値を使って読み書きできるバッファプラグインを作ったんだが、 TJSの層からポインタ使って云々て吉里吉里だと一般的じゃないよね。 なんで? tjs_intで値運ぶとconstとかの情報が消えていろいろ危険だから?
71 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 20:10:01 ID:p9xTwI73] あ、ていうかスクリプト言語からポインタ云々自体がそもそも滅多にないか。 でも吉里吉里はどうせネイティブ層とズブズブなんだから、 ポインタであれこれするのも一般的になっていいのにと思う。 そうすればスクリプトからレイヤのピクセル直接弄ったりが楽になるのに。
72 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 20:11:15 ID:ARWL4hqx] 単純に「ポインタを使ってまで処理すること」に対する需要がTJS(というか吉里吉里全般)においては少ないってだけなんじゃね?
73 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 20:41:06 ID:QLlJeu5r] >>71 一般的には、TJS からポインタさわれても破壊おこすだけでメリットゼロだからだろう。 TJSから扱う時点でいろいろ操作インターフェース間にはさまって、ポインタつかうメリットであるところの性能でないし。 インターフェース仕様さらしてくれれば批評したげるよw
74 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 20:59:23 ID:p9xTwI73] 例えばこういう使い方とか。 /* STLのvector<unsigned char>とTJSのArrayの合いの子みたいなもの */ var buf = new OctetBuilder( ); /* 最初のスキャンラインをmemcpy */ buf.addBlock( layer1.mainImageBuffer, layer1.mainImageBufferPitch ); /* バッファ内のアドレスを他の関数(ネイティブ層)へ渡す 例えば反転とか */ GL.flipScanLineBytes( buf.begin, buf.end ); /* 別のレイヤへmemcpy */ buf.copyTo( layer2.mainImageBufferForWrite, buf.length ); レイヤのサイズが違ったりぬるぽだったりしたら鼻から悪魔でたしかに怖いけど。
75 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 22:00:16 ID:QLlJeu5r] >>74 GL が汎用のビットマップ操作のクラスを実装したものだと想像するが、 その作りだと、あまりにも簡単にふっとびすぎるだろう。TJSのメリットである安全性を犠牲にしてまでつくる構造じゃない^^; layer の mainImageBuffer や mainImageBufferPitch はプラグイン内部でだけ触るべきものだね。 OctetBuilder の begin や end も同様で、任意の場所からアクセスさせたいなら、例えば、インターフェースは GL.flipScanLineBytes(buf, begin, end) として、begin と end が null ないし voidなら、それぞれ buf の 先頭と末尾を意味させて、数値ならオフセット値として扱う、といった構造にするのが妥当。 さらに buf の範囲外なら例外をなげれば万全 引数の型判定できるんだから、処理対象として、Layer を渡された時と、OctetBuilder を渡された時を 区別して内部分岐してどちらでも同じような感覚で使えるようにするのがユーザ的には一番使いやすいだろうね。 ただ、そうすると、Layer と OctetBuilder のインターフェースが違うのが気持ち悪いというのがあるかもしれない。 それを嫌う場合、逆転の発想で、最初から両方に同じインターフェースをはやしてしまうという手がある。 まず、もろもろ必要なポインタ操作をうけつけるインターフェースをネイティブで準備して、ObjectBuilder はその インターフェースを単純に継承した実装にする。Layer 用には、同インターフェースの操作を、Layer の実インスタンスに proxy して アクセスするような実装を準備して、メソッド呼び出しの時点でフックして追加で NativeInstance をを持たせるか、あるいは 単にそれで作ったクラスと Layer を多重継承させれば良いだろう それらのオブジェクトを処理する機能側では、まず対象オブジェクトがそのインターフェースをもっているかを NatigeInstanceSupport 経由で確認して、もってなければエラー、もってれば、そのインターフェースを直接 ネイティブでさわるようにすれば、データの扱い的にも安全、コード的にもすっきり、さらに性能も出せる
76 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 22:17:13 ID:p9xTwI73] うん、生ポインタ弄りたいなら安全性的にもパフォーマンス的にも プラグインからやるのが一番ってのはわかるし、俺も普通そうしてるんだ。 ただ今、大量かつ高速なI/Oが必要な処理を実装してて、 吉里吉里のコンソールから手軽にテストしたいっていう要求から 生ポインタ使ったインタフェースを実装してみたんだ。 オクテット列とかのテンポラリを介すると、その分のコストで正確なベンチがとれないなと思って。 OctetBuilderはいちおう普通のポインタ使わないインタフェースもあるけどね。 buf.push( 0xDE, 0xAD, <%BE AF%>, OctetBuilder.fromHex("DE AD BE AF") ); /* buf.asOctet == <%DE AD BE AF DE AD BE AF%> */
77 名前:名無し@腹八分 [2010/05/28(金) 22:19:42 ID:tiCntCqx] 1st.geocities.jp/mayuge_honor/mayugeindex.html ↑評価してほしいです。 お願いします。<(_ _)>
78 名前:名前は開発中のものです。 mailto:sage [2010/05/28(金) 22:30:05 ID:QLlJeu5r] >>76 まあテスト用でってのなら、いいんじゃね? 一般的になることはないだろねってことで。 吉里吉里の標準オブジェクトでポインタあつかってるのは、Layer のバッファ関係、 DrawDevicce の interface、Window の メッセージ処理まわり、ぐらいかな。 いずれもプラグインから扱うのが前提の機構
79 名前:名前は開発中のものです。 mailto:sage [2010/05/29(土) 09:25:29 ID:OkbhcHwt] 文字の大きさをタテ長にしたりヨコ長にしたいのですができますか?
80 名前:名前は開発中のものです。 mailto:sage [2010/05/30(日) 11:17:52 ID:DGNPHycY] 一回別のレイヤに描画してそれを拡大コピーするとかでは?
81 名前:名前は開発中のものです。 mailto:sage [2010/05/30(日) 11:23:43 ID:lNqBg+0m] むつかしそうですがやってみます
82 名前:名前は開発中のものです。 mailto:sage [2010/05/30(日) 22:54:43 ID:4FPb+t42] [my_change storage="背景"] とやると、背景が一定時間で 背景0→背景1→背景2→背景0→... と移り変わるようなプラグインを作りました。 プラグインのonTimer関数内で、 elm.storageを適切に変更 → kag.tagHandlers.image(%[page:elm.page, layer:elm.layer, storage:elm.storage]); と背景切り替えを行っている形です。 しかし、これをやっただけですと、セーブロードに対応できません。 この切り替えが行われている場面でセーブしたセーブデータは、ロードされたときに切り替えまで再現してくれません。 どうしたら、ロードされたときにも再現してくれるでしょうか。 よろしくお願いいたします。
83 名前:名前は開発中のものです。 mailto:sage [2010/05/31(月) 00:07:14 ID:G2n3r+RB] 状況が分かりかねますが、 tagHandlers.imageを通しているので、 使用しているレイヤがKAGのbaseレイヤで、セーブ可能ラベルを(中略)、画像情報はセーブされていると思うので、 たぶん、onTimerが動かないとか、いうような話ではないかと思うのですが… タイマーが動いているか否かのフラグをf.とtf.にもって ロードのタイミングで比較、必要なら、onTimerを再度設定とか。つ、「Plugin.tjs」
84 名前:82 mailto:sage [2010/05/31(月) 23:44:23 ID:wN77rWjQ] すいません、試してみる時間がないので、急ぎな返信します。 分かりにくい状況ですいません。 f.とtf.にフラグを持つ の辺りがよく分からなかったので、色々調べてやってみたいと思います。 onStoreだとかonRestoreなんてのを調べてましたけど、これは見当違いだったみたいですね;; ご返信、ありがとうございます。
85 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 00:46:55 ID:Pd4qQI2v] >>84 いや、onStore とか onRestore であってる・・・
86 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 00:52:23 ID:j79FRSuz] >>84 83です。状況が分かりかねるので確ではありませんが、onRestore、使ってください。見当違いじゃないです!! 「f.とtf.」は、KAGのゲームフラグと一時変数(kag内の辞書flagsとtflagsへの参照)のつもりでした。 別に他の変数でもOKですっていうか、「rain.ks」みたいに、プラグインに変数を持った方が自然かもです。
87 名前:名前は開発中のものです。 [2010/06/01(火) 02:38:57 ID:Vvvr/3aH] 棒グラフの表示をしたいのですが、どういう風に考えればいいですか?
88 名前:名前は開発中のものです。 [2010/06/01(火) 03:17:44 ID:Vvvr/3aH] layerExDraw というプラグインを使えばよさそうなことが分かりました。 プラグインというのは多分pluginというファイルに掘り込めばいいんでしょ? で、そこから先が分かりません。 layerExDrawの製作者のHPが見つからないし、どこにも説明らしき物が見つからない。 誰か知りませんか?
89 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 03:26:51 ID:RBkazghK] 円グラフとか使うなら、layerExDrawプラグイン使わなきゃ無理だけど、 棒グラフならTJSスクリプトだけで出来るよ。 数値の分だけ、fillRectやcolorRectで塗りつぶせばいいだけ。
90 名前:88 [2010/06/01(火) 03:35:49 ID:Vvvr/3aH] >>89 TJSを全部教えてくれとはいいません。 TJSを学ぶために、まず始めに行くべき所だけでも教えてもらえませんか?
91 名前:名前は開発中のものです。 [2010/06/01(火) 03:38:39 ID:6OAAlPhY] テンプレ見ればいいんじゃね
92 名前:88 [2010/06/01(火) 03:43:45 ID:Vvvr/3aH] それじゃ、もういちどシステムリファレンスでも見てくることにします。 ありがとうございました。 しかし、けっきょくあのプラグインの使い方は分からなかった。 googleがこんなに使えないと思ったのは初めてだ。
93 名前:88 [2010/06/01(火) 03:47:59 ID:Vvvr/3aH] 何度も何度もすいませんが、 何とか理解できそうです。 >>89 さんのアドバイスも役に立てることができそうです。 ありがとうございました。
94 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 03:49:30 ID:RBkazghK] >>92 TJSと吉里吉里のリファレンスで基本文法と関数覚えれば、5分くらいで作れるよ。 あと、プラグイン使うときは、 Plugin.link(プラグインのファイルパス)で読み込めばいい。 これもリファレンスに書いてある。
95 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 03:51:14 ID:RBkazghK] ごめ、Plugin.linkじゃなくてPlugins.linkね。
96 名前:名前は開発中のものです。 [2010/06/01(火) 05:27:34 ID:YT5KYGyM] layerExDrawのマニュアルは吉里吉里開発サイトにある。 サンプルもbranchesのkag3exにあるはず。多分ね。なければごうさんの日記のログのどっか。 一通りTJSを読み書き出来るようになっているのが前提みたいだから結論だけ欲しい人には難しいかも。
97 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 10:30:32 ID:cLU1K25v] 吉里吉里から別のプログラムを呼び出すにはどうすればいいでしょうか?
98 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 10:35:28 ID:h6NlFUoX] >>97 step.1 まずマニュアルを隅から隅まで読みます step.2 マニュアルを読んで得た知識を使用します step.3 目的が達成されます
99 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 11:09:17 ID:4QGnC0i3] exeとかcallとかそういうのがついた命令があったと思う。
100 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 12:02:17 ID:cLU1K25v] そういや2chってゴミの山だったね
101 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 12:23:03 ID:O7x2gz6g] ゴミをふやすのはやめようね
102 名前:名前は開発中のものです。 mailto:sage [2010/06/01(火) 12:25:01 ID:cLU1K25v] いいんじゃね? ゴミだし
103 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 14:58:42 ID:GaAYS5px] >>99 が答えてくれてるのにそれはなかろうよ
104 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 18:39:44 ID:XikyAc6H] >>103 (的確に)答えていると言う意味では、 >>98 が正解だと思うけどね w
105 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 19:03:42 ID:GaAYS5px] まあ、マニュアル検索すればよい問題だし、ぐぐっても結構出ると 思うしな。
106 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 19:18:13 ID:/IPYYtTB] 中世錬金術じゃないんだから、鉛の質問から黄金の回答なんて出てこない てことで質問者は>>1 を良く読めと
107 名前:97 mailto:sage [2010/06/02(水) 19:22:09 ID:y5ow5RML] >>1 を素早くサッっと良く読みましたがわかりません><
108 名前:名前は開発中のものです。 mailto:sage [2010/06/02(水) 19:40:28 ID:y5ow5RML] 空手チョップを極めるくらい簡単でした System.shellExecute( "data/FFFTP.exe" );
109 名前:98 mailto:sage [2010/06/02(水) 23:39:32 ID:DgY+ehAp] よくできましたね、おめでとう
110 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 00:06:03 ID:jflbwqBr] traceタグか同様の機能があればTJS内で使いたいと考えてます。 具体的には、メソッド内で関数名や式の中身などをコンソールに 出力したいのです。
111 名前:名前は開発中のものです。 [2010/06/03(木) 00:28:36 ID:EwdzgW1R] Debug.message("関数名");
112 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 00:38:33 ID:jflbwqBr] >>111 ありがとう御座います。 もう1点なのですが、デバックモードである事をTJS内で判断できますでしょうか? デバックモード中のみだす様にしたいのです。 無理なら適当な変数で代用可能と思っておりますが、そっちで動機が取れれば 一番なので。
113 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 09:15:20 ID:lpRFNAdF] System.getArgument("-debug") == "yes"
114 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 14:45:46 ID:3i4y/tf+] ダブルクォートやシングルクオート内で文字列として2つの記号を出力したい場合どうしたらいいでしょうか? 調べ方が悪いのかなかなかヒットしなくて困っています。申し訳ありませんがよろしく御願いします。 ↓マクロ内ソース tf.str="中身いじるよ!"; [link exp="&'kag.historyLayer.store(\n'+tf.str+'\n\n)'"][emb exp="tf.str"][endlink] ↓実行結果 kag.historyLayer.store(\n中身いじるよ!\n\n)←ダブルクオートで囲んでないので文字列として認識されず深刻なエラー
115 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 14:51:42 ID:8aFL/sP0] 曲Aと曲Bがあるとして、普段は曲Aを再生、 任意のタイミングでAをフェードアウトしてBを再生、Bが終わったらフェードアウト→Aに戻る、 この時Aの再生を、フェードアウトして止まった所の続きからにしたいんですが そういう事が出来る方法は無いでしょうか?
116 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 14:59:47 ID:MRMJZaGU] >>114 (\\n'+tf.str+'\\n\\n) こういう意味?
117 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:03:44 ID:3i4y/tf+] >>115 前スレにあったkag.bgm.currentBuffer.positionとか使うとできなくは無いと思うよ!
118 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:13:01 ID:3i4y/tf+] >>114 んーちょっと違うと思う(\nは改行のつもり動作するかは分からない・・・) kag.historyLayer.store(\n中身いじるよ!\n\n)これを kag.historyLayer.store('\n中身いじるよ!\n\n')こうなるようにしたい。
119 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:14:23 ID:3i4y/tf+] 安価ミスった>>116 さんへのレスです 改行はreline() 呼ばなきゃダメかな/(^o^)\
120 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:23:07 ID:8aFL/sP0] >>117 BGMを好きな秒数から再生出来れば良さそうなんですが そういう事が出来そうな命令が無さそう・・・
121 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:27:05 ID:cGph92cL] >>114 クォートもダブルクォートも \ でエスケープできる。あとはわかるな
122 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:28:26 ID:cGph92cL] >>120 playbgm タグの start オプション
123 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:35:12 ID:8aFL/sP0] >>122 playbgmのリファレンス、startの項が「ループチューナで指定したラベル」ってなってるんですけど ループチューナー起動してもラベルなんて設定項目無いし、 このラベルって何を指してるんでしょう? 秒数を入れても何にもならないし・・・
124 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:44:36 ID:3i4y/tf+] >>121 [link exp="&'kag.historyLayer.store(`"'+mp.文字+'`")'" target="&mp.link"][emb exp="mp.文字"][endlink] エスケープって言うのか・・・助かった。お陰で動いた・・・が改行入れようと(;)を入れようとするとエラーが・・・ 少し頑張ってみよう ありがとう
125 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 15:53:46 ID:cGph92cL] >>123 編集/新規ラベルを作成 いつのバージョンからあるかは知らん。すくなくとも kag で対応した時点以降なら存在してる
126 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 16:06:07 ID:cGph92cL] >>124 やりたい処理を iscript で function つくって、kag 側からはそれを呼び出すだけにするのオススメ。なやまなくて済むから。
127 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 16:11:43 ID:8aFL/sP0] >>125 おかしいな、編集なんて項目自体無い・・・と思ったら いつの間にかループチューナーが「2」になってた・・・
128 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 17:22:59 ID:3i4y/tf+] >>126 >>124 みたいな事もiscript内で出来る?kwsk 途中から再生するだけなら・・・ [iscript] //第一引数:ファイル名 //第二引数:ループするか(TorF) //第三引数:サウンドを再生始める場所[ms] function totyuu(f_storage,f_loop,f_positionMS) { tf.volume=kag.bgm.currentBuffer.volume2; kag.bgm.currentBuffer.volume2=0; kag.bgm.play(%[storage:f_storage,loop:f_loop]); kag.bgm.currentBuffer.paused=true; if(f_positionMS>kag.bgm.buf1.totalTime) { System.inform("ファイルのトータル時間を=>"+kag.bgm.buf1.totalTime+"\n指定した時間=>"+f_positionMS+"が超えています","ERROR!!"); } else { kag.bgm.currentBuffer.position=f_positionMS; } kag.bgm.currentBuffer.volume2=tf.volume; kag.bgm.currentBuffer.paused=false; // kag.bgm.fade(%[time:1000,volume:tf.volume]); } [endscript] [eval exp="totyuu(`"dawn.ogg`",`"false`",5000);"] フェードってどうやるのかな:(;゙゚'ω゚'):
129 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 17:41:19 ID:cGph92cL] >>128 や、単純に、 function work(param) { kag.historyLayer.store("\n" + param + "\n"); // ほか必要な処理とかてきとーに } とか複雑な処理を封じる関数つくっとけば呼びかたがシンプルになるから楽っしょってだけの話。 エンティティ使うとわけわかんなくなるなら、tf とかに変数保存しておいて、それそのままグローバルに使うのが楽。 しかしその場合、変数への代入処理を eval で書く場合、マクロ引数を mp でアクセスするしかなくてちと微妙ではある kag.tagHandlers = function(elm) {
130 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 17:52:40 ID:cGph92cL] 書きかけでだしてもーた。AfterInit.tjs に以下をたして、KAGからは [set name="tf.value" value=値] とか使えば、value 部分にマクロの展開引数とかエンティティとか使えて便利。 kag.tagHandlers.set = function(elm) { var name = elm.name; if (name !== void) { local l = name.length; if (l > 3 && name.substr(0,3) == "sf.") { sf[name.substr(3)] = elm.value; } else if (l > 3 && name.substr(0,3) == "tf.") { tf[name.substr(3)] = elm.value; } else if (l > 2 && name.substr(0,2) == "f.") { f[name.substr(2)] = elm.value; } } return 0; } incontextof this;
131 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 18:02:12 ID:8aFL/sP0] あー駄目だ・・・ [eval exp="tf.bgmtime = kag.bgm.currentBuffer.position"]\ で現在再生中のBGMのpositionを取得しておいて、 BGM.tjsを弄って、300行目ちょい辺りの「buf.samplePosition」に、 elm.positionを追加したfadeinbgmからpositionに入れた数値を代入してみてるんだけど [fadeinbgm storage="bgm" time=1000 position=1500000] とかだと途中から再生されるのに [fadeinbgm storage="bgm" time=1000 position=&tf.bgmtime] っていう風にやると途中からにならない 意味が分からない・・・
132 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 18:15:20 ID:pbpSRJov] fadeinbgmをやる前に、tf.bgmtimeの値をきちんと確認してみれ @eval exp="System.inform(tf.bgmtime, typeof(tf.bgmtime))" とかしてやれば tf.bgmtimeの値とデータ型(ちゃんと数値になってるか?voidとして乙ってるんじゃないか?とか)が取れる筈だ
133 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 18:27:21 ID:cGph92cL] >>131 samplePosition と position は単位が違う samplePosition に代入するなら samplePosition を取得しないと。
134 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 18:37:58 ID:8aFL/sP0] >>132 データ型もチェックして、int変換とかかましたりして それでも動かないからおっかしいなーと首を傾げてた・・・んだけど >>133 ぎゃおおおおおお!?そんな罠が!!! 合わせたらちゃんと動いた、本当にありがとうございました
135 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 18:40:56 ID:A8DIW8O6] >>124 まだ、がんばってる? 「@ つき文字列即値」で、 [link exp="&@'kag.historyLayer.reline(); kag.historyLayer.store(\'${mp.str}\'); kag.historyLayer.reline(); kag.historyLayer.reline();'"] exp属性の中味を関数化するなら、引数でmpを渡す。
136 名前:135 mailto:sage [2010/06/03(木) 20:31:36 ID:ozYmYk0X] ゴメむ >>135 の場合は渡すのmpじゃなかった… @macro name="dd" [link exp="&@'tf.dd(\'${mp.str}\')'"][emb exp=mp.str][endlink] @endmacro @iscript tf.dd= function(str){ historyLayer.reline(); historyLayer.store(str); historyLayer.reline(); historyLayer.reline(); } incontextof kag; @endscript linkのexpの話は、ここの過去ログその18の672辺りに出てる。 メッセージ履歴に選択した選択肢を表示してあげるの、親切でいいかもね。 丁度、自分もどうしようか迷っていたので、参考になったd。
137 名前:名前は開発中のものです。 mailto:sage [2010/06/03(木) 23:58:23 ID:3i4y/tf+] >>130 ごめん俺にはそれの使い方がよく分からんorz >>136 うおおおおすごい、有難うございます まさに思い通りの動きです・・・。 自分初心者なのでよく分からないのですが tf.dd= function(str){〜} incontextof kag; と言うのはどういう動きになるんでしょうか function tf.dd(str){〜} incontextof kag; のような感じなのかなー/(^o^)\
138 名前:136 mailto:sage [2010/06/04(金) 00:34:06 ID:BYfWUNxd] >>137 そこら辺は、式中関数をtjsリファで調べて。(下手な説明より正確で分かり易いと思うから)
139 名前:名前は開発中のものです。 mailto:sage [2010/06/04(金) 00:36:50 ID:CJRqrvUY] >>138 了解! 沼にはまってたので助かりました。本当に有難うございました。