ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その16
http://pc11.2ch.net/test/read.cgi/gamedev/1227735828/ 吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/ 吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/ ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
必要に応じて
>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
乙です
!,-/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ,
i''./:::::::::::::::::::::://::::::l:l'i::::::ヽ:::::::ヽ:::::::::::::::l丶
お尻の穴に 〉!:::::::::::::::l:::::://l:::::/ll .lヽ:::l !ヽ::::l:ヽ::::::::i::l::l
指をいれて ヽ::::::::::::::l:l::::/:l .l:::/ l l,ヽ:l-l-l:::lヽ:ヽ::::::l:l.ll
匂いをKAGと l::l.l:::::::ll.l:::l''l~~∨' ' ' _,-'i-∨ l::::l::::l:l,,l_
_l::l .l::::l .l,l:l''~(~~i'' l ヽノiヽ.l:::::l:l:l::::::~''-,_
新スレですよ _,-'':::l:l l:l.l '~l .ll||ll l l l|||l.ノ l:::::l-''''''''---,,'-,_
,-':::::_,,,-ヽl::::::l ヽ,,,,,,ノ '--'' l::::::l ~
/-''''~ l:::::::l.l ____'___ ./l:::::::l
l:::::::l'ヽ. l l / l:::::::l
l:::::::ll ',,- ,_ ヽ-' _,-''--,,ll::::::l ~
新スレで早速質問です。
「最初に戻る」タグでエラーが出ます。
---シナリオ
*title_menu|タイトル
[startanchor]
[cm]
---エラーの内容
タグ : startanchor ( ← エラーの発生した前後のタグを示している場合もあります )
関数ではないかプロパティの種類が違います
----
コンフィグで最初に戻るは有効にしてあります。
セーブデータ消したり再起動しても同じくエラーです。
[startanchor] を消せばそれ以降は動作します。
情けないですが、何が悪いのか…他に設定必要でしたっけ?
吉里吉里 ver 2.30.2.416
最初に戻るタグは[gotostart]だよ
>>8 startanchorはちゃんとセーブ可ラベルの後に書いてあれば
特に設定はいらんはず
MainWindow.tjs等を変に改造しているのでなければ
エラーメッセージのとおり、前後に問題がある可能性もある
吐き出されたエラーログの最後のあたり(「trace:」以降)をたどれば何かわかるかもしれん
>>9 startanchorは「最初に戻る」の有効・無効ですよね
失礼しました
>>10 >>8です
ご指摘のとおり、MainWindow.tjsの変更部分でのエラーのようです
trace:以降に覚えのある行が… 自業自得…
本当にありがとうございます、助かりました!
KAG2.x 互換モードを使ってる人って多いのかな
シナリオフォルダ内のファイルをフォルダで分けたいけど、
[jump storage="1\1.ks" target= *start]
って書いても読み込んでくれない、無理なの?
>>13 Storages.addAutoPathでパス足せばいいんじゃね
15 :
名前は開発中のものです。:2009/02/14(土) 15:29:23 ID:KxZkIzss
templateフォルダをkrkr.eXeにドラッグすると
スクリプトに例外が発生しました
script exception : Config.tjs が見つかりません
ってエラー通知が出るんだがどうすればいいのか
Config.tjsがtemplateフォルダにあるか見ろ
>>13 1\1.ksじゃなくて1/1.ksって指定してみると幸せになれるかも。
>>15 Config.tjsは最初別の名前になってるので、
systemの中のそれっぽい奴をリネームすると吉。
>>15 で、Config.tjsはsystemフォルダ内に実際にあるのかね
>>14 レスはやw、Initialize.tjsに追加して上手くいきました、ありがとうございます。
日記でごう氏は誰と闘ってるの?
リンク貼ってるんだからその先くらい見ろ、
まぁ斜め読み必至だが。
>>22 気になったんで読んできたけど、リンク先の人が普通に電波にしか見えない
何者なのかは知らんけど、ごうも何故こんなのの相手する気になったんだか
まずその自分が書いたというTJSのソースを出そうな
Nスク公式BBSの教えて君レベルはマジ半端ねえ
この手の連中には、どこもみんな苦労してるんだなと思った
>ごう氏
日記ひどいなw
電波送る阿呆に拾う阿呆って感じだな。
勝手にweb上でやってるから他人が見てんだろ
Nスクの人も誰かと闘ってるし、プログラマって暇なんだな
MAW3はやっぱハリポタのパクリだったのかw
開発:演出向上したいけど3DやCG枚数で解決するには現状負担が大きい
技術:というわけでそこ抑えるためにシステム側からも模索している
電波:それが3D使わない、CG増やさない事の理由になるので技術屋は別の方法を考えろタコ
ごう氏のはこんな感じか。
電波が良作を作れるだけの人材、費用、環境を提供すれば解決だな。
CG枚数増えれば販売価格に転嫁しなきゃならんし、
3Dできる人材探す手間かかるし(まともな人はコンシューマに行くだろうし)、
現状の状態がなにげにバランスとれてるのかもしれないな。
作ってる側からすれば開発費と期間をくれ、となるが不況だと冒険する会社はないだろ。
板挟み。
つか3Dの立ち絵でADVやりたいと思うような需要があるのか
>>34 なんだか良く分らんが、どうして上から目線のオタクって、読みにくい駄文羅列
するんだろう。
内容的に3分の1でいいじゃん
>>34のを要約すると、ビジュアルノベルはもうマンネリだから
東方みたいな新規ジャンルを開拓しる
ってとこか
なんと二行に圧縮されてしまった
東方ってもう10年以上前からあるんだがw
@女キャラ多数男ほぼゼロ
Aシナリオ比重下げる
B二次創作許可
東方のヒットを意識ってこれだろ。
シューティングってジャンルは関係ない。
難易度が高いパズルでも変わらず人気でたろうしな。
まあ個別はどれも斬新ではないが複合してエロゲ業界でやれば斬新かもな
>>34も吉里吉里つかって同人ゲー作ってみたらいいのに
たぶん目が覚めると思う
もし東方がSTGではなくローグライクだったら、どうなっていただろう
スレチだわ。すまん
そうだな
反省する
ああ・・俺もつい誤爆してた 今は申し訳ない気持ちでいっぱいです
ごう氏が反応して俺が電波のページを見た時は
同日にまだ東方の記事が無かったので立ち絵云々とは関係ない予感
じゃあ、スレチじゃない方向として、吉里吉里にDX機能を付ければ、STG
やSLGやRPGなんかが結構出る様になるだろうか、同人商業含めて。
ノベルでも凝った演出の為に必要だったりするかも知れん。フェイトは入れて
るらしいしな。
TJSは言語としては分りやすい部類だし、正直HSPとかから始めるより、
KAGでノベルにミニゲームなどを入れながらプログラムを覚えて、別のジャンル
に移行した方が完成率は高い気がするんだよね。
まあ、吉里吉里の方向としてマルチプラットフォームを目指してる訳だからDX
は違うのかもしれんけど。
っIrrlichtプラグイン
とかなら既にある
50 :
名前は開発中のものです。:2009/02/18(水) 11:26:16 ID:oSZmZkbp
流れ読まずにすみません。
吉里吉里でゲームを創作しているんですが、いざbgmを流そうとしたら鳴りませんでした。
そこで別に新しくフォルダを作り、下のように書いて実験してみましたが、やっぱり鳴りませんでした。
[wait time=200]
*start|スタート
[cm]
こんにちは。
[playbgm storage="h2"]
[if exp="kag.bgm.currentBuffer.status=='play'"]
BGMは演奏中です。[l][r]
[endif]
[if exp="kag.bgm.currentBuffer.status=='stop'"]
BGMは停止中です。[l][r]
[endif]
[if exp="kag.bgm.currentBuffer.status=='unload'"]
メディアが開かれていません。[l][r]
[endif]
これで実行すると「BGMは演奏中です」と出るのに音が鳴りません。何か対処法はないでしょうか。
もしかしてmidi?
だとすると、WindowsMediaPlayerのエラーで、サウンドのシンセサイザってところが勝手に0になるからそれを直せば鳴るよ
ウィンドウズツールバー右下のスピーカーマークダブルクリックして
シンセサイザの音量を上げてみて
もちろんミュート外して
それ以外だとConfig.tjsでちゃんと種類を選択していないのも考えられる
52 :
名前は開発中のものです。:2009/02/18(水) 11:42:23 ID:oSZmZkbp
>>51 ほんとうだ・・・鳴りました!
ありがとうございます!
53 :
名前は開発中のものです。:2009/02/18(水) 11:55:00 ID:J8cTo8uq
>>52 配布する時のドキュメントにFAQとして入れとくといいよー
吉里吉里からOSのサウンド設定いじれたらいいけど、それだと自分で下げても勝手に上がってしまう
迷惑なソフトになっちゃうしねー
54 :
名前は開発中のものです。:2009/02/18(水) 12:00:55 ID:CQ81txgw
こんなバグ放置してるMicrosoftが悪い
のは確実なんだけど
こんなにバグ改善されないのを見るとよっぽど重要なミスだったのか?
WindowsMediaPlayerクラスのものをまた1から組み直すとか考えただけで恐ろしい
全角……
56 :
名前は開発中のものです。:2009/02/18(水) 12:19:29 ID:CQ81txgw
>>55 ここはそんな下らないことをつっこむスレなの?
あほなの?
57 :
名前は開発中のものです。:2009/02/18(水) 13:07:47 ID:J8cTo8uq
前スレで、BGMの演奏時間取得するため
kag.bgm.buf1.totalTime
を教えていただき、これで上手く時間取得できたのですが、
対応しているのはoggのみで、mp3はNGなのでしょうか。
wump3.dllは入れてあり、mp3演奏自体は問題ありません。
代案その1、mp3をoggに変換する
61 :
名前は開発中のものです。:2009/02/19(木) 22:05:19 ID:klY0EX0X
>>60 oggはもうできているので、mp3でもできたらな、
と欲張ってるんです。
Volumeなどもoggと変わらず調整可能なので、
totalTimeもうまく出せるといいんですが……。
プラグインの世代が違うから無理だろう。たぶん
欲張るのはいいんですが。
mp3のライセンスが失効するのいつだか知ってますか?
gifみたいにすでに失効してるのならいいんですが
もし失効してなかった場合、mp3のライセンス問題ではいろんな会社が訴訟されてますし
5000本以上販売したらUS$2,500.00という明記があるぐらいですから
そういうのにちょっとびくびくしながら使わないといけないかなという心配があります。
mp3のライセンスがすでに失効してるのがわかってる、もしくはライセンス料ぐらい払ってあげよう
という太っ腹な製作者でないとmp3は、ちょっと使う勇気がないですね。
そこらへんの状況が、未だにちょっとわからないのでOggでいいような気がしますが
Oggでもそんなに音の質は悪いとは思わないですし。
oggは普及率が悪いだけで機能的には遜色ないよ
>>59 ちょっとまった
MP3プラグインは既に公式でも公開されてないぞ?
一体いつの吉里吉里使ってんの?
63も書いてるがmp3のライセンスは異常なまでに面倒くさい。
mp3プラグインに関してはW.Deeタンも削除=サポート放棄してる代物だし
訴えられたら直でお前さんの所にくるんだぞ
相当やばいから今のゲーム製作者はmp3使わない
つうかW.Deeタンが公開止めた物を、第三者が勝手に再配布(プラグイン使うって事はそういう事)したら
公式にまで迷惑かかるっての理解してるか?
66 :
59:2009/02/20(金) 00:00:01 ID:3Lb8OX1V
配布するゲームにmp3のファイルは使いませんし、
プラグインの再配布もしませんし、フリーソフトです。
吉里吉里で音楽プレイヤーのようなことをしてみたかったんですが、
いろいろと無理っぽいですね。
どうも失礼しました。
いや、お前さんの書き込み見ると
「wump3.dllでmp3ファイル使いたい」としか読めないんだが。
なんにせよ吉里吉里でmp3は止めとけ。
というか、まともに吉里吉里勉強してたなら
mp3が吉里吉里では使えない事は知ってなきゃおかしいんだがな。
前回も教えてらった上に努力の片鱗を見せずに
欲張ってまた質問という時点でわくわくしてくる
説教厨も同レベルだけどなw
自作のLayerオブジェクトを、前画面用と後画面用にそれぞれ宣言しました。
(仮にhoge, hoge_backとします)
それぞれのオブジェクトには変数aaa,bbb,cccなどを入れており、hoge.aaa=hoge_back.aaa、hoge.bbb=hoge_back.bbb・・・
という風に、常に値を同期させたいのですが、onCopyLayerとonExchangeForeBackでは、
(hoge_back.assignImages(hoge) hoge_back <-> hoge)
常に前面の参照をhogeにする事は出来るのですが、一回トランジションすると
hoge.visibleで表示は切り替えられますが、hoge.aaaの中身はhoge_back.aaaのものになってしまいます。
(hoge.aaa=100、hoge_back.aaa=0として、一回トランジションするとhoge.aaa=0になる)
変数の参照も常にhogeにするようにしたいのですが、どのように記述すればいいのでしょうか?
aaaなどをプロパティにしてみたら?
追記です。
onCopyLayerで、直接「hoge_back = hoge」と書くと、一度のトランジション後
hoge_back.aaaの中身がhoge.aaaと同じになるのですが、
この時にオブジェクト内の関数(仮にhoge.Testとします)の中で「this.aaa」というような記述を書くと、
hoge.aaaもhoge_back.aaaも値は100なのにもかかわらず、なぜか0という値が出てしまいます。
onCopyLayer内で「hoge_back.aaa = hoge.aaa」と書くと、this.aaaの値はちゃんと100になります。
この違いは一体どこから来ているのでしょうか・・・?
73 :
名前は開発中のものです。:2009/02/20(金) 02:29:58 ID:Tr9v252c
KAGプラグインを作って、トランジョンが入ったらずらずらずらーっと入れ替える
じゃまっくさいけどまっとうな手かなぁ
各変数を配列で管理していれば、for構文でhoge[i]、みたいに書いて楽に出来るのですが
aaaとかbbbというのが10個も20個もあると、全部書くのも冗長で大変なので
何かいい方法があればいいのですが・・・
よくわかんないけど、
hoge_back = hoge
だったら参照してるだけでコピーじゃないよ。同じオブジェクトだよ。
そのへんじゃないの。
いろいろと根本的に間違えてるな
キーワードは「参照」。TJS の変数はオブジェクトはすべて参照扱いになる。
>>70 hoge_back <-> hoge
してたら入れ替わるのは当然の話
>>72 hoge_back = hoge;
これをやると、hoge_back は hoge と全く同じものを指すようになる。
hoge_back.aaa と hoge.aaa は物理的に同じものになって、
もともと hoge_back の中に入ってたものはゴミになる。
C言語のように中身を代入してくれるわけじゃない。
その中の関数の参照を var func = hoge_back.Test; といった形で
あらかじめ抜き出しておいた場合、その function 自体が元のオブジェクト(hoge_backだったもの)
の参照を this として保持したままになってるので、その中で aaa を参照すると、
もとの hoge_back.aaa だったものが参照される。だからその挙動で正しい。
やらないといけないことは
hoge_back.aaa = hoge.aaa
のように、必要なメンバを全部コピーしなおす作業。
手間だがそれ以外の方法はない。全部書くべし。
>常に値を同期させたい
これだけを考えるんだったら、お行儀がわるいが、global
皆さんありがとうございました。
今からglobalに書き換えたりするのはちょっと大変なので、
手間はかかりますが、
>>76の方法などを参考にして地道に対応したいと思います。
質問です
ジャンプタグで指定したターゲットの有無を確認、又は
指定したターゲットがなかった場合に指定した場所に戻すような処理はどのようにすればいいでしょうか
試してないけどConductor.tjsのエラーの例外処理の所で
jumpタグで且つ特定のエラーメッセージだった場合に
条件分岐させて元の場所にジャンプさせれば出来るんじゃなかろうか。
ラベルでisExistentStorageみたいな事が出来るなら
中身をいじる必要が無くなるからそっちの方が良いと思うけど。
>>81 返信ありがとうございます
コンダクターの中ですか・・・覗いて見ましたがちょっと無理かもです
>ラベルでisExistentStorageみたいな事が出来るなら
Fileの有無は私もisExistentStorageを使用しています。
ラベル版があれば便利ですね確かに・・・
もう少しコンダクターの中を覗いてみようと思います。
83 :
名前は開発中のものです。:2009/02/21(土) 19:32:36 ID:KMxIUG1a
ファイル読み込んでラベル文字拾ってくるとか、そりゃもう単純に。
テキスト処理ってTJSで書くとなんだかじゃまくさいねー
>>82 ラベルが無い場合はKAGParserが例外を投げてるからcatchして処理続行しかなさげ
自前でラベル解析したほうがスマートっぽい
ハーたん観察日記
で。あんたら区切った先について処理するのに手一杯で、
手前のフォーマットについて十分に検討しないままじゃないのか。
使える時間は限られてるから出来ないことはいくらでもあるし、そこまで手が回らないのは判る。
が、吉里吉里はシューティングだって作れるというなら東方ブームを受けて
何故ノベルダンスシューティングエロゲのフォーマット開発で
盛り上がらないんだとゆー話に繋げたかったが時間が無いので端折る。
ヲチは板違い
2ch最低のヲチ板でどうぞ
20個あるアイテムをあらかじめ配列に入れてあります。
のちのイベントで、選んだアイテムによって分岐させるため、
配列の要素番号(添え字部分)を、とっておくことは可能でしょうか。
選択肢のリンクを押したときに取得できればいいんですが。
ぐぐっても方法が分からず、
[link target="*1" exp="i=4"][emb exp="f.item[4]"]を買う[endlink]
のように、変数に自力で入れてます。
吉里吉里の質問以前の問題かもしれない…
i=4 が f.i=4 とかの間違いだとして、それでいいんじゃ?
何が不満なのかがわからん
link の処理自体を変数で作りたいという話なら、エンティティ機能を使って
exp の部分を動的に作ればいい。tf.n に対象が入ってるとして、
[link target="*1" exp="&'f.i='+tf.n"][emb exp="f.item[tf.n]"』を買う[endlink]
>>88 です
変数やら配列やら初めて使って
とりあえず動いた、けど、ホントはちゃんとしたやり方があるんじゃ?
と不安でした。
これでいいのかー ほっとした…
>link の処理自体を変数で作りたいという話なら、エンティティ機能を使って
これもやりたかったことのひとつでした。
有難うございます。
91 :
名前は開発中のものです。:2009/02/25(水) 03:28:20 ID:t5r3pFrz
質問です
シナリオからConfig.tjsへアクセスしたいのですが
例えばメニューのロードを消す場合なら、
[eval exp="kag.restoreMenu.visible=false"]
同じように、画面サイズを変更したいと思ってscWidthなどでぐぐってみたものの、
Config.tjsそのものを変更する方法しか見つかりませんでした
そういうものなのか、調べ方が足りないのか‥‥
3時間ほどぐぐって挫折しました orz
すみませんsage忘れました
[forelay][backlay]のタグに相当する処理は、tjsではどう書けばいいのでしょうか?
MainWindow.tjs内を検索してみたのですが、自分の知識では理解できませんでした…
>>91 windowzoomプラグインでの画面サイズ変更は駄目なのか?
>>93 kag.backupLayer(,false)
これでforelay、falseをtrueにするとbacklay、レイヤを指定するなら
kag.backupLayer(%[layer: "0"], true)
という感じ。
知識で理解出来ないならまず試行錯誤した方がいい。
タグ改造とかで要領が解ってくれば
いろいろな所が検索とリファレンスで何とかなってくる。
>>94 無理だということが理解できたらおkなんです
いくつかの項目はシナリオからConfig.tjsへアクセスできたので、
その方法で全部できたら、Config.tjsのどこを変えたか覚えなくて済むなーという素人的発想です
>>94 ありがとうございます
いろいろ試してみます
>>95 >Config.tjsのどこを変えたか覚えなくて済む
これが目的ならOverride,tjsとかで個別に値を設定する方法がいいかも。
変更する部分だけの記述になるので見た目が楽になる。
function KAGWindow_config_override()
{
;scWidth = 80000;
;scHeight = 60000;
}
こんな感じ、
他のコンフィグの関数名もConfig.tjsに載ってるのでコピペで、
メニューだけは_override付けなくていい。
>>97 おお、これぞ求めていたものです
ありがとうございました!
根本的な質問で悪いが
吉里吉里のいったいどこが素晴らしいの?女子高生
根本的な質問で悪いが
吉里吉里読めたらVBいけね?女子高生
>>102 他者は知らんがオレはイケナイからココにいる。
105 :
名前は開発中のものです。:2009/02/25(水) 19:19:09 ID:fPAKvkNQ
いまどきVBですかい
常識的に考えて→常考→jk→女子高生ってことかな
どっかで流行ってんの?
107 :
名前は開発中のものです。:2009/02/25(水) 19:30:50 ID:fPAKvkNQ
いまでもゲーム作るのにVB使ってる人って結構いるもんなの?
素人がセーブ機能や文字制御や各種音量やらなんやらの設定含めて
ゲーム作って、完成すると思うか?幼女
しかも、1回作ってそれを使いまわすと、劣化吉里吉里が足元に
転がるだけ、VCがバリバリイケてもノベルなら吉里吉里のが
ゲーム部分にパワー使えるんじゃね?幼女
109 :
名前は開発中のものです。:2009/02/25(水) 19:35:56 ID:fPAKvkNQ
きっと「車輪の再発明」が大好きな人なんだよ。
熟女って人気ないのかな
111 :
名前は開発中のものです。:2009/02/25(水) 19:38:28 ID:fPAKvkNQ
「自前でスクリプトエンジン書けるスキルを身につける」っていう目的があるか、
「吉里吉里を使えなくて自前で実装せざるを得ない」事情があるなら自前実装する意味もあるだろうけどね。
AS3のがよっぽどTJSに似てるし、そっちで組み直すほうがまだ有意義だとは思う。
既にFLASH製ノベルゲームエンジンはLemoNovelとかがあるけど。
113 :
名前は開発中のものです。:2009/02/25(水) 19:43:09 ID:fPAKvkNQ
TJSって型チェックがないのが怖いよな
型チェックがあったら初心者が戸惑うだろ
>>113 それってVBじゃないの?
吉里吉里はマニュアルがあまりにもひどくてあきらめたが女子高生
うぜぇ
女子高生
118 :
名前は開発中のものです。:2009/02/25(水) 22:33:00 ID:fPAKvkNQ
>>115 型がないのはVBSとかVBAだろwwwwお前実はVB知らねえだろwwww
「茄子と秋刀魚の美味しい世界」っていう吉里吉里製のゲーム、
プログラマが三人で作ってるみたいなんだが、なんか特別な事でもしてるのかな
作った人に聞け。
>>119 吉里吉里製ならプログラマーはDeeたんじゃね?
単に作った人がプログラマとスクリプターを間違えてるんだね
サイトだけ見て早とちりしてしまったorz スレ汚しスイマセン
何を言ってるんだ?
スクリプト言語はプログラム言語の一種であって
スクリプタをプログラマと呼ぶのは少しも間違ってない
あと吉里吉里作者は開発チームの人間じゃないから
お互いのためにも名前をそのままクレジットに入れてはいけない
エンジン提供とか御礼とか、それとわかる形ならいいだろうけど
ググってたら
「吉里吉里(ゆりゆり)」
とか書いてあるサイト出てきて吹いた
>>124 スクリプタっていうのはKAGでいうシナリオファイル書く人。
プログラマはプログラム作る人。
テスターはテストする人。
トースターはパンを――いや、なんでもなんです。ゴメンナサイ。
128 :
名前は開発中のものです。:2009/02/26(木) 07:29:02 ID:k5EhtDFB
一般的に、ゲーム開発ではよくスクリプトエンジン含めてシステム構築する人をプログラマー、
スクリプトを打つ人をスクリプターって言うね。
まあ、スクリプト言語もプログラミング言語の一種だってのは事実だろうけどね。
KAGはスクリプト言語じゃありませんよ。構造化文書のためタグに過ぎません。
制御構造あるし立派に言語だな
吉里吉里でSLG作ってる猛者は、やっぱTJSでバリバリ組んでのかね。
これならプログラマっていっても問題ないじゃん。
KAGのタグは構造化文書風には書けるけど、実際に構造を定義してるわけじゃない。
HTMLやXMLのタグとは全く別物で単なるマクロの命令文。
つまり100%スクリプト。
プログラマーだとかスクリプターだとかどうでもいい!
吉里吉里使いとかキリキラーとかカグラーとでも呼べよ
それをいうなら吉里吉里人だろjk
井上ひさし乙
吉里吉里舞
カグリストと言う厨っぽい名称が浮かんだので、KAG使い、TJS使い等に
分けて能力者風に解説しようとしたが、無理だった。
カギスト、じゃないのか
スメリスト
140 :
名前は開発中のものです。:2009/02/27(金) 21:04:33 ID:/9DIdx51
嗅ぐ人
【KAG使い】
お尻の穴に指をいれて匂いを嗅ぐと新スレである事を教えてくれる
右クリックサブルーチン中にオートにするにはどうすればいいですか?
[rclick call=false jump=true storage="rclick.ks" target=*back enabled=true]として
kag.onAutoModeMenuItemClick();
kag.onRightClickMenuItemClick();
では右クリックサブルーチンが解除されるだけでオートモードにはなってくれなかったので。
>>132 IFとかJUMPとか、見た目タグだけど、実際はそうではなくてパーサ側で制御処理してる
スキップ、オート、それやタイトルに戻るなどのラベルのジャンプは
タイマーと組み合わせて、
サブルーチンから戻った直後に発生させる。
トランジションで(右クリメニューが)閉じる時は
timeよりintervalを長めにする。
145 :
142:2009/02/28(土) 03:41:00 ID:pV+jS6sW
経過時間はどのように表示するのでしょうか?フラグ操作ですか?
○○秒以内に答えないと不正解になるコマンドを作りたいのですが…
147 :
名前は開発中のものです。:2009/02/28(土) 14:58:55 ID:LqQy7pZD
>>146 秒数取得ってなんかあったっけ?
メーター作りたいなら、
たとえば5秒以内に答えさせたいなら
トランジションで5000msかければむら無くできるよ
よく分からないならkagと心中あたりに説明あった気がする
制限時間付き選択肢は単純にはsじゃなくて
waitで止めて一定時間経過でjumpさせれば良かったような。
細かい事は公式ログとか漁れば出てくると思うぞ。
コンダクタとめて非同期タイマーで待たせるんだろうけどKAGで書けるかは知らん。
TJSに挑戦 に時計をつくるってあった気が
質問の感じからするとTimerって何?なので
>>147-148が無難か
TJSに挑戦 なら、時間制限選択肢の講座があるよ。
プラグインがあるようだ
timeout タグ どうよ?
153 :
名前は開発中のものです。:2009/03/01(日) 17:19:34 ID:cUIuNaNG
突然ですみませんが、現在吉里吉里エディタを使用してノベルゲームを作っているのですが、
先日エディタのほうでファイルの読み込み&作成時にエラーが発生して.ksなどのファイルが吉里吉里エディタで使用できなくなりました。
どなたか原因と思われるのがあればおしえてください。
以下エラー内容
−−−−−−−−−−−
アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。
[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。
[終了]をクリックすると、アプリケーションは直ちに終了します。
フォント'Courier New'はスタイル'Regular'をサポートしていません。
−−−−−−−−−−−
OSはvistaです。
説明不足でしたら言ってください。
一応Googleでも調べてみたのですが、調べ方が悪いのか解決策が見つかりませんでした。
長文失礼しました。
よろしくお願いします。
>>153 まずVistaなんていうクソOSをやめることから始めるんだ
吉里吉里エディタ知らんけど
Courier Newフォントを使わなければいいんじゃ。
(エディタのフォントオプションなんかで指定?)
でも吉里吉里エディタは公開停止らしいので
後継のKKDE使え。敢えて昔の使うならウダウダ言うな。がスジだと思う。
156 :
名前は開発中のものです。:2009/03/01(日) 17:44:20 ID:cUIuNaNG
>>155 すみません、間違えました。
KKDEです
verは最新のです。
KKDEでもVistaサポートしてなさそうだな
158 :
157:2009/03/01(日) 17:49:41 ID:eYJ0sYJC
159 :
名前は開発中のものです。:2009/03/01(日) 17:51:15 ID:cUIuNaNG
>>158 はい、以前はちゃんと使用できていたので。
特に設定はいじっていないのですが、なぜか読み込めなくなったんです。
ちなみにKKDE自体はちゃんと起動します。
突然も何も最新って昨日じゃん。
とりあえずαって付いてるから以前のバージョンに戻して問題無いなら
フィードバックしてみた方がいいかもね。
てか
>>155のフォント変更はやったのか?
161 :
名前は開発中のものです。:2009/03/01(日) 18:11:19 ID:cUIuNaNG
>>160 環境設定とかいろいろ見てみたのですが、フォント設定がどこにあるのかわからなくまでやっていません。
バージョンを戻してもだめでした。
というか、以前のバージョンでだめだったので最新のにしたので…
ところでフィードバックの方法がよくわからないのですが…(Googleでも調べてみたのですが…
162 :
名前は開発中のものです。:2009/03/01(日) 18:12:07 ID:cUIuNaNG
163 :
名前は開発中のものです。:2009/03/01(日) 18:14:58 ID:idjBCaEs
164 :
名前は開発中のものです。:2009/03/01(日) 18:37:34 ID:cUIuNaNG
>>163 すみません、indexとはどこのでしょうか?
166 :
名前は開発中のものです。:2009/03/01(日) 19:43:09 ID:cUIuNaNG
>>165 それもそうですね。
皆さんお騒がせしました。
とりあえずフォントの変更してみます。
ご協力してくださった方、ありがとうございました。
KKDE名前変えてくんないかな。
"KKDE" -KDEで検索しないとKDEまでヒットするのが困る。
試しにKKDE入れてみたが
設定>ファイルタイプ別設定から普通にフォント変更出来るやん・・・。
vistaでは表示されてないとかじゃなければちょいと厳しいレベルだ。
これで解決するかどうかは知らんが後は
>>165だ。
169 :
名前は開発中のものです。:2009/03/01(日) 20:14:08 ID:cUIuNaNG
>>168 ちなみにそこは先ほど見つけたのですが、通常のMSゴシック体になってました。
作者に言え
やったーKKDE2バージョンアップで起動するようになったー
誰も引っかからないね
avastで検出するようになったんだが俺だけ?
2.30 Rev.2 ウイルスとおっしゃる
2.30 Rev.1 問題なし
2.30 問題なし
訂正
2.30 stable rev.2 ウイルス
2.30 stable 問題なし
2.30 RC1 問題なし
>>174 おお、仲間がいてほっとした
昨日までkrkr.eXeを実行していても何も起こらなかったのに
チェストに移動したら製作できないできないじゃないか><
現作品のやつがまずアウト
他の作品作るのにコピーしたやつもアウト
ずっと前にダウンロードした旧バージョンのもアウト
kikyou.infoから最新版をダウンロードしてもアウト
昔ダウンロードした他の吉里吉里製の作品はおk
http://www.virustotal.com/jp/ このページにファイルをアップロードしたらいいらしいが、
チェストに移動せずに何もしないを選んだら、ファイルを見ようとするたび警告音
アップロードできてるのかも怪しい 0バイトとか出てたような
チェストの暗号化されたファイルのプロパティを見て、今日の日付のやつを
アップロードしてみたら異常なしだけど、これは暗号化されてるから意味ないのかも?
そちらは何か追加情報ありませんか?
177 :
名前は開発中のものです。:2009/03/03(火) 12:25:14 ID:vQ464eyf
avastのアップデートが理由だよ
avastの誤認はよくあること
誰かが(おそらく真っ先に企業が)avastに苦情入れるだろうから大丈夫
吉里吉里製の自社のソフトをウイルス扱いされたら企業も真っ青だねw
>>177 ありがとうございました
どうやら誤検出の可能性が大きいようです
大変、底辺な質問で恐縮だが、TJSでファイルを出力する方法を教えて頂きたい。
コンソールに文字を追加する方法でOK。
デバックの際に大変苦労していて、最後に落ちた関数くらい分らんと時間がいくら合っても
足りんのです。
私がコピーして使っているスクリプトに「catch(e)とthrow e」ってのがあるのですが、
catchが例外が発生したさいに動くのはわかりますが、throw eはコンソールにその例外情報を
書き込んでるんでOKでしょうか?
だとすれば、各関数の頭にthrow "関数名\n"; とかでいけますか
>>179 どういう状況なのかいまいち理解し切れてないけど、安易にコンソール出力方法を知るより
吉里吉里2リファレンスの目次で言う
『コントローラ 〜 コンソール』
辺りの項目を精読してTJSのデバッグってどういうものなのか確認し直すと良いと思います。
KKDE2、入力補完のタグや属性の隣に
簡単な説明出してくれないかなあ
フォーカス合わせないと表示されないのは地味に不便
>>179 エラーの発生箇所を知りたいって事かい?
というか179の言うデバッグってどんな作業を指すのか良くわからねぇ・・・
avastでのウィルス誤認とのことだが、
うちのPCはAVGantivirus入れてるが検出されて隔離されたぞ。
2つのウィルスソフトに引っかかるなんてホントに誤認なのか?
>>184 それ見る限りだとおもいっきり誤認みたいですな。
どうしてavastとAVGで同時に誤認したんだろう。
ウィルスって判断する情報でも共有してるのかね?
avast環境でavast無効化しないでやるにはどうすればいいんだ・・・・
例外に入れたのに相変わらず弾かれる・・・・
>>179 どう考えても、真っ先にすべきことは
リファレンスでcatchとthrowを見ることだと思うのだけど
見た?
AVG7.5でウイルス言われる!
って書き込みにきたら既に報告ありか
avastで
2.30 stable rev.2 ウイルス
2.30 stable 問題なし
2.30 RC1 問題なし
とのことだが、AVG8.0でも
2.30 stable rev.2 ウイルス
2.30 stable 問題なし
と出た。RC1は調べてないけど。
rev.2の変更点のとこに誤認されるようなコードがあったのかな。
190を訂正。
AVGをアップデートしたらrev.2もウィルスがヒットしなかった。
アップデートで誤認が解除されて問題なしのようです。
ということでAVGの人はもうウィルス云々は関係ないってことだね。
>>191 こちらAvastでも解除を確認
1日だけの騒ぎだったようです
なんで「車輪の再発明」が否定されるわけ?
Deeだったっけ?作者がある日突然有料化しますとか宣言した日にはどうすんの?
想定が甘い
まぁ、もっとも すでに吉里吉里の入門本は完成して販売もされていいるわけでして・・・
誤爆?それとも亀レスか?
「車輪の再発明」は目的に対して発生する物。
目的がゲーム作成”であるのに、基本となる機能であり、複数のツールで実装
されているテキストの編集機能や画面の操作機能を1から作るのが「車輪の再発明」。
仮にお前が吉里吉里を越えるゲーム作成ツールを作るなら、全ての機能は再発明に
ならない。
また、DX機能をフルに使ったノベルを作成したいと思ったら、吉里吉里では無理
だから、仕方なく自分で作るのも「再発明」にはならない。
有料化を含めて、あらゆる面での可能性を元に自分で新規に作るのは、「再発明」
以前の問題。
>>193 ライセンスについて勉強しなおしてこい。
既にライセンスされてるものを後から変更することはたとえ作者でもできない。
仮に新バージョンから有料になったとしても、古いものがソース改変可能な
状態でライセンスされているため、必要となればいつでもそこから fork できるし、
そうするものが出てくるだろう。
「オープンソースで公開する」というのはそういうことだ。
そんなことは dee たんは当然わかってるからとうてい有料化はありえない話だけどな。
目的が「ゲームを作ること」で、ターゲットがPCでかつADV的な物を作る上でなら、
吉里吉里(や他の既存のものなんでもいいけど)を使わないのは、コスト意識が低いと
言われてもしょうがないな。そのぐらい吉里吉里は目的に対して良くできてる上にリスクが低い。
目的が「エンジンを作ること」まで含むなら文句言われ筋合いはないだろな。存分にやってくれ。
この時点では
>>193が吉里吉里やNスク、FFD等を超える
超☆画期的なADVエンジンを開発するとは、まだ誰も予想していなかったのである
>>195 gif だったっけ? png だったっけ?
いきなり有料化したの
それが怖いのよ
シナリオジェネレータは作らされてはいるが、無償だし、態度でかいし、作る気にはならないw
とは言ったもののすでにあるんだろうね
これは公開するとADVゲーム市場が崩壊するからね
>>197 gifとjpeg(で、対応策として候補に挙がったのがpng)のはずだが
あれらはオープンソースではなく会社の作った拡張子なので全然別物
>>197 >ぼくは小学生だけど
まで読んだ。
中学生になったら、『オープンソース』といった知らない言葉が出てきたら
ネットで調べたりすることをお勧めする。
>>197 あれは特許がらみ。特許と著作権は性質が根本的に違う。
特許の場合、仮に全部自分が作ってもひっかかるから吉里吉里とかオープンソースとか全く関係ない。
シナリオジェネレータ?
手直ししなくていいような実用レベルのものができたら、
ADV市場どころかどこでもひっぱりだこだよw
公開すれば一財産築けるね
これは酷いw
ADVゲーム市場が崩壊するようなシナリオジェネレータとか
久しぶりに特大の発言来たな
なんだか意味不明なんで逃げますね〜
つ、釣りのつもりなんだろうか・・・・・?
それとも上でVBがどうのこうのって言ってた真性小学生か、既知外さんなの
だろうか。
2chとは思えない親切な回答を聞いて態度デカいと言い
子ども向けのクソ丁寧な説明を意味不明と言う
きっと大者になる
おおうましかがあらわれた!
とりあえず腹筋を崩壊させる才能はあるかもしれん
質問です。
文字を1ページ一括表示にしたいのですが、
できますか?
初めての吉里吉里/KAG作品を製作中。
1対1のカードゲームで互いの札の大きさで勝負が決まるようなごくシンプルなものなんだけど
ブラフも含めて相手の顔の表情を色々変化させようとしたらその思考ルーチンの複雑さに音を上げそうだ。
人間味のある思考って大変なんだなー。何かコツみたいなものってないだろうか‥ (´д`;)
よくある質問なのかもだけど、
掲示板とかでよくMainWindow.tjsに〜を追記してってのがあるけど、
これをAfterInit.tjsに書きたい場合(MainWindow.tjsを書き換えたくない)
どうするのかがよくわかんなくて、
例えば、
KAGWindowのメンバ変数を追加するとか、
関数に処理を追加したりとかがどうやるのかわからない。
具体的には、kagに変数loadflag=false追加して
loadBookMark内にloadflag=trueを追加したい。
これで栞ロード時に追加処理できるかなーとか思ったんだけど。
>>212 関連事項になるかも知れない
MessageLayer.tjsの変更点をAfterInit.tjsで書き換えるということを今してた
function hoge(){ から } までをそのままコピペして変更したらできた
関数は再定義しても問題ないということなのかな
と思ったら失敗してた orz
MainWindow.tjsにhoge(fuga)というメソッドがあったとすると、
AfterInit.tjsには、
kag.hoge = function(fuga)
{
System.inform(fuga);
} incontextof kag;
で上書きできるよ。
でもメンバ変数は別で管理した方が危なくなくていいんじゃないかな。
メンバ変数を追加したい場合、仮に変数名をtestとすると、Override.tjsに
global.KAGWindow.test = 0;
って書くか、AfterInit.tjsに
global.kag.test = 0;
で出来る。関数も同様。
追加したい処理がちょっとしたものなら、
>>215みたいに上書きするより
tf.hoge = kag.hoge;
kag.hoge = function(fuga)
{
//追加したい処理をここに記述
System.inform(fuga);
//本来の処理を行なう
tf.hoge(fuga);
} incontextof kag;
ってするのがいいと思う。
処理内容を根本的に変えたいのであれば
>>215だね
別に管理というと、
単純にシナリオファイル内でsf.loadflagとかにしたほうがいいのかな、安全性でいって。
シナリオファイル内(first.ksの最初とか)でsf.loadflag=falseとして、
kag.loadBookMark=function(num, loaduser = true)
{
// 栞番号 num からデータを読み出す
sf.loadflag = true;//←この行を追加
return loadBookMarkFromFile(getBookMarkFileNameAtNum(num), loaduser);
}
でいいのかな。
メンバ変数追加する場合は処理の辻褄合わせるために
起動の始めの方に一行追加してはっきりさせておいた方がいいけど
userフラグ(f、sf、tf)ならそれが必要なくなるから
手っ取り早く且つ解りやすく済むってのがある。
>>211 情報としては、自分の札の大きさ、相手の表情(の変化)などが
あるわけだと思うけど、
はじめから、ブラフを含めてとか考えると難しいことになりそうで
最初は素直なキャラから作り始めたらどうかな
結局216を参考にして、AfterInit.tjsに
global.kag.loadflag = 0;
tf.loadBookMark2 = kag.loadBookMark;
kag.loadBookMark = function(num, loaduser = true)
{
//ロード時の追加処理
loadflag = true;
tf.loadBookMark2(num, loaduser = true);
} incontextof kag;
でうまく動きました。ありがとう!
222 :
211:2009/03/07(土) 17:11:29 ID:faaX873R
>>219 RESありがとう、正にその通りで苦労してるところ。
割と素直な2人目までは出来たんだけど、だんだん強くなる3人目からがややこしくなってきた。
表情も最初は顔の他に手のポーズまで凝ろうとしたら1人の表情が200個ぐらいになって
整理がつかずバグだらけだったので、顔だけにしてさらに押さえて1人50個ぐらいにまで減らしたよ。
表情のファイル名も最初はsmile1、smile2とかだったのを"ああっ!"とか"ビクビク"に変えて
ようやく整理出来てきた。
今のところこういう試行錯誤ばかり多くて、製作が進んだり戻ったりするのが一番ツライ。
思考ルーチンもだけど、そこから分岐した差分の管理とかがさらに難しいなー。
現在はテストプレイと称して、一番うまく動作してる1人目とダラダラ遊び続ける逃げモードだよ。
>>222 初めは「強さ2程度の表情をした!」とか文章だけのゲームにしておいて
思考エンジンが完成してから絵に置き換えたらどうでしょう。
あとデータはTJSの配列で定義しておくといいです。
ここで聞いていいことかわからないけど質問です。
DirectX使った演出を組もうとしてるのですがCPU使用率が常時100%行きます。
フレームレート落としたり更新矩形を小さくすれば多少改善されますが、カクカクしたりします。
■手順
1.DirectXでレンダリング
↓
2.ピクセルデータを吉里吉里レイヤーに転送(memcpy)
↓
3.Layer.updateで更新
どうも2の転送処理以上にupdateがボトルネックになってるようです。
もっとスマートだったり軽い処理手順にできる方法は無いでしょうか……
Layer.update は更新フラグたててるだけだからそれ自身は関係ないけど
全画面転送が毎回発生することになるからその後の更新処理は重くなる。
そういうことやりたい場合は drawdevice 機能をつかって更新系をのっとるのが基本
あと、なにをどうやって処理してる?>フレームレートの調整
まさか busy loop はしてないだろうとは思うけど念のため
素直にDirect3Dでシステム作った方がいいんじゃね? とかいったらまずい?
227 :
224:2009/03/08(日) 16:31:45 ID:sCuwdZMS
>>225 PassThroughDrawDeviceのソースを読んでみたんですが、アップデート処理ではiTVPLayerManager::UpdateToDrawDeviceを呼んでるだけなので
描画処理をDirectXなりで高速化しようと思ったらレイヤ関連の低水準な部分から実装し直す必要がありそう?
レイヤのピクセルデータをDirect3Dのテクスチャで持っておいて、更新時にレンダーターゲットに合成とか。
そこまでいくと既存エンジン使うことの意味が薄れるというか……。
環境依存になってもいいから速度が欲しいって層も結構いるはずなので誰か実装して公開してないかな。
欲しいなら自分で作れって話だけど、はい。
FPS調整は今のところContinuous Handlerで描画処理を呼んでるので、-contfreqで呼出頻度を変えてるだけです。
>>226 慣れ親しんだ吉里吉里(+KAG)で書きたいので、何とかどうにかしたい。
>>227 >レイヤのピクセルデータをDirect3Dのテクスチャで持っておいて、更新時にレンダーターゲットに合成とか
iTVPLayerManagerはそのための処理を抽象化した機構だぞっと
iTVPLayerManager 経由で吉里吉里側で把握してる更新領域分のビットマップだけを送り込んでくれるようになってる。
ただし、吉里吉里側の設計上、drawdevice におくりこんで制御できるのは、子レイヤの合成を全部把握してる
primaryLayer のみ
既存実装での Update() はそのレイヤマネージャの更新処理の口を全部たたいてるだけ。
iTVPDrawDevice::StartBitmapCompletion, NotifyBitmapCompleted, EndBitmapCompletion
が順次呼ばれてビットマップ情報の drawdevice 側への転送が行われるようになってる。
そのビットマップをどう保持するかは drawdevice の実装次第で、Direct3D ならテクスチャに
保持して、更新があった部分だけ lock してテクスチャを更新することになる。
そのテクスチャ化した吉里吉里レイヤの実際の描画処理は Show() で行う。
ソース眺めるなら、drawdeviceD3D とかも見るべし。複数の primaryLayer のビットマップ情報を
テクスチャ化して、拡縮した上で合成かけるサンプルになってる。もっとも単純に生成した順に重ねてるだけだが、
最背面:吉里吉里の primaryLayer その1
中間: 任意の D3D の描画
最前面:吉里吉里の primaryLayer その2
といった形への改造なら簡単に作れるだろう。
ただし、これは、吉里吉里本体が内包してる D3D7 のインターフェースを使ってる
から、自前で3D処理も作るなら今なら D3D9 で書き直したほうが良いとは思う。
実際の3Dエンジンとの複合例なら drawdeviceIrrlicht のサンプル実装もある。
Irrlicht 描画の内容を吉里吉里のレイヤに吸い込む処理ももってるから、
それはそれで参考になるだろう。それはやっぱり転送大量で重いけどね
FPS処理はその実装でおk
>>211 こういう場合は、ルールを明確でシンプルにすること。
例えばパラメータがいろいろあるからといって、それらを一つ一つ表情に反映させようとすると
めちゃくちゃになる。211が言っているようなゲームの思考ルーチンだと、例えばどきどき度など
というパラメータを1つだけ作って(どきどきどの算出関数は他の複数のパラメータを参照して良い。
またこの関数をキャラのタイプ別に用意しても良い)そのどきどき度に応じてキャラ表情を1次元上に並べる。
そして、個性や強さは、そのどきどき度をどの程度補正できるかというパラメータで表現してしまう。
補正パラメータが適正値を超えると、逆の反応を示すようになるわけ。
これで、基本がシンプルになったから、後は性格付け(勝ってると補正パラメータが下がって
いくとか、ゲーム数が増えると補正パラメータが下がっていくとか)と、プレイヤーの反応に
対するイレギュラー(大きくかけると驚くとか)をいくつか入れてやれば、プレイヤー側で
勝手に裏読みし始めるようになるので、それなりのものはすぐ作れるよ。
ポイントは、多数のパラメータを、表情を表示するために一元的なパラメータにしてしまうところだな。
>>223,229
アドバイスありがとう!
でも実は‥ 関数は使ってないんだ。(´д`;)
処女作なので、条件分岐と変数に四則演算や1〜100の乱数を入れるスクリプトだけで
作れるものをと思って挑戦した次第。
何しろどういう計算の関数にしたら思うようなシステムになるかまるっきり思いもつかない。
それぞれをマクロにまとめてどうにか見られる形になったというレベルなもので。
ゲーム自体は2人がまず参加料のチップを出した後、1枚ずつの札を引いてチップを賭ける。
札の大きい方が勝ちでチップを総取りという実に単純なもの。
キャラの行動も個性を抜きにすれば、キャラが賭ける側(子)の時は見た札の大きさに反応して
ベットする(賭ける)枚数を決める。キャラが受ける側(親)の時はプレイヤーが賭けた枚数に
反応してコールするか降りるか決める。というだけのごく単純なもの。
ただし表情は、札を配られる前、配られて札を見た時、プレイヤーの行動に反応する時、
自分の行動をする時、勝負の結果に対する時 etc..かなり多岐に渡るという。
やっぱりちゃんとTJSを勉強しないとダメだなー。でもそれを使えるようになっても、
どういう関数に組んだらいいかというセンスもまた必要なわけで。
とりあえず今回はここまで進んでいるのでこのまま力押しでいこうかと。
>>223のまず絵を入れる前に文章で仮製作するというのは今すぐそのまま使える手法でいいね。
>>229のアドバイスも、今後関数を勉強してぜひ試してみたいと思います。
タイトル画面のメニューのボタンを押したらpush音が鳴るようにしたのですが、
(linkタグのclickse属性でwavファイルを鳴らしています)
起動時の一番最初だけタイミングがずれてイヤです
(1)ずれる原因は、次のうちどれでしょうか
・wavを鳴らすための準備(初期化?)をしている
・wavファイルがどこのフォルダにあるか探している
・その他初歩的なミス
(2)2回目以降がきちんとタイミング良く鳴るわけは、次のうちどれでしょうか
・キャッシュデータ(って言うのだろうか)が残っている
・対象のwavファイルまでの道筋を記憶している
・その他
(3)これを解決するにはどのようにしたらいいのでしょうか
解決法:oggにする
>>232 目から鱗!
みなさんそうやってらっしゃるんですかあ
234 :
名前は開発中のものです。:2009/03/09(月) 15:19:00 ID:cWf/NN7v
>>231 どっかで、無音のWAVを最初にマクロとか色々読み込む段階で一回鳴らしとくといい
ってのを見たことがあるよ
理由は忘れたけど
起動してから初めて使うWAVは、ずれるみたい
>>234 無音wav これはひょっとしたらと思ったやり方です やはりやってらっしゃるのかあ
さっきコンソールを見たら、やっぱり初回wavの時に何かごちゃごちゃやってるようです
(info) DirectSound Driver/Device found : プライマリ サウンド ドライバ
15:25:57 (info) DirectSound Driver/Device found :
SoundMAX Digital Audio [C:\WINDOWS\system32\ ……以下略
wavファイルの方に問題ではなく、ドライバの起動(って言うのかな)に時間がかかるようですね
無音wavの利点は、wavファイル=効果音、oggファイル=BGM、と大まかな使い分けで分かりやすい
この方法を試してみることにします ありがとうございました
クリック待ちアイコンをタグで変更できますか?
できるのならどうやるか教えてくださいお願いします
237 :
名前は開発中のものです。:2009/03/09(月) 17:40:09 ID:skZwU9FF
>>236 何をどうググったのか、知りたいところだ。
メッセージレイヤに文字描画途中で[style]でalign="left"を指定すると、
直前まで描画していた文字が少し太くなるきがするのだけど、
原因がわからない。
具体的なソースは、
[current layer="message0"]
;フォント等の設定
[delay speed="200"]
[font shadow="false" size="25" face="MS ゴシック" bold="false" color="0xFFFFFF"]
[style align="left" linespacing="10"]
;文字描画
あああ[current layer="message0"]
いいい[font shadow="false" size="25" face="MS ゴシック" bold="false" color="0xFFFFFF"]
ううう[style align="left" linespacing="10"]
えええ[p]
このソースでうううの後のstyleタグのalign="left"が有るか無いかで、
微妙に表示が違う・・・。何故だ・・・。だれか教えてくれ〜!!
>>239 いろいろ試していて面白いソースですねw
フォントや太字が関係ないのは、文字サイズを大きくしてみたら分かります
(少し太くなるように見える現象が、大きくしてもあまり変わらない)
スクショを撮って拡大してみたら、アンチエイリアスが原因と分かりました
メニューから「文字表示」「アンチエイリアス」でチェックを外してみたら、変化がなくなりました
以下は予想です
すでに文字が表示されてる状態で左寄せをすると、再描画されることになり、
2重にアンチエイリアスをかけて、結果少しだけ太く見えた
吉里吉里内部のことは分かりませんw
>>240 でたらめなソースですね、ほんと。
すいません。
何故コレに気づいたかというとマクロに処理を一括させてたんですが、
文字列をマクロにわたして出力させたときに、
通常1行ごとにわたしてたので気づかなかったんですが、
1行にこのマクロを複数呼び出すと、この現象が起こって。
それでどこに原因があるか調べるためにこのソース書いたんです。
アンチエイリアスが原因なんですか・・・。
正直聞いてもどう対処すればいいのかわからないw
アンチエイリアス切るしかないのか・・・。
>>241 再描画してることは分かりました
最初を左寄せ、後を右寄せとかに変えたら判明した
これをよく考えてみると、アンチエイリアスが悪いのではないかも知れません
白の上に白を重ねても白に変わりはないけど、
アンチエイリアスのグレースケールの部分を重ねたことによって、濃くなったと
そもそも[style]は、文字を表示する前に使うタグなのではと思ったりする
文字を途中まで書いて、[style]を入れるのは、期待されてない使い方なのかと
このマクロを呼び出す時には、メッセージがクリアされてる状態であることか、
途中で呼び出すのなら、[style]をマクロから外すことで対処できるかと思います
微訂正
ごめん、今調べて分かったけど、根本的なことが抜けていた
[style]は行のスタールを指定するタグだから、行の途中というのがまずかったみたい
メッセージがクリアされてる状態でなくても、改行して次の行なら挙動は問題ない
>>242 なるほど!メッセージレイヤーがクリア状態のみ実行すればいいのか!
cond属性にクリア状態の判定を行えばいいかな?
メッセージレイヤーがクリア状態か判定する方法を、
MessageLayer.tjsを見てできそうなの探したんですが、
[style align="left" linespacing="10" cond="kag.fore.messages[0].lastDrawnCh==''"]
でいいんですかね?
lastDrawnChって最後に描画した文字とのことで、
[er]とか[cm]でクリアすると空白になると予想したのだけど。。。
>>243 ほんと色々ありがとうございます。
クリア状態の判定じゃなくて、行頭かの判定でもいいってことですよね?
やり方がわからないですがw
>>239 今さらだが、kagのソース (MessageLayer.tjs) を解析してみた。
文字を描画するときはいきなりメッセージレイヤに描画ではなく、
行ごとに "行描画用浮遊メッセージレイヤ" に描画してから、
それをメッセージレイヤ本体に転写している。
で、"メッセージレイヤ" と "行描画用浮遊メッセージレイヤ" は
両方とも見える状態のため、転写後 "行描画用浮遊メッセージレイヤ"
の文字をクリアしないと文字が重なり輪郭が太くなる。
(アンチエイリアスがかかていると輪郭部分で太くなる)
で、この転写のタイミングは3つあって
(1) 改行 (2) [locate]タグ (3) [style]タグ の align 属性
(1)(2) は 転写後に "行描画用浮遊メッセージレイヤ" を初期化
(文字もクリア)しているけど (3) は初期化していないから
>>239 のようなことが起こる。
例えば同じ行で1文字ごとに [style align="left"] を入れると
今度はメッセージレイヤ上に重ね書きを繰り返すので
前の文字がどんどん太くなるし、メニューから "アンチエイリアス"
を OFF にすれば文字は全く太らない。
また1文字ごとに [style align="left"], [style align="right"]
を交互に入れると今度は文字の数が増えてしまう。
(続く)
>>246 の続き
で、対策なんだけど、行の途中で [style align] を変更した時の
動作(仕様)によって変わる。
(仕様1) 変更時点で行の全ての文字は新しい align に従う。
(対策1) MessageLayer.tjs の function setStyle(elm) で
fixLineLayer(); を削除。(2箇所)
(仕様2) 変更時点より後の文字だけ新しい align に従う。
(対策2) MessageLayer.tjs の function setStyle(elm) で
fixLineLayer(); の後に文字をクリアする処理を追加。(2箇所)
(仕様3) 行の途中で [style align] を変更してはいけない。
(仕様1)(仕様2) が本来の仕様なら kag のバグかな?
>>246 解析ありがとうです。
やっぱりマクロで組むときに、仕様3で、
cond="current.x == current.marginL"と書いて、
行頭時のみstyleタグを使用するようにしようと思います。
助言を頂いたお二人ありがとう!
cond="kag.current.x == kag.current.marginL"だった。。。
おもしろいでちゅねー
252 :
名前は開発中のものです。:2009/03/11(水) 17:08:42 ID:+tS0RLY3
はじめての
はいはいワロスワロス
バグ報告よろちくび
初歩的なことだけど、
シナリオファイル内で[iscript]で関数を記述したとして、
その[iscript]通過後に、[jump]でその関数の記述前に飛んで、
もう一度[iscript]の所にきたらどうなるの?
関数を再定義するのかな?
timer関数とかで、enabled=trueの時に、
同じ関数を読み込むとかエラーおきるのだろうか?
自分で試せよんなもん
>>254 オーバーライドの仕組みを勉強してみるといいよ。
KKDE2で240桁以降って下のバーや右カーソル押しても潜っちゃって見れないんだけど
これは改行するしか対処方ないかな?
結構探したつもりなんだけど、指定行や右端で折りたたみってオプションないよね?
>>256 それはオーバーライドとは違うような…
オーバーライドって言ってみたかっただけならスマス
259 :
名前は開発中のものです。:2009/03/15(日) 19:07:43 ID:JjWHmm0Y
最近プラグイン製作にはまってるんだ
今100種類くらい(使い道アルかは知らないけど)あるんだけど
これってどっかで公開したら需要あるかな?
作るだけで満足しちゃって、俺自身は使ってないから不具合とかあるかもしれないんだけどね
主に、エフェクト系が多い
Fateに使われてるようなエフェクトは全部作った
音響系も、MIDIを内部で変換してWAVで流す(つまり、基本的にやWAVを使用できる)プラグインとか作った
書いてて思ったけど重要なさそうなのばっかだな……
おとなしくゴミプラグインは削除して作品製作にはいるか。チラ裏すまん
261 :
名前は開発中のものです。:2009/03/15(日) 19:23:02 ID:JjWHmm0Y
2日レスなかったのにこんなに早くレスつくとわ……びっくりした
ソース付きの方が良いかな?
汚いから
262 :
名前は開発中のものです。:2009/03/15(日) 19:24:01 ID:JjWHmm0Y
参考にはならないと思うけど
うp!うp!
ソースは見たい人もいるんじゃないかね?
俺は見てもわからんけどw
>>261 みんなスレ汚しを控えてるだけで、常駐してる人は多いぞここ
>>261 さっさとうpするんだな
痛い目にあいたくはないだろう
266 :
名前は開発中のものです。:2009/03/15(日) 22:01:17 ID:JjWHmm0Y
こんなに反応あるとわwww
なんか、ありがとう
今から自作物整理して、あとで上げます
参考までに、あったらいいなっていうプラグインを教えてくれませんか?
1物語に1回使うかなってくらいのすごく限定的なものでも良いんで
>Fateに使われてるようなエフェクトは全部作った
花札のアルゴリズムがあるなら見てみたい。
>MIDIを内部で変換してWAVで流す
どういう遣り方か見当もつかない。興味あります。
公開とするとADVゲーム市場が崩壊するシナリオジェネレータとかどうかなw
>>266 前に一度話題になったみたいだが、うみねこに搭載されてる
キャラクターが泡(ドット)で出現or消えるができるエフェクト。
泡(ドット)じゃなくてもっと色々なエフェクトでキャラクターの出現ができる
プラグインがあると需要あると思う。
というか自分が欲しいw
>>266 シナリオの文字がフェードで表示されるのがあったらいいな
よくゲームのOPの演出で使われるようないっぺんに浮き出てくるんじゃなくて
文字の表示が左から右に出てくるというか
271 :
名前は開発中のものです。:2009/03/16(月) 00:11:53 ID:AIAyb+lA
>>268 あほ?
>>269 既にある
>>270 画像でファイルを保持し、トランス
これじゃ駄目な理由は?
少し囓ったことあるなら、FONTをRECTすれば文字にできるだろ?
>>266 ガラスが割れるみたいなエフェクトあると嬉しい
>>270 サークル煌明さんのところにあるやつかな?
273 :
270:2009/03/16(月) 00:56:29 ID:EpWdkxA1
>>271 一部の演出じゃないのでそれだと色々困る
というか説明が分かりにくかったね、ごめん
>>272 そうそうこういうの!
すでにあったんだね。教えてくれてありがとう
正規表現を使って、文字列のstr中の半角数字の桁揃え、乃至は
数字の先頭にある連続する 0 を削除するにはどうするのですか?
file00199 ⇒ file199
みたいなのです。
+009 みたいのだと8進数になってしまってこまっているのです。
tjsで汎用性の低いのを作れないでもないのですが・・・
桁揃えされた文字列がほしい時は sprintf を使う
"file%05d".sprintf(199) → "file00199"
文字列の頭の0消去なら正規表現でさっくり
/^0*/.replace("00199","") → "199"
データは数値でもつのを基本にして、文字列が必要なときだけ sprintf で生成するほうがなにかと便利
指定したURLとは、ずれた場所でもカーソルが人差し指マークになってしまい、そこをクリックすると
エラーになってしまいます。どこがおかしいのでしょうか?
[cm]
[nowait]
[title name=ヘルプ]
[position left="20" top="0" width="400" height="300" marginr=-200 opacity="0"]
[image layer="base" storage="about"]
[font size="30" color="0xFFFFFF" shadow="false" edge="true" edgecolor=0x56dfcc]
吉里吉里
[locate y="70"]
[font size=14 color="0xFFFFFF" shadow="false" edge="true" edgecolor=0x6d5d5d]
presented by 吉里吉里[r]
[link exp="System.shellExecute('
http://devdoc.kikyou.info/')"]
http://devdoc.kikyou.info/[endlink] [font size=14 *color=0xFFFFFF shadow="false" edge="false"][r]
[s]
すみません、指定していたCGが原因だったみたいです。
>>275 迅速にして完璧の回答、ありがとうございます。
自分で理解するのに時間かかりましたが何とかできました。
var arr = file.split( /[^0-9]/ ); arr.remove('',true);
で文字列中の数字の配列を獲得して、置き換えるやり方でなんとかなりました。
file_123_4_4みたいな値の重複とかの問題は…tjsでなんとかします;
質問させてください。
KAGにて、キーボードのEnterキーを無効にしたいと思い、
MainWindowクラスのcheckProceedingKeyを弄ってみました。
すると、通常時は確かに無効になりました。
しかし、クリッカブルマップを有効にすると、Enterキーが使えてしまいます。
これを無効にするには、どこを書き換えてやればよいのでしょうか?
ご指摘お願いいたします。
>>279 それは、Window.useMouseKey 機能によるもの。
その状態では、カーソルキーがマウスカーソル、エンターキーはマウスの
左クリックに対応した状態になって、キー入力イベントは全くこなくなる。
MainWindow.tjs 中の function enableMouseKey() の中の
useMouseKey = true; の部分をつぶすと効かなくなるが、
そのかわりクリッカブルマップをカーソルで選択できなくなる。
>>280 ありがとうございます。たすかりました。
質問させてください
mpegで作った動画を吉里吉里で再生したはよいのですが
なぜかコンソールには
ムービーを Mixer モードで開くことができません
: Failed to call ConnectFilters( pMPEGVideoCodec, pRdr ). : [0x80004005] エラーを特定できません
と出てオーバーレイでの再生になってしまいます。
スクリプトの方でレイヤー指定すると、画面は真っ暗で音声しか流れない状況になってしまい
オーバーレイでの再生しか受け付けません。
オーバーレイの再生で見ると、かなり画像が劣化しているのですが
・レイヤーモードだと動画そのままの画質で見れるのか
・エラーの理由はマシンスペックによるものなのか
どなたかお答えいただけますと幸いです。
evalで代入される方の関数にエンティティを使いたいのですが出来ません。
例えば
[eval exp="tf.test_number = 0"]
[eval exp="&'tf.test_' + tf.test_number = 'テスト'"]
[emb exp="tf.test_0"]
といった感じのことがしたいのですがエラーになってしまいます。
どのようにすればいいでしょうか?
284 :
名前は開発中のものです。:2009/03/20(金) 01:51:31 ID:HbT54b6M
>>282 あんさんの環境が腐ってる可能性大。
まずはドライバと DirectX を最新に。
あと他の環境でも試すこと
>>283 [eval exp="tf['test_' + tf.test_number] = 'テスト'"]
287 :
283:2009/03/20(金) 02:40:20 ID:N+uqd+oI
>>286 出来ました。お早い回答ありがとうございました。
例えば800*600のサイズのpng画像が120枚あるとして、
それを1から順番に読み込み表示する(アニメーションさせる)コストってどんなもんでしょうか?
事前に全画像を読み込んでおくとメモリ消費が凄そうですし、
レイヤを5枚くらい用意して、順番に表示非表示を繰り返しながら裏で次の画像を読み込んでいくと
ちょっとカクつきそうですし・・・
なあ婆さんや、プラグインを公開するとかなんとか言っていた御仁はどこに行ったんじゃ?
桃と一緒にどんぶらこっこと流れ去って行ったのかもなぁ。
俺も中身がどんなのかちょっとだけ楽しみにしていたので残念ですわ。
>>288 800x600のpng画像120枚を表示するコストがどんなもんかといわれても、
メモリ上で圧縮した状態で持つのか展開した状態で持つのかとか、コストに大きな
影響を与える他の要素も多いしなんとも。
一般的な話をするなら、800*600 24bit を120枚メモリに展開すると約165MBなので、
現代のPC事情ならどって事ないきもするけれど、読み込むのに結構な時間がかかるよ。
利用詳細が分からないので何とも言えないけれど、120枚をmpg等の動画に
して取り扱うのが普通の対応じゃないかな。
>>285 レスありがとうございます
ぐぐったら吉里吉里wikiに詳細が出てました。
ドライバとDirectXは最新なのですが
マシンスペック(というかグラボ?)によるものみたいですね。
完成したらノートでも確認してみようと思います。
>>291 ありがとうございます。
αチャンネルの情報を持ったムービーでデータが持てれば早いとは思うのですが、
αチャンネルの情報を持てる動画形式って何かあるでしょうか?
検索で調べても殆ど出てこず、そもそもそれで書き出せるツールもほぼ無いようで・・・
あ、利用用途は画面上での爆発とかのエフェクト表示です。
想定画面サイズが800*600なので、最大サイズを例に質問しました。
295 :
名前は開発中のものです。:2009/03/20(金) 13:17:46 ID:Pc0JW1eL
ムービーのセグメントループ設定をシナリオ進行とは別口で制御できないかな?
具体的には、立ち絵動画の複数シーンをランダムで再生させたいんだけど・・・
直視、まばたき、視線ずらし・戻し、あくび、etc・・・ 見たいなシークエンスをランダムに。
asdファイルよろしく、独立制御出来ないかなぁ。。。
297 :
名前は開発中のものです。:2009/03/20(金) 17:18:23 ID:Pc0JW1eL
や、まぁそうなんだけどねw
ただ、ドラクエ8の仲間コマンドのときみたく出来たらなあ…って思って。。
指定したメッセージレイヤーに現在表示されている文字列を取得することはできますか?
>>297 試した事がないから出来るかどうか知らないけど
asdファイル内でevalタグ使って動かしてみたら?
301 :
298:2009/03/20(金) 23:05:30 ID:N+uqd+oI
結局、αチャンネルを持った動画を書き出す方法は分からなかった・・・というかほぼ皆無
楓softwareって所の人が、連番pngをαチャンネル付きの動画にするツールを制作中ってあったけど去年から音沙汰無し
まあ、完成したとしても一般公開されるかどうかも分からないものだけど・・・
で、どれ位負荷があるか、自分でやってみました。
αチャンネル付きのpngファイル(800*600)を120枚、レイヤに読み込んで再生
まず書き出し直後のpngが全部で61MB、png圧縮ツールを使って46.4MB、直接TLG6に変換して43.6MB
そして、
・レイヤを1つだけ使って次々画像を読み込んでいく
・レイヤを3つ用意して、表示・非表示を切り替えながらバックグラウンドで次の画像を読み込んでおく
・レイヤを画像の枚数分だけ作って、最初に全部一気に読み込む
で、画像を順番に表示するスクリプトを組んでやってみたのですが
再生時の速度は「最初に全部読み込む」で、ファイル形式を問わず最速でしたが、画像を読み込む時に2秒くらいかかりました。
(それとメモリ消費が莫大)
一つ目と二つ目は、メモリ消費・再生速度にほぼ差が無く、どちらもある一定のラインからは、画像表示の速度は上がりませんでした。
唯一、画像をBitmapで持つ事で、一つ目・二つ目の方法でも十分な再生速度が得られましたが
画像だけで200MB以上必要になるので、全く実用的とは言えません。
TLG6と5には殆ど差が無かったので、画像形式はTLG6を使用するのが最適解のようです。
読み込みと表示のコストはともかく、他のツールやゲームではどのような形でこういうデータを持っているのでしょうか・・・
まあ800*600なんでサイズのエフェクト自体そう無いとは思いますが、容量的な問題はついて回りそうです。
縦横を半分にして、スクリプト側で2倍に拡大して表示、というようなやり方が必要かもしれません。
>>302 現状だと、えーと、たしか Theora がαをもった形式に対応してた気がするのでそれを使うとか。
定番の手抜き実装は、元画像を、左半分にRGB、右半分にαをグレー化したものと配置した、
横2倍サイズの動画を作って、1フレーム展開するごとに右半分の1プレーンだけ左半分のα領域に
コピーする方法。すごい無駄に見えるけど、α領域はかなり圧縮されるからたいして問題にならない。
動画の再生機構として既存のものが使えるのでフレーム落ちの処理とか音声同期とか考えなくてすんで楽。
吉里吉里の VideoOverlay クラスを活用するなら、レイヤの右半分のBを左半分のAにコピー
するような処理だけプラグインでつくって、レイヤモードで再生しつつ、onFrameUpdate でそれを呼び出す、
とかすれば最低限の手間で作れると思われ。
304 :
名前は開発中のものです。:2009/03/21(土) 01:29:18 ID:+F+a4UYI
nukIM@S-2とか。
でも、
>>303の方法がコーデックに依存しないくていいね。
[if exp="askYesNo('OKですか?')"]
OK
[else]
NO
[endif]
で「はい」にしても「いいえ」にしてもNOになってしまいます。
どういうことでしょうか?どうすれば直るでしょうか?
お願いします。
>>305 うちの環境にコピペして試したら選択に対応する形でYES/NO表示した。
そこ以外の問題。
308 :
名前は開発中のものです。:2009/03/21(土) 04:43:25 ID:+F+a4UYI
>>307 神!
横からもらっていきますね。
これでゴリゴリTJS書かなくても逃げ切れる……
>>303 配置は縦の方が良くないかな?
アルゴリズム的にも。
>>307 おおお、これは凄い! ばっちり再生されました!
んで、関数化して使ってみたんですけど
function Effect_Movie(file) {
var E_layer = new Layer(kag, kag.fore.base);
var E_movie = new AlphaVideo(kag, E_layer);
var filename = file + ".mpg";
E_layer.visible = true;
E_movie.layer1 = E_layer;
E_movie.open(filename);
E_movie.loop = true;
E_movie.play();
}
Effect_Movie('aaa');
こうすると、Abnormal program terminationが大量発生して落ちました。
関数にしないと普通に使えたんですが・・・
>>311 そんな書き方したら関数ぬけるときに E_layer も E_movie も廃棄処理が
走るから、無理矢理動こうとして大変なことに…・
クラスのメンバー変数とかにもつようにしましょう
>>310 コピー処理がキャッシュの範囲に入りやすいかなーと思って
横にしたんだけど、動画的には縦のがいいのかしら?
>>312 あーーなるほど、クラスとか関数について知識が足りませんでした。
クラスを作って入れてやればちゃんと動きました
>>312 キャッシュの問題は2個のポインタで追いかけるわけだから、そんなに違わない気がするけど
エンコード/デコードアルゴリズムの関係で、右に繋がってると接続部分が画像によっては
ちゃんとデコードされなくなったりしないかな。
縦ならいざとなったら、8の倍数とかに詰めちゃうのも簡単だし、横より融通が利きやすい気がする。
例えば、メニーコアに対応させるのが簡単になりそうだろ?
今前面に出ている背景レイヤが、kag.fore.baseかkag.back.baseか調べる方法はありませんか?
316 :
名前は開発中のものです。:2009/03/21(土) 23:32:20 ID:uWbJzMH9
>>315 面白いこと聞くね
前面に出てるLayerは常にkag.foreだよ
トランジションなんかで、交換した場合も交換し終わった後に
fore <-> back;
で、交換されてるから
今、目に見えてるのは常にfore
KAGのcheckboxへのチェックは、commitタグで確定されますが
checkboxから移動できる先が多いと、うっかりミスでcommitし忘れたりします。
checkboxにチェックを入れたり外したりしたら、その瞬間に入力を確定させるいい方法はありませんか?
>>315は
var mylayer = kag.fore.base;
//何度かトランジションする
//さて、今mylayerに入っているのはどっちだろう?
みたいなことを知る手段を聞きたいんだと見た
319 :
名前は開発中のものです。:2009/03/22(日) 00:33:56 ID:tFuXruna
>>318 さっきも言ったとおり
トランジションしても、最終的に中身交換されるから
変わらないでしょ?
自分で変えない限り
maylayer は kag.fore.base のまま
fore.baseでnew Layerしたオブジェクトがあって、何回かトランジションした
このオブジェクトで画像を表示したい、でもfore.baseが後ろに回ってると画像も裏に回って表示されない
その場だけで使い捨てしたいので、一々classを作ってonExchangeForeBackするのも大変、さあどうしよう
こんな感じ
>>320 layer.parent = fore.base;
で適当に表示されてるほうにつなぎなおしたんじゃだめなの?
>>320 それ、どこで破棄してるんだ?
>>317 kagのcheckboxタグはexp属性がない。
そもそもLinkCheckBoxLayerは親レイヤのonButtonClickとかを呼ばない。
下手に書き換えても今度はcommitでエラーを出すと思う。
プラグイン作るかtjsでやるしかないな。
>>319 >maylayer は kag.fore.base のまま
間違い。トランジションするたびにmaylayerはfore、baseの値になる。
正確には、maylayer
途中で送ってしまった。
maylayerの値はそのままだが、kag.fore.baseとkag.back.baseの中身(アドレス)が入れ替わる。
それを正しくなるように調整するための KAGPlugin#onExchangeForeBack
>>322 ありがとうございます
エラー回避の手間に見合う程の改造の効果も無さそうなので
地道にcommitします
>>321 なるほど、parentというのがあったのか
layer.parent = kag.fore.base;
kag.update;
で出来た、どうもありがとう
327 :
名前は開発中のものです。:2009/03/23(月) 20:33:45 ID:KrLh9tix
TJSに構造体って無いの?orz
クラスでやれ
辞書配列でも代用できるぞ
330 :
名前は開発中のものです。:2009/03/23(月) 23:01:09 ID:KrLh9tix
>>329 辞書配列って内部的にはどうやってるのかな……
それ次第では色々出来るんだけどな……
Cの配列と同じかな?
どういう意味で?
332 :
名前は開発中のものです。:2009/03/23(月) 23:45:05 ID:KrLh9tix
>>331 メモリ的な意味で
連番で要領確保できるなら最高なんだが
とりあえずマニュアル読んで出直してきたほうがいいと思われ
クラスでやらん理由がほしい所だな。
普通に使う場合、構造体で出来る事はクラスで全て出来るんじゃね?
まあどうしてもC的にメモリ確保したければプラグインかけばよろし
iTJSDispatch2さえ適切に実装すりゃ普通にtjsからアクセスできる
336 :
名前は開発中のものです。:2009/03/24(火) 18:18:12 ID:5BS0J/IG
TJSにCで言うsizeofってありませんか?
必死に調べてるんですがみつかりません……
配列の長さならArray.count
必要ないから存在しない。
何がやりたいのかかきなされ
ああint.sizeofとかのことなら
>>335だな
1つのプログラミング言語でしか物事を考えられない
奴ってたまにいるよね
341 :
名前は開発中のものです。:2009/03/24(火) 21:17:09 ID:5BS0J/IG
>>338 好きなタイミングでデータをバイナリ形式で保存することを考えていて
f_open,f_closeなどの関数をdll化したところまではいいんですが
変数を個別に保存してたんじゃ、すごくめんどくさい
ということで、構造体(変数のみのclass)として保存しようと思ったんですが、
save(sizeof(class) , &class);
int save(int memsize , void* pclass){〜処理〜}
こういう手段をとるのがおそらく一番スマートですよね
というわけで、sizeofを探していました
そのclassの中で使った変数を、typeof(?)で、型を判別し個別に計算してもいいのですが、煩雑で実行環境依存となってしまうため
聞きました
C言語が分からなければ通じないと思ったので個別に聞いてしまいました。説明不足で申し訳ないです
tjs とかすりもしていない件
質問A Dictionary.saveStruct でだめな理由は?
質問B とりあえずどうしても cで保存したいんだとして、
吉里吉里側のデータはどういう形でわたってくると
考えてる?
iTJSDispatch2 や tTJSVariant が何者か説明できる?
もしかして吉里吉里のソースすらまともに読んでないのか?
tTJSVariantてクラスがあるはずだが
(最近、プラグイン書いてないんでうろ覚え)
ついでに言うと
>>342の意見に同意
第2引数でバイナリにすりゃいい
ああ、なんとなくわかった。
吉里吉里のクラスが固定サイズだとおもってるんだな
残念ながら吉里吉里のデータ構造はサイズ不定で動的なで
さらに個別ネイティブオブジェクトの実装依存だ。
統一されたインターフェースのみが存在する。
「シリアライズ」って言葉の意味は分かる?
わからないなら今の君には無理だから変数
保存だけで我慢しなされ
346 :
名前は開発中のものです。:2009/03/24(火) 22:06:11 ID:5BS0J/IG
こんなに沢山回答どうもです
吉里吉里のソースはめんどくさいんで読んでません
↑こんな舐めた態度で、実装外のことをやろうと思ってた自分が馬鹿でした
反省して、大人しくソース読んできます
お時間取らせて申し訳ないです
>>346 今回の件に限らず、ソースは一通り目を通しておくといいよ
冗談抜きに一番の参考書だから
>>346 そんなに時間を無駄に使う必要はない。
必要なことは TJS2リファレンスの「組み込みの手引き」に全部書かれてる。
あとは tp_stub.ht と basetest プラグインのソースだけ見ておけばいい。
それらを見て理解できないようなら、C/C++ の勉強をやりなおす必要がある。
オクテットストリームでビットフィールドを実現して
そこへ自前で領域確保とかして書き込んでいけば
もしかしてプラグインなしでもそれっぽいものができる?
351 :
名前は開発中のものです。:2009/03/25(水) 03:52:19 ID:VUFh0LiU
マクロに、文字を送って表示したいんだけどどうすればいいんだろう
〜名前〜
あああああああああああああああああああああああああ
あああああああああああああああああああああああああ
こういうウィンドウを考えていて
名前の部分だけ、messagelayer1に書こうと思ってます
――マクロ([macro name=ch])
[current layer=message1]
[delay speed=nowait]
〜 〜←ここに名前を表示したい
[delay speed=user]
[current layer=message0]
――エンドマクロ
そこで、[ch name="キャラ1"]等といった使い方をしたいのですが
一度、変数に入れる方法を思いついたのですがマクロ内で
[eval exp="tf.名前=%name"]←をやろうとするとエラー発生で動きません
マクロに、文字列を渡し、その文字列を表示するにはどうしたらいいのでしょうか?
>351
[emb exp="mp.name"]
KAG System リファレンス内の「タグリファレンス」のembタグの項目と、
おなじく「TJSをもっと使うために」のmpの項目を参照
ちなみにchは、KAGの内部でそういう名前のタグが使われているので、
マクロ名は別のにしたほうがいい
353 :
名前は開発中のものです。:2009/03/25(水) 04:10:26 ID:VUFh0LiU
>>352 ありがとうございます
chは使わないようにします
サムネイルのサイズを変更したいと思ってます。
そうすると、前のサイズでのセーブデータが読み込めません。
前のサイズのセーブデータを今のサイズに変換する方法を教えて頂けませんでしょうか?
よろしくお願いします。
355 :
名前は開発中のものです。:2009/03/25(水) 23:09:22 ID:VUFh0LiU
吉里吉里で、いわゆる目パチみたいなことはできるのでしょうか?
文字を表示しながら〜○○
みたいな動作ってどうやってやればいいんでしょうか……
>>355 そんなのすぐできる
kagのtemplateつかってるなら、
systemフォルダの中のAnimationLayer.tjsファイルを読め
書いてあるから
357 :
名前は開発中のものです。:2009/03/25(水) 23:26:32 ID:VUFh0LiU
>>354 saveThumbnailをキーワードにしてMainWindow.tjsを追ってみろ
どうやってデータが保存されてるか読み取れないようなら互換性なしとして諦めろ
なんとなくわかったのなら、ビットマップのヘッダみるなりレイヤに読み込むなりして
目的のサムネイルのサイズを調べて、オフセットを計算すれば栞データは手に入るはず
>>358 ありがd
なんとなくだけどわかった。
やってみる。
タグマクロ使いまくった処理のかなり頻繁なゲーム作ってるんだけど、
使わないものは積極的に@erasemacroで消したほうがいいの?
現状で3Mくらい読み込んでゲーム動かしてるんだけれど、その程度じゃわざわざ消す必要も無い?
処理速度を重視してるので、目にわかるような負担軽減効果が見られるならやらなければ〜とは思ってるんだけど、管理する数が多すぎてやるにはそれなりの覚悟がいるので…。
参考になるかは不明だけど、俺はSLGを作ってる。
エフェクトとかの為に、かなりの量の画像を起動時に読み込んでおいている
けど、3M程度なら処理速度に差はないんじゃないかな。
寧ろ消したりする処理で遅くなる可能性あると思う。まあ、マクロなんで
画像とは違うだろうけどね
>>360 現時点ですでに処理速度がもっさりしてるとか
明らかに遅いと感じる状態でなければ、
おそらく見た目には何の効果もない
>>361-362 けっこう気にしてた点だけど、やっぱ容量的にも大したことないし問題はなさそうね。さんくす。
画像読み込まなくても
レイヤ何十枚とかコンフィグで用意しとくと、メモリ使用が150MBとかいって
ちょっと心配になる
文字はわからんけど、前景レイヤー数は処理の激しいゲームだと目にわかるレベルで重くなるからそういうの気になるもの作ってるならlaycountとかでシーンごとに調整したほうが良い。
ノートとかの貧弱な環境だと目に見えてわかるからなぁ。
ちなみに自分が実体験したのは、前景レイヤー50枚くらいのを25枚くらいに減らしたときね。
そんなにレイヤー数って要る?
うちとか多くても3つくらいで済むけど
同じゲームじゃないんだから。
368 :
名前は開発中のものです。:2009/03/31(火) 02:21:04 ID:7ELU0+Y2
あんまりちゃかちゃか動かすようだったら配列にしてやって一枚のレイヤに書き出すとかしたほうがいい事もある
369 :
名前は開発中のものです。:2009/03/31(火) 02:36:34 ID:8bPc8gMy
使用しているLayerの数を取得する方法ってありますか?
Messageと、前景それぞれの数に応じて処理を変える必要があるんですが
>>369 forで回してvisibleがtrueのレイヤを数えるとか。widthやheightが初期値じゃない奴を数えるとか。
でも、立ち絵とかを立たせた時に自前で変数を用意してあらかじめ数えておいた方がいいかもね。
371 :
名前は開発中のものです。:2009/03/31(火) 03:08:32 ID:8bPc8gMy
>>370 確かに、そうですね。自分で数えることにしました。ありがとうございます。
もうひとつなのですが、現在非表示かどうか取得するのは
var tst;
tst=kag.fore.message[0].visible;
これで、tstにはfalse or true が入ると思っていたのですが、どうやら違うみたいです
非表示かどうかのプロパティはいったい何になるのでしょうか
>>371 kag.fore.messages
複数形じゃなかったっけ?
373 :
名前は開発中のものです。:2009/03/31(火) 06:19:19 ID:8bPc8gMy
>>372 まさか、そんな凡ミスだったとは……orz
ありがとうございました
試してないけど、kag.fore.layers.countとかで取得できない? >レイヤ数
375 :
名前は開発中のものです。:2009/03/31(火) 09:19:55 ID:8bPc8gMy
>>374 kag.numMessageLayersで取得できるみたいですよ
度々すいませんorz
F1+ShiftKeyなんかを押すと、デバッグコンソールなんかが表示されてしまいますよね?
この、いわゆるデバッグモードを解除する方法って無いのでしょうか?
システム面に一貫性が無いのが吉里吉里の弱点だと思っている
自由の裏返しで
え?
きちんと使いこなしてるところとそうでないところの落差はひどいものがあるのは確かだな
>>378 きちんと使いこなしてる例をあげてくれ、参考にしたい
>>379 タイプムーンのFateは、これをつかっていなかった?
逆だっけ?月姫だっけ?
Fateは、きちんと使いこなしてる例とは違わね?
ていうかきちんと使いこなすってどういう意味だかよくわからんな
今時セーブロードがメニューバーからとかいう時代錯誤アイテムを使う人間なんているの?
>>382 別にメニューバーからセーブでもいいと思うけどな。
システムに気合いれてるが、肝心のゲーム本編がへぼいのはたくさんあるしな。
うまく使いこなしている、という意味であれば、ごうさんの会社だろうな。
頑張ってオリジナルのセーブ画面を作るのはいいんだけど、
キー操作を無視した作りだと、個人的にはゲンナリするな
そんならまだメニューバーのほうがマシだと思うぜ
>>381 KAG の内部構造を把握して、マクロ以上のふみこんだ作業ができてれば
使いこなせてると言えるんじゃないかと。わかりやすい例としては
・終了ダイアログの差し替えができてる
・コンフィグ処理やセーブロード処理をメニューバー以外できちんと組み込めてる
>>379 商業だとこんなとこかね。
↑カスタム度低
あかべぇそふとつぅ:標準的なカスタムの代表例的なブランド
ナインテイル:レイヤアクションの扱いがとにかくうまいブランド。カードバトルとかの特殊システムも組んでる
TYPE-MOON:吉里吉里を有名にしたブランド。いろいろカスタムしてる他、花札とかの特殊なシステムも組んでる
ゆずソフト:KAGEXを使ってる代表的ブランド。常に最新開発版な人柱ブランドでもある
ハイクオソフト:TJSで完全独自システムを組んでる珍しい例
↓カスタム度高
>>385 ところで、そのカスタム度が高いソフトメーカーは、金を払って協力してもらっているのか
自分たちでカスタマイズしているのか、どちらなのだろう?
素朴な疑問だけど。
2年前に1本作った時は、KAGEXに微妙なバグがあって使うのやめたんだけど
今はバグ周りは解消されてるのかな
正直、KAGEXのメリットがいまいち分からない
>>368 ナインテイル、TYPE-MOON、ハイクオは社内PGと思われる。
ゆずソフトはワムソフトに外注してる。
あかべぇ系は、最近のだとG線、DDC、WLO、パンツが同系統のカスタムがかかってて、たぶん社内PG。
るい智、コンチェルトノートはゆず同様にワムソフト外注でKAGEX使ってる。
ガチ乙女も吉里吉里だけど全然別系統のカスタムがかかってるのでさらに別のPGぽい
全然知らない社名?ばっかりなんだが、俺ヤバイかな
エロゲの勢い全体が落ちた+
>>390が年をとった&社会人になった だろう
エロゲは大学生がやってるのか
それにしても
>>389は大したもんだ。
そこまでスラスラ出るのは、業界人でないならよっぽどエロイ人なんだな(・∀・`)y━~~
395 :
名前は開発中のものです。:2009/04/02(木) 20:32:00 ID:hxJaACLL
だれか
>>375お願いします
ちょっとフリーのソフトで試してみたのですが、普通にデバッグコンソールが表示されてしまうソフトが結構ありました
これまずいですよね……
krkrconf.exe使え
リファレンスに書いてなかった?
>>395 フリーだと忘れてるの多いよな
396も言ってるけど、krkrconfの設定とかReleaserで
デバッグ支援ウィンドウを無効にする設定があるはず
(デフォでは有効になってたと思う)
399 :
名前は開発中のものです。:2009/04/03(金) 00:55:54 ID:sVoWzUgB
>>396 解決しました
>>397 リファレンス探しまくってたんですけどなかったと思います
多分見落としだと思いますが、Config.tjsあたりでデバッグモードの有無を設定できるのかなあ、なんて考えて一生懸命TJSを追ってました
>>398 ありがとうございます
しかし、これ、アーカイブの中に入れたら無効化されちゃいますね
外に出してあったら、削除されちゃうし
どうにか隠蔽方法は無いのだろうか……
デバッグコンソールでできることなんてスクリプトが見えるくらいで何も困らん
その程度自己解決できないなら吉里吉里使うなよ
401 :
名前は開発中のものです。:2009/04/03(金) 01:19:03 ID:sVoWzUgB
>>400 タグリファレンスに乗ってるようなこと質問してるわけじゃないんだから大目に見てください
デバッグコンソールで変数代入とかされたら、意図しないバグがおこったり、クリアせずにCGだけ見られたりいろいろできると思うのですが
400の方は変数名を、全てランダムでつけていたり、何か対策をとられているのでしょうか?
それとも、俺以上にあほで無知なのでしょうか?
>>401 スクリプトでデバッグモードオンオフできるから最初にオフにしとけ
startup.tjs の頭で
if (System.getArgument("-debugwin")=="yes") { System.terminate(); }
とでもしときなされ。
404 :
名前は開発中のものです。:2009/04/03(金) 01:37:58 ID:sVoWzUgB
桜満開だな
中覗かれるようなものは作ってなさそうだから、安心しろよ
吉里吉里のライセンス文書は読んだか?
利用者はどういう心意気を持てばよいか、バカじゃなきゃ分かるはず
それを考えながら今日はもう寝なさい
お前も日本語でおk
コンソール残しといたり暗号化しないデフォのアーカイブだったりすると、バグ出して頭抱えた時に親切な人が原因の切り分けして教えてくれたりするよ。
なにしろフルプライスで売るとかじゃなければどうでもいい気がする。
大体この話題ガイシュツ。そんなにしつこく知りたいなら過去ログさばくればいいのに。
なんだかんだ理由はつけてるが、ホットキーの存在と使い方を知っているのなんて普通のユーザじゃないんだし
結局のところ中を見られたくないっていうことだろうな、としか思えんよなぁ
ま、これは知ってる人には突破されやすいけど、
cfファイルをバイナリエディタで本体に埋め込むとかすればいいと思うよ
やり方はcfファイルの中身を見ればわかると思う
409 :
名前は開発中のものです。:2009/04/03(金) 02:38:17 ID:DTxE1Nd8
>>405 自己紹介はいいです
>>407 なるほど、そのような利点が
CGなどを、特典としているノベルゲームの場合
やはり、CGだけ抜くようなユーザーが少なからずいるんですよね
ほかにもシミュレーションなんかも作ってますが、変数いじられたら大変つまらないことになるし
そういうユーザーは、複合化するユーザーと同じで捨てるしかないんでしょうか
何も文句は言えませんが、怒るというか、悲しいですよね
クオリティが低いといえばそれまでなんでしょうけど
●買って来いってことですか
>>408 そのとおりです
製作者なら、自分の意図しないシステム面へのアクセスを望まないのは自然だと思いますが
バイナリですか、なるほど。ありがとうございます
>>409 変数いじるのとかはメモリのほうの数値を変更されるのまでは制御できないから
チート対策は、できる人相手には無駄なこと多いし、あまり労力とかをそういうことに割かないほうがいいと思う
チートまで対策したいなら
最初から内部の数値はいじられてしまうということ前提に、変数の宣言の仕方から全部考えないといけない
不可能ではないけど、現実的ではないような
あと中身解析されるのが絶対に嫌だ!というのなら
仕様が公開されている吉里吉里は使わないで独自システムを構築したほうがいいような気がするんで
そこらへんは折り合いつけていったほうがいいよ
まあ
>>403は妥協案としていいレベルだし
それで本人が納得しているんだからいいじゃねえか
>>409 過去ログは●がなくても読めるぞ
これは別に煽りじゃないんだが、
>>1を嫁
もうほっとけよ
お前ら優しいなあ
解析される心配よりもプレーヤーに解析したいとまで思わせられるほどの面白いゲームを俺は作れるようになれるのか
俺にとってはそっちのほうがはるかに問題
解析アレルギーは吉里吉里初心者卒業するあたりで通りがちな道だが
もう少しレベルがあがると
それが無意味な自意識過剰だったことに気づく
今は一応身だしなみのようなものとしてデバッグオプションは無効にしておくが
吉里吉里使っている限り完全な解析対策なんかないしな
だから済んだ話を小馬鹿にせんでもいいって
数値が変わった直後でチェックサム控えておいて、次にその変数使うときに照らし合わせてみればいいんじゃないかな。
だが、常に本気のプレイを強要されるゲームとか俺ならやらない。
CGは……画面キャプチャ対策とかね、ムキになってやる必要があるのはそれこそLeafくらいじゃないやろか。
>>418の中では、SLGやRPGで数値弄るのがデフォなのか?
そんで、数値弄らんのが「本気プレイ」なのか、流石に一般的じゃなさ過ぎると
思うぜ。
CGモードをフル化される程度は諦めろとしか言い様がない。
内容良ければ、最低限ゲームは遊んでもらえるはずだ、多分。
エロなら、それこそ回想モードしかやらん奴は五万といるからなw
どれだけ時間をかけて対策しても、CG100%のセーブデータ配布されたら意味ないし
過度な対策は無駄な労力でしかない
てか、おまいら、汎用システムスレでなに見当外れの議論をしてるんだ。
隠蔽することが最優先なら独自システムにするだけの話じゃねーの?
ちょっとした工夫で隠蔽できたら俺的にはうれしいな くらいの話に
なんでそこまでAll or Nothingになるのか
>>423 AllorNothingという思考の人は多いよね。
この板に限らずに2ch全体に。
いい加減に書く文章を軟らかく書いて欲しいよ。
レイヤやバッファで表示、再生させることなく
ファイルのプロパティを取得するプラグインってありますか?
>>424 2chでの「これできないの?」的なレスには
アンチやら煽りやらアイロニーやらが多いから、
aonで返す癖が付いちゃうんじゃね
>>424 2chなんだし書く文章が多少煽りだろうと叩きだろうといいんだけど
技術系スレの粘着と的はずれな煽りほど寒いものはないからやめてほしいわな
煽るならちゃんとした知識ベースにサッと済ませてほしい
攻撃的なレスが多いのは、八つ当たりも多少はあると思う。
「動いて当然」と思われてるし、言えばなんでもできると思われてるし、他の遅れのツケが
一番回りやすいのにノーフォローだし。
息抜きにここ見てたはずだったのに、なめた質問を見るとキレてしまうんだよ。
お、オレのことじゃないんだからね!
32*32みたいな小さい前景レイヤを複数用意して、
スプライトのように使う、ってのはKAGだけで可能ですか?
だけで、の意味にもよるけど
まあ可能
>>430 kagならmoveタグかな
確かスプラインも使えたと思う
>ちょっとした工夫で隠蔽できたら俺的にはうれしいな くらいの話に
だから、結局そんな方法はないからなあ。
多少の気休めに心砕くくらいならゲーム内容充実させたほうがよほど建設的ということを
住人の大半は知っているので
そんな話題にしつこく執着する態度の悪い奴に優しくする必要を感じないっつーだけでは。
そのスプライトが文章を読み進めるたびに決まった位置に瞬間ワープするようなのなら
そりゃできるだろうけど
moveタグあたりを使ってもシューティングゲームみたいに動かすのはかなり困難だろうな
ゴメン、スプラインじゃなくてスプライトか
解答ありがとうございます
ノベルゲーム内のミニゲームで、スプライトがあれば作りやすかったんですけど、
やっぱりKAGだけでは無理そうですね、素直にTJS勉強します
>>428 有難うございます。
作成日時とサイズを得られるのは便利なので使ってみようと思いますね。
再生時間はvolume零で再生して.totalTimeで取得するやり方で誤魔化します……
16曲で400/1000秒程度だからページ表示型の音楽モードならなんとかなるでしょう(?)
スプライトの質問したものですけど、
ノベルゲー+αなものを作りたい場合、
KAGで出来ないことするためにTJS覚えるのと、
別の言語で一からノベルゲーのエンジンから作るのと
どっちがいいんでしょう?
あいまいすぎる質問だが前者だろ
そういう質問しちゃうレベルの人間がノベルゲーのエンジンを
きっちり完成させられるとは思えない
ですよねー、って言うとあれですが自分でもそう思います
一応ノベルゲー+ローグライク(ディアボロみたいなの)を考えてます
別にわざわざスプライトがどうとか言わなくても
例えば50*50で画像持っておいてそれ動かせばいいじゃん
でもそういうのって結局動かしたいキャラ分小さいレイヤを持って、
そのレイヤを動かすものじゃないですか?
動かせばいいじゃない
自分でnew Layerするとmoveさせるのが面倒臭くなるけど
うちはそうやってる
そうですか、参考までにどのようなジャンルのゲームをこれまでに
製作なさったのか御聞かせ願えませんかね
ノベルとシミュレーション
質問です。
コンフィグ画面を作る為にgvloume.ksを呼び出して↓でバッファの0を30%に設定しました
[eval exp="kag.se[0].setOptions(%[gvolume:30])"]
音量を変えることはできましたが、上のバー?(音量(O)→バッファ0→30%)
にチェックが入らず100%のままで、再起動した所30%にチェックが入った為
gvolumeを読み返してみたのですが、どのようにメニューの編集をしてるのかが分かりませんでした。
どうすれば上のメニューをシステム側から変更できるのでしょうか?
(システム→自動的に読み込みにチェックを入れたりする事もできますか?)
>>447 自分は、gvloume.ksは使わんのであれだ、
gvloume.ksに2行追加。
var mySE0= %[]; //10行目ぐらい
if(control==0) mySE0[i]= submenu; //77行目ぐらい。for文の中。
@eval exp="gvolume_object.onMenuClick(gvolume_object.se0.[30])"
てな感じで試すよろ。
自動的に読み込みのチェックについては、「autoMode」でクグるよろし。
>>448 @eval exp="gvolume_object.onMenuClick(gvolume_object.se0.[30])"
を書いた所でエラーがでました。試行錯誤しているうちに
onMenuClickで調べたら吉里吉里/KAG関係にピンポイントのものがありました
おかげで助かりました、ありがとうございます。
450 :
448:2009/04/05(日) 13:56:01 ID:zp/wdXv5
>>449 かえってスマソ。なんか分かったようでオメデトウ。
>>448 訂正×2
×gvolume_object.se0.[30] → ○gvolume_object.mySE0[30]
×クグる → ググル
質問です。
立ち絵画像やアニメ画像の表示後に該当レイヤーをfreeimageしているのですが、
再び画像の表示をするとメモリの使用量がどんどん増えていってしまいます。
freeimageで実際に画像の開放が行われるタイミングは吉里吉里内部のガーベッジコレクションなのでしょうか?
キャッシュにのってるだけだろう。そういうもんだから基本気にする必要はない
ちょっと微妙な質問かも知れませんが、吉里吉里でSLGを作成しています。
ウィンドウなどの画像は、起動時に読み込んでおりますが、結構なメモリ量に
なりそうです。
そこで、他にSLGを作ってる方がいらっしゃいましたら、ウィンドウ画像など
をどの様に制御しておりますか?
>>452みたいな感じだろうからあまり気にしてもしゃーないだろ
色違いのウィンドウを大量に抱えたりしないように気をつけるくらい?
質問です。
「学べよ乙女!」のゲームみたいにクイズを出して
何点〜何点でエンド@
何点〜何点でエンドA
何点〜何点でエンドB
みたいなのを作りたいのですがどうしたら良いでしょうか?
検索しても出てこないので困っています
もし宜しかったら教えてください、お願いします
「学べよ乙女」ってのがさっぱりわからんが
その程度の分岐なら
ifタグで普通にできると思うぞ
[if exp="何点〜何点"]
[jump エンド1]
[endif]
[if exp="何点〜何点"]
[jump エンド2]
[endif]
[if exp="何点〜何点"]
[jump エンド3]
[endif]
めんどいから適当だけど、こんな感じで
ちょっと聞きたいんだが
いろいろ見てみて、見逃してるだけかもしれんのだけど、
perlのh2z関数みたいに、1→1みたいに半角数字を全角数字に変換するのって、
マクロか関数で自分で書かないとだめなのかな
数字だけでいいなら"0123456789".charat()でいいんじゃね
460 :
名前は開発中のものです。:2009/04/10(金) 01:10:30 ID:wm1E9ka9
>>459 ありがとう!
charAtか。すっかり忘れていた。
数字だけだったのでそれでできたよ
くだらない質問だよなぁ、って思ってずっと聞くのためらっていたけど、聞いてみてよかった
すみません、質問させて下さい。
吉里吉里で脱出物のゲームを作っています。
ウィンドウはTJSでKAGPluginを継承した物を自作しております。
右クリックで、各動作のアンドゥをする仕様にしており、今までは、ウィンドウ
で使用しているレイヤのhitThresholdを0にし[rclick]を使って、対応しており
ました。
しかしながら、これだとウィンドウを重ね合わせる場合など、下のウィンドウも
マウスに反応してしまいます。(hitThresholdが0なため)
そこで、TJS上で、マウスイベントを取得する方法は無いでしょうか?
KAGPluginの中を見たのですが、マウス関連のイベントはありませんでした。
良い方法がありましたら、ご教授願います。
>>461 そこまで頑張っていてリファレンスを読んでないなんてことはないと思うけど、
とりあえず落ち着いて吉里吉里リファレンス(TJSリファレンスじゃないよ)の
LayerとかWindowとかのイベント関連メソッドを見てくるといいよ。
マウス関係はonMouseなんちゃらな。
質問です。
クリッカブルマップでタイトルを作った時、
終了を押すとそのまま終了できるタグはありますか?
[close]だと「終了しますか」で「はい・いいえ」の
選択画面になってしまうのですが、
これの選択を自動で「はい」を選ぶようなタグはありますか?
属性で指定出来たはず、タグリファレンス嫁
>>463 kag.shutdown()
機能
KAGを直ちに終了させる
引数
なし
戻り値
なし
備考
‐当メソッドを呼び出すには、シナリオが安定(s、l、pタグで停止)している必要がある
(kag.inStableやKAGプラグインのハンドラonStableStateChanged()で判別可能)
‐終了前に確認メッセージボックスを開く場合は、kag.close()を呼び出すこと
>>464 そういやkag.askOnCloseをfalseでもいけたか
467 :
463:2009/04/10(金) 12:55:01 ID:tbk4oZVM
>>464>>465 ありがとうございます。
[close]が終了のタグの筈なのにおかしいなと
ずっと悩んでおりました。
[close]に条件が付けられたのですね。
[close ask=false]
↑で良いでしょうか?
吉里吉里を終了しようとすると終了しますか?てきなダイアログ(っていうのかな)出ますよね
あれが最近になってコンマ5秒くらいで自動的に閉じてしまいます。
ウィルスの疑いもあったため、ためしにOSを入れなおして見ましたが改善されませんでした。
このような事って結構あるんですか?
>>467 さすがにもう答えのせてるんだから、あとはググるべき
>>468 そんな症状みたことない
新しく吉里吉里ダウンロードしなおしても同じ症状ならわからん
新しい吉里吉里で普通に機能するなら変なコード書いたんだろう
>>469 そうですか・・・
kr2_230r2をダウンロードしてみましたが同じく一瞬で消えてしまいました。
他のドライバ関連をあたって見ます。ありがとうございました
>>470 ゲームコントローラーでも繋がってたりしないか?
>>471 つながってました○| ̄|_
上に服が載っていてボタンを押し続けてくれていたようです。
ありがとうございます そして確認不足ですみませんでした
吉里吉里ってJOYPADにデフォルトで対応してるんですねー
すげえエスパーを見たw
凄い預言者が居るスレときいて
和んだわw
エスパー記念w
>>467 それでok
何を参考にしてゲームを作ってるのか知らないけど、
リファレンスにはタグも属性も属性に渡す値も全部載ってるから
ググるより先にそっちを読んでね
Storages.isExistentStorage ってフォルダの存在確認は出来ないのですか?
フォルダ名が c:\foo だった場合
Storages.isExistentStorage("file://./c/foo/nul")
で存在するか調べられる
あー
どうもです。
getDirList からfind で探すやり方しか思いつかなかったので大変助かりました。
久しぶりにみたらエスパー的中か。
for(int i=0;i<5;i++)
\(^o^)/
質問です
レイヤー指定のトランジジョンをよく使うのですが、サイズが一致しませんにしょっちゅう妨害されます。
レイヤーを指定しない時の様に、サイズが一致云々をオフにする方法はありますか?
485 :
名前は開発中のものです。:2009/04/12(日) 12:48:41 ID:PZ4EDoRU
>>484 トランジョンする前にサイズを合わせる処理を入れるしか無いんじゃないかな。
俺はそうしてるけどそこそこめんどくさいです。
>>484 はじめから画像を全部同じサイズにしておく
レイヤー指定しない場合はベースのサイズがたまたま同じだからでないだけだぞっと
うはぁ……ないのか…
解答有難う御座いました
489 :
名前は開発中のものです。:2009/04/12(日) 15:28:19 ID:PZ4EDoRU
>>488 あー、ありがと。
二年くらい間違って覚えて使ってっから直らない……
トランジジョンにも突っ込めよw
しかしトランジションほどいろんな違う名前で呼ばれる用語も珍しいよな
そういやトランザクションとか言ってた人もいたなぁ
公式でDeeタンに突っ込まれてたが
フェードアウトかけてロールバックとかできると便利だなぁ>トランザクション
>>493 リファ読むと出来そうな事書いてあるけどめんどくさそー
ロールバックがフェードアウトしたら整合性取れなくねか?
コミットコワス
あーロールバック、ロールフォワードはトランザクションでもトランジションでも言うよな
>>462 今更ですが、解決しました。
私にとっては、唯一無二と言っていいアドバイスだった様です。色々勘違いしてた
様で読み返したら解決しました。
何をどう勘違いしてたか少しきになる。
499 :
名前は開発中のものです。:2009/04/14(火) 15:24:09 ID:McyAaefM
ググれ
500 :
名前は開発中のものです。:2009/04/14(火) 17:08:09 ID:gbrSfUTB
なんてこった、背景素材がある所はロクな所がないじゃないか
背景素材補間の会はフィルタリングソフトがアダルトサイト認定してるし
フィルタリングされない所は管理人がBL小説家だし
どーしろっちゅうのよ
それは吉里吉里リファレンスに載っていないし答えらないな
502 :
名前は開発中のものです。:2009/04/14(火) 18:35:23 ID:zzVbppmP
これそういう質問じゃなくね?
504 :
名前は開発中のものです。:2009/04/14(火) 20:33:22 ID:gbrSfUTB
ロクな所が無いと言うなら自分で集めろよ
age乞食の分際で
506 :
名前は開発中のものです。:2009/04/14(火) 21:09:48 ID:zzVbppmP
>>503 背景補完の会のドメインだか、URLだかが会社のアダルトサイトフィルターに引っかかって表示できないから
どうにか素材を落とす方法教えろってことじゃなかったの?
>>504 よくわからないけど、期待に添えなかったならごめん
>>506 フィルターなんて自分で解除すりゃいいだけだし
>フィルタリングされない所は管理人がBL小説家だし
要するに、無料素材使わせてもらっている分際で、
素材提供主自体が気に食わないってことだろう
乞食の中でも特に酷い乞食
508 :
名前は開発中のものです。:2009/04/15(水) 15:33:34 ID:MrHdm1Zv
自分で解除できたらフィルターの意味が無い
無料素材なんかは
使わせてもらってるってより、使ってやってるって意識で問題ない
吉里吉里も使ってやっているって意識で問題有りませんか?
吉里吉里使ってるのは乞食らしいよ
どんだけー
まあエンジンの再開発がヤダヤダ!って理由で使ってるから乞食といえばそうだなw
515 :
名前は開発中のものです。:2009/04/15(水) 19:01:27 ID:MrHdm1Zv
What a Matter
The Administer of "HAIKEI SHASIN HOKAN NO KAI" is
BL Supporter orz
日本語でおk
大体なんでフィルターなんて付けたんだよw
親のPCか?なら大人になるまで我慢しろ
大人か?ならPCくらい自分で買え
会社のPCか?仕事しろ
大人で自分のPCだけどアダルトサイトが怖いのか?
虎穴に入らずんば虎児を得ずだ、アダルトでもない素材サイトに八つ当たりするな
吉里吉里3いつ出るんだろうな……
あと5年くらいかかりそうな気がしてる
言語仕様が別ものだから3には期待してない。
2が完成されてるからそれで問題ない。
問題はKAG3のソースコードだな。
吉里吉里2本体であと作業するとしたらマルチコア対応ぐらいかね
KIDのゲームのように、シーンが変わる度にラベルの見出し(栞に表示されるものと同じ文字列)を画面左上に表示させたいのですが、そういうものの見本や解説をしているサイトはないでしょうか?
ADVエンジン程度でマルチコア対応は労力に見合わない気がするんだが。
勝手にCPUの方が性能上がると思うぞ。
>>522 吉里吉里はひたすらCPU合成やってるエンジンだからわりとストレートに効果があると思う。
もともと画像を短冊状に分割処理してるから、うまくはめこめるポイントがあるんじゃないかなぁ
>>523 内部的な効率は上がっても、体感上の差は無いだろうな
むしろマルチスレッド化に伴う、シングルコア環境での動作速度低下の
デメリットの方が大きそうだ
>>521 手段1:シーン名を変数に代入し、見出しと表示に利用する
手段2:kag.getBookMarkPageName(num)
後は自分で考える
考えきれなかったら、別に必須の機能でもないので力不足だったと諦める
フィルターぐらい普通つけるだろ
間違って有害なサイトに入っちゃったらどうすんだよ
ワンクリとか行っちゃったら取り返しつかないよ
取り返しつかない事態に陥るような
ワンクリック詐欺なんて存在すんのかw
SpywareBlaster入れて
Proxomitronでごく一部フィルタリングして
定期的にウィルス対策ソフトでチェックする
フィルタリングはしないがスキャンはしてる。
>ワンクリとか行っちゃったら取り返しつかないよ
これは情報弱者乙ということでいいのか・・・?
本気で請求されると思っているように読めるんだが
そこはクマーと言ってやれ
>>52 そんなもん画像にしちまえよ
フォントも形も効果も思いのまま、移動だってかませる。そっちのほうがよっぽど見栄えいい
533 :
532:2009/04/16(木) 19:18:23 ID:w2lsCro7
ライターとか絵師は叩かれるから、ライターと絵師がいらないゲームにしようぜ
誤爆
メッセージレイヤーにフレーム画像を使ったのですが、
opactiyで指定すると、文字ごと透過されてしまいます。
文字以外のフレーム一部を、半透明にする方法ありませんか?
元から透明な画像を作って使用する。
αチャンネルが便利。
実行中に透明度変えたいんじゃね?
レイヤ2枚つかえばいいんじゃね?
MessageLayerを改造するかもしくはフレームを前景レイヤで表示させればいいんじゃね?
画像のピクセルの読み書きがTJSから出来れば可能なんだけどな。
現状C++使うしかないからな。
おかげでコリジョンチェック書く程度でC++書く必要がある・・・。
>>542 Layer.get/setMainPixel()は?
返事が送れてしまい申し訳ありません。
>>538 αちゃんねる使ったデータを使ってるのですが、
なぜかうんともすんとも・・・orz
>>541 ああ、その手があったか!
ただもう完成寸前で、改造の手間が・・・。
もしかして前傾レイヤーじゃなきゃ、αチャンネル対応してない・・・
とかない、よね・・・?
ともあれ、皆さんご案内ありがとうございます。
フリー素材使ったら透けたし・・・orz
αチャンネルの使い方がいけなかったんだろうか・・・。
546 :
名前は開発中のものです。:2009/04/17(金) 08:18:33 ID:TDFMC1oI
>>545 pngの24bitにしてたんじゃないの?
キリキリ付属の画像コンバータで.tjs6だっけ?
そんな感じの形式に変更すると普通に透過するようになるよ
もしくは、Photoshopで開いて、Web用に保存→24Bit→インタレース?なし
これでちゃんと透過する
>>545-546 半透明PNG画像絡みのこれはよく引っかかる部分だと思うが
どっかに書いてたっけ?
>>542 もしコリジョンチェックってのが α によってクリック反応を素通しするようにして
ほしいってことなら Layer.hitType と layer.hitThreshold を指定するだけだろう
高度な処理がしたければ onHitTest を実装すればいい
すみません立ち絵や前景を半透明にするのってどうしたら出来ますか
>>535-548 ーーーーってお前等も躓いてたんかい!
553 :
名前は開発中のものです。:2009/04/17(金) 21:11:27 ID:+Twzus5I
ノベルの人物の伝統は半透明の影絵だというのに
半透明の立ち絵の講座がどこにもありません
eramaker2とか
ぐぐったら一発で出てきたけど
何でもぐぐれで済ませたら質問スレはいらないわけだが
ぐぐってもすぐにはわからないような疑問だってある
質問する態度じゃないといっているだけでしょ。
とりあえずどう思ってどういうことをやってみたのかぐらいは書こうな
>>549 @image storage="画像" page=fore layer=0 opacity=180
(layoptで指定してもいいが、positionのほうは意味合いが違うので注意)
opacityについてはタグリファレンスに書いてあるからちゃんと読もうな
影絵か 走馬灯みたいな演出入れてみるかthx.
履歴の表示中に、奥に普通のメッセージレイヤが透けて
見えちゃうのが嫌なんですが、どうしたら消せるのでしょう
一応あちこち探してみたのですが……
キーワードがうまくないせいか、はっきりとした情報には辿り着けませんでした
取り合えず、「HistoryLayer.tjs」の568行当たりにある
fillRect(0, 0, width, height, 0xc8000000)とか調整してみれ
→例 fillRect(0, 0, width, height, 0xff000000)とか
公式の過去ログを調べ直しておくといいカルガモ
あ、ごめんなさい言い方がまぎらわしかったです
履歴レイヤの色とか透明度をいじりたいわけじゃなくて
「履歴の表示中にメッセージレイヤ(&システムボタン)を非表示にしたい」のです
>>566 config.tjsのメッセージレイヤの透明度を弄れ
MainWindow.tjs > 2338辺りにある、
showHistory()、hideHistory()
辺りを書き換える。
>>566 直ぐに思いつくのは「MainWindow.tjs」の
>>568のタイミィングで
for(var i = 0; i< fore.messages.count; i++) fore.messages[i].visible = false;
とかだけど、どっかで…kag.process('', '*hidemessage')を使うとかだったか
もっとまとうでスマートなやり方を見かけた気がしなくもない
570 :
566:2009/04/18(土) 17:03:44 ID:oExwCRAY
MainWindow.tjsのshowHistory()にkag.hideMessageLayerByUser()を、
hideHistory()にkag.showMessageLayerByUser()を入れてみたら出来ました!
他にも方法がありそうですが、とりあえずなんとかなって良かったです
>>568さんと
>>569さん、ありがとうございました!
難しいのよねトランジションって
トランジションを2回以上するのは同じ動作を繰り返すだけでいいのか?
どこの講座も2回以上のトランジションやってないから困る
表とか裏とかわけわかめ
2回以上のトランジション?
連続で繰り返すってこと?
>>573 背景がずっと変わらないゲームなんてあるかい!
やってみりゃ済む話じゃないかい?
次のトランジションを実行しようとすると
前の背景がフェードインからフェードアウト
(イキナリ背景が出てきて直後に徐々に消える)に変わる
ID:zFZdA68Pのニホンゴ(?)がわけわかめ
求む通訳かエスパー…
あ、ID:zFZdA68Pはマジな質問なら再現するソースかコード(32行以内)さらせや
ネタなら気がつけずスマソ
二回以上も何も、きちんとトランジション動作が指定されていれば
何回繰り返そうが関係ない。
@backlay抜かしだろ、どうせ。
講座読んで、表画面と裏画面の仕組みをまず頭に叩き込め。
あと、書き方が悪くて他人にやりたいことの意味を伝えられていない
から573が親切に聞き返してくれたのに、574のような受け答えを
するな。
そんな態度を続けると、そのうち誰も相手にしてくれなくなるぞ。
>>577 エスパー検定2級の問題です
抜き打ち書き込みされてるんだよ
>>576 イメージタグのレイヤ指定がforeになってるんじゃないのか?
トランジションは表画面と見えない裏画面を取り替えるものだから、
次の背景を表示するときは、裏に予め次の背景を準備しておいて、
それをトランジションで表に持ってくる、という手順になる
つまり、表に準備しちゃったから、いきなり表示されてトランジションで裏に行っちゃったんじゃね
ソース見てないんで推測だが
>背景がずっと変わらないゲームなんてあるかい!
だから573は確認したんだろw
背景の変え方も知らないスクリプターなんかおるかい!
もう解決しますた
やたら手間を食う講座ばかり見てて混乱していただけですた
ってかforeなんて殆ど使わないだろ
ノベルゲじゃないせいか、fore結構使うけど
ま、使い方は人それぞれ
>>579 皆、すごいの〜 580の解説でやっと分かったよ
2級でこれってエスパー検定、難易度高杉ヽ(`Ω´)ノ
2級の出題範囲はせめて並の厨房までにしてほしー
おれはエスパー検定1級持ってるけど何が問題でどう解決したのかを知りたかった
>ってかforeなんて殆ど使わないだろ
またそういう負け惜しみを…
吉里吉里できりきりまい
>>581 そんなアホみたいなレベルの質問に詳しく解説してもらっといて、なんでそんな上から目線なの?
アホなの
アホだろ
590 :
名前は開発中のものです。:2009/04/21(火) 18:40:24 ID:6FRvVcbd
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
591 :
名前は開発中のものです。:2009/04/22(水) 16:24:01 ID:/FZjXRuC
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
592 :
名前は開発中のものです。:2009/04/23(木) 21:26:59 ID:dX2wEjye
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
うっ!あっ!うっうっあっ!
なんでそんなに必死なん?(´・ω・`)
アホって言われたのが相当悔しかったんだろ
アホじゃないしっ!
春爛漫だな
のう
598 :
名前は開発中のものです。:2009/04/25(土) 22:46:54 ID:JGya8OU6
ROMってるだけでも結構、勉強になるスレだな。
何かありがとう。
メニュー画面で
close メニュー画面を閉じる
exit ゲームを終了する
title タイトル画面へ戻る
back 直前の選択肢へ戻る
こんな感じでヒントが出るようにしてるんだけど、
closeとexitって紛らわしいかな?
同じように文章のスピードも未読と既読で
スピードを変えないときは「変えない」を
changelessってしてるんだけど、分かりにくい?
大人しく日本語で書いとけば間違い無いんだけど、
ゲームの雰囲気に合わない気がして。
changelessよりはno changeのほうがよくね?
とかはさておき、そんなささいなこと、何度も間違い操作しそうなものならともかく、気にするほどではないと思うが
即レスありがとう
なんか一人で作ってるとつい独りよがりになっちゃって
たまに我にかえるとささいなことが気になっちゃうみたいだ
常時表示してるシステムボタンの画像を、オート中やスキップ中に変えたいんだが
配列のとこにif(kag.autoMode)とかで切り替え出来るんじゃねーかと思ったら全然だめだったorz
なんか上手いやりかたないですかねぇ
公式やら過去ログやら見てみたけど、はっきりとした答えが出てないみたいでさ…
exitよりはquitじゃない?
閉じるはbackにすればいいんじゃね?
と思ったら別の意味でもう使ってるのか
英語圏のゲームをいろいろ見てみて
使われ方を研究するのが一番近道かも
俺の感覚だと
back to game メニュー画面を閉じる
quit game ゲームを終了する
back to title タイトル画面へ戻る
tackback 直前の選択肢へ戻る
こんな感じかなあ
俺は
メニューを閉じる だと close the menuみたいな感じかなぁ
んでExit game
Back to title
Back to なんとか
606 :
名前は開発中のものです。:2009/04/26(日) 00:56:51 ID:ddt/stod
Back to the future ガルウィングの車型タイムマシーンで(ry
>>602 一応そんな感じのを実装してるけど、俺は
直接mainwindow.tjsのスキップモードとオートモードのメソッド内に
その処理を入れちゃったな
今PC付けてないんで詳しく参照出来ないけど、
モードに入るタイミングと解除されるタイミングで
ボタンの上にテンポラリレイヤを出したり消したりする感じ
まあ原始的だけど、動作は理想通り
>>607 なるほど
具体的にどんな記述なのか、ぜひ詳しく教えていただきたいです
今度PCつけたときにでも…
>>608 いや、そのまんまだよ
具体的には、autobtnlayとか適当な名前でlayer作って画像入れといて、
モードに入るタイミングで
autobtnlay.visible=true
解除する(未読に来たとかクリックされた)タイミングで
autobtnlay.visible=false
みたいな感じ
ただそれだけ
詳しく参照できないって書いたのは挟む位置のことだよ
エディタで単語検索でもかければ大体わかると思うが
ゲームを起動したときにウインドウ上部に出るバーの吉里吉里をゲームの名前にしたいのですがどこを変更すれば良いのでしょう?
>>610 一通りリファレンスに目を通してからConfig.tjsを嫁
春爛漫、ですね
頭☆春爛漫ですね
614 :
名前は開発中のものです。:2009/04/26(日) 11:58:27 ID:RAAzB/4t
わあああああああああ!!
>>602 自分もそれ一応実装してるけど、もっと簡単なのがあればそれはそれで知りたい
一応、自分のはサンプルsystembutton.ksのシステムボタン使ってて、
公式のログをほぼそのまま参考に新たな関数を足して、
かつ
>>607みたいにmainwindow.tjsのオートモードのメソッド内でその関数を呼び出す感じ
短くオートモードだけのせると
systembutton.ksのonStableStateChanged関数の後ろあたりに以下を追加
function toggleBtn()
{
if(kag.autoMode)
{
foreButtons[1].loadImages('オンの画像');
backButtons[1].loadImages('オンの画像');
}
else
{
foreButtons[1].loadImages('オフの画像');
backButtons[1].loadImages('オフの画像');
}
}
mainwindow.tjsのオートモードのメソッド内に以下を追加
global.systembutton_object.toggleBtn();
スキップも大体同じ感じ。
でもこれだと、別の関係ないところで記述ミス{}が閉じてなかったりすると
”global.systembutton_object.toggleBtn()が見つかりません”てエラー文が
吐き出されるので気をつけて
KAGPluginに onAutoModeChanged とか onSkipModeChanged を作って、
MainWindow.tjsのそれぞれのところで forEachEventHook をやるとか・・・。
めんどくささはあんまり変らんな orz
moveタグについて質問なんだけども
リファレンスでは複数レイヤを非同期にって書いてあるけど
同期をとって複数レイヤを動かす方法はあるのかな
moveタグを
[move time=1000 path="(0,0,255) (100,0,255)" layer=0]
[move time=1000 path="(0,100,255) (100,100,255)" layer=1]
[move time=1000 path="(0,200,255) (100,200,255)" layer=2]
[move time=1000 path="(0,300,255) (100,300,255)" layer=3]
…
って感じで書いてレイヤ数30個くらい動かしてみたらほとんど同期してるように見えたから、別にいいかな、とは思ったんだけど
非同期ってことは環境に依存するんだろうし
同期を保証するには他の方法とかあったりするのかな、と思って
ここでいう非同期っていうのは、向こうのmoveの終了を待たずに同時に
っていうような意味だと思うよ
>オートの表示
自分も今やってるとこなので自分が書いてるもの晒し。ただし、とても乱暴。
あと、書きたてなので何が起こる河からないw
AfterInit.tjs...
var AutoModeLEDf;
var AutoModeLEDb;
kag.cancelAutoMode2 = kag.cancelAutoMode;
kag.cancelAutoMode = function(){
if(autoMode){
global.AutoModeLEDf.visible = false;
global.AutoModeLEDb.visible = false;
}
cancelAutoMode2();
} incontextof kag;
kag.enterAutoMode2 = kag.enterAutoMode;
kag.enterAutoMode = function(){
global.AutoModeLEDf = new ClickGlyphLayer(this, fore.messages[0]);
with(global.AutoModeLEDf){
.loadImages('AutoMode.png');
.top = 135;
.left = 700;
.visible=true;
}
global.AutoModeLEDb = new ClickGlyphLayer(this, back.messages[0]);
with(global.AutoModeLEDb){
.loadImages('AutoMode.png');
.top = 135;
.left = 700;
.visible=true;
}
enterAutoMode2();
} incontextof kag;
>>617 ここでの非同期は
>>618 の言ってるおとり、「KAGの実行と非同期」ってことで、move の
実行につかわれてる基準になってるタイマー(tick値) は同一なので、同じタイミングで開始して、
時間指定が同一のものは全部同じタイミングで動く
>>618 >>620 そうなのか。非同期の意味を勘違いしてたぜ
今作ってるゲーム、同時に50個くらいのレイヤを動かしたりするんだけど、
他のマシンでだと動きがずれたりするのかなとか不安に思ったんだ
ありがとう
622 :
602:2009/04/26(日) 23:09:40 ID:dcU+MXiB
さっそく
>>615のをやってみたけど、上手くできなかった(なんかズレた上に半分に切れて表示された)
らんかさんの改造版を使ってるからか?
あと、トグルっつーことで走行時に他のボタンもクリックし放題になるから
自分の希望とはちょっと違うかな…でも参考になった!
で、
>>619もやってみた
そのままだとどうしてもボタンレイヤの後ろに配置されてしまうので、
message[1]にしてindexで前に出したらそれっぽくなりあった
でも自分の頭じゃ、どうやればskipで同じような挙動にできるのかがわからない(´・ω・`)
今んとこ
>>609のやりかたが一番気になるが、tjsでレイヤ作った経験がないので試せない…
ともかくアドバイスありがとうでした
>>622 言うの忘れてた、自分は基本オートでプレイするから
オート中にスキップとかレイヤー消したりする前提でやってた
でも久々にやってみたら、オート中の履歴表示が不安定というか
トランジションと改ページが実行されてしまうなこれ・・・
理想はウィルのゲームみたいなシステムなんだが・・・
役に立てなくてすまん
でも走行中はいじらないなら過去スレ12の657-662あたりに
似たようなレスあったから参考になるかもしれん
むしろこっちも誰かアドバイスないですか・・・
エロゲってキャラ名表示される枠と表示されない枠がありますよね?
あれを交互に出すにはどうすれば良いんでしょうか?一つしか出せなくて困っています
お願いします
>エロゲってキャラ名表示される枠と表示されない枠がありますよね?
エロゲには詳しくないのでどういうものだかさっぱりわからない
キャラ名表示される枠と表示されない枠片方ずつならできてるんでしょ?
どんな風にやってんのかしらんけどそれ切りかえればいいだけじゃないの
いや素人なのでその切り替え方が分からなくて。。
ホントすみません
いや素人なのでその切り替え方が分からなくて。。
ホントすみません
>>629 タグリファレンス>position
frame属性の項を参照
>>622 607だけど、俺のは615や619の方法に比べたら、強引だし汚いし使いにくいと思うorz
正直晒すのは恥ずかしいw
でも投げっぱなしもアレだから、layerは既存のもので
もっと単純で簡単でkagからも扱いやすいようなのを考えてみたんだけど、どうだろう
asLED.png(ボタン下地)、asLED_a.png(スキップ、オートの順に選択中の画像を連結したcell)
---asLED.asd---
[loadcell][loop]
*start
[eval exp="kag.fore.layers[1].setPos(kag.autoMode ? 【オートボタンx】:【スキップボタンx】,【全体y】)"]
[copy dx=0 dy=0 sx=&【ボタン幅】*kag.autoMode sy=0 sw=【ボタン幅】 sh=【ボタン高さ】][wait time=500]
[if exp="kag.autoMode || kag.skipMode"][jump target=*start][endif]
[home][eval exp="kag.fore.layers[1].visible=false, kag.back.layers[1].visible=false"][s]
-------------------
を用意して、MainWindow.tjsのメニューアイテム関連のメソッドにでも
function onSkipToNextStopMenuItemClick(sender)
{
skipToStop();
fore.layers[1].loadImages(%[storage:'asLED.png',visible:true]);
}
function onAutoModeMenuItemClick(sender)
{
if(autoMode) cancelAutoMode();
else enterAutoMode(), fore.layers[1].loadImages(%[storage:'asLED.png',visible:true]);
}
とか処理を入れる
(この場合は、システムボタンはMenuItemClick()のほうで呼び出す)
スキップの表示、chタグに挟み込むとか思いついた。
前スレだったか、インデント関係でchタグに挟むプラグインがあったけど
それの中で便乗してskipMode>2なら、visible=trueみたいな。
無駄は多いけどMainWindow.tjs触らずにいけそうな予感。
件のプラグインが見当たらなかったら終了だけど。
いろいろ試してみてうまくいかないのでわかる人がいれば教えてほしいのだが、
今、1画面に同時に複数のlayerをクリッカブルマップとして使用していて
それにはすべて同じファイルを使用してるのだけれども
クリックしたときに、どの番号のlayerがクリックされたかというのを調べる方法はないだろうか
たとえば、こんなかんじで異なるレイヤーに複数読み込んだときに(クリッカブルマップ.maファイルは1つ)
[image layer=0 page=fore storage="クリッカブルマップ.png" visible=true left=0 top=0]
[image layer=1 page=fore storage="クリッカブルマップ.png" visible=true left=100 top=0]
[image layer=2 page=fore storage="クリッカブルマップ.png" visible=true left=200 top=0]
[image layer=3 page=fore storage="クリッカブルマップ.png" visible=true left=300 top=0]
[image layer=4 page=fore storage="クリッカブルマップ.png" visible=true left=400 top=0]
クリックしたら、どのレイヤーがクリックされたかのlayer=?の値を取得したい
>>633 GraphicLayerを改造しないと無理っぽい。
ファイルをレイヤ数分用意したほうが管理はめんどいけど手っ取り早いと思う。
>>634 やはりGraphicLayerいじるしかないか
でもそこまでいじるよりはファイルを分けたほうがわかりやすいのは確か
どうも
メッセージレイヤを一時的に隠している時、右クリックメニューを開かせないでhidingを解除したいんだけど、どうやればいいだろう?
MainWindowのfunction callRightClickSubRoutine()あたりを弄くればいいのかなーと思うんだけど、どう弄くったら正しく動作するのかわからないんだ・・・。
あるいはもっと簡単な方法あるんだろうか?
誰か教えてくれぇぇ・・・・
>636
636の言う右クリックメニューっていうのは吉里吉里に梱包されてるrclick_tjs.ksのことかな
で、そのhidingってのはhidemessageのこと?hookかなんかで呼んでるの?
>右クリックメニューを開かせないでhidingを解除したいんだけど、どうやればいいだろう?
一番簡単なのは左クリックだと思うんだが…そういうことじゃないんだよな?w
まず現状の動作と、理想の動作を書いて欲しいな
>>637 こんな時間にありがとう。しかしなんか悩んでたら解決しちまったんだぜ!
理想の動作は普段右クリックで右クリックメニューが出て、メッセージ枠内に設置したシステムボタンからメッセージレイヤを隠せる。
そして、メッセージレイヤを隠した状態からは、右クリックでも左クリックでもメッセージレイヤのハイドが解除される(だけ)・・・って状態。
下ので動いたんだけど、無駄が多かったり動作が怪しかったら誰か突っ込んでくれるとうれしい。
function callRightClickSubRoutine()
{
if(!messageLayerHiding){
isLeavePeriodEvent = true;
// 右クリックサブルーチンを呼ぶ
if(typeof this.rightClickMenuItem != "undefined")
{
rightClickMenuItem.caption = rightClickCurrentMenuName = rightClickDefaultName;
}
callExtraConductor(rightClickStorage, rightClickTarget, restoreFromRightClick);
lockMessageLayerSelProcess(); // 選択肢ロック
}else if(messageLayerHiding){
switchMessageLayerHiddenByUser();
}
}
TJSエンジン組み込んだだけじゃん。
セカンドライフでリンデンスクリプトが使えるようなもの。
いや、KAGつかえるとかあるし、単に別窓で立ち上がるんだとみた。組み込みなんて高度なことができてたらすごいぜ
C++Builderがわかれば、修正すれば組込めると思うがね
吉里吉里がなんとか動けば、tjsが動く=KAGも動く だからな。
一部の機能が制限されるって書いてあるから
組み込みでしょう、たぶん。
ターゲットがよくわからん
おさかな定食がなんか休止してて俺涙目
板とサポートは休むにしたって、配布物のDLまで止めなくても良いのにね
おさかな停職
近日中って書いてあるからじっと我慢
そして近日は永遠に来る事はなかった・・・。
おさかな定食。完
そして伝説に・・・
掲示板で興味深いところブクマしてたのに…
再公開したときログも公開してくれるのかな…
おさかな定食休止マジか……
復帰したら何か増えてるかな?
654 :
名前は開発中のものです。:2009/05/07(木) 22:23:46 ID:tM2feN5f
質問があります。
吉里吉里にてノベルゲームを制作中の者ですが、メニューバーを作成していたところエラーが発生しました。
症状:立ち上げ時に背景や文字等が読み込まれず、ウィンドウの中にその後ろのデスクトップが写り込んでいます。
BGM・SE・クリック等の通常操作は実行されているようです。
以前は問題なく実行できていました。
コンソールにはCurtomMenu.ksの104行、条件コンパイル式にエラーが発生したとありました。下記にその前後を記しておきます。
kag.addPlugin(global.menu2_ouject =new CustomMenuPlugin(kag));
@endscript←104行目
@endif
なにぶん素人なもので、自分でも調べてみたのですが全く分かりません……。
どなたか問題点や、その改善策等ご教授頂けませんでしょうか?
使用バージョンは吉里吉里2(実行コア2.30.2.416)で、メニューバーの雛形は
ttp://members.jcom.home.ne.jp/hiro-ozaki/krkr/index.html の物を使用させて頂いております。
よろしくお願い致します。
@iscript 〜 @endscript
このタグ内でエラーがあった場合はそこ(最後のendscript)でエラーを出すからなぁ、わからん・・・。
oujectはたぶんobjectだろう。スペル的に考えて
エラーのとき line ** : 〜〜〜英文〜〜〜
見たいのは出てなかった?
>>654 数ページのプレビューかと思ったら全ページかよw
グーグルさんが新しい事業を始めたようです
とりあえず秀和の本はどれも全部みれるっぽい気配?
100%とまではいかないけれど結構みれる
>>656 ご回答ありがとうございます。
objectは私の書き損じです。すみません;
ご指摘の件ですが、infomationからのエラー警告は無く、クリックもでき音楽も鳴っております。
しかし指定したはずのタイトル画面が映らず、デスクトップ画面が透過されてみえている……といった具合です。
line〜といったような英文等は表示されませんでした。
メニューバーのスクリプトには、一切手を加えておりません。
レイヤの指定が原因なのでは睨んでいるのですが、詳しい知識がないのでままならない現状です。
それとも、このメニューバーはバージョンによって互換性が無いのでしょうか……。
すげえw 1025ページある本も最後まで読める
( ;∀; )フトッパラダナー
664 :
名前は開発中のものです。:2009/05/07(木) 23:05:50 ID:Sr1AYHxq
ガイシュツなんだろうけど
吉里吉里人の著者井上ひさしってDVなんでしょ
しかもそれを居直ってる人でしょ
そのへん吉里吉里使ってる人はどう思ってるの?割り切ってんの?
>>654 そこならずいぶん前から OUT FOCUS Wiki にリンク貼られていたぞ(アマゾンと一緒に)
>>655 なんで作者本人にきかないの?
同梱されてるテスト用のfirst.ksでもエラーでるならプラグイン本体が悪いか、
使用している吉里吉里/KAGのバージョンに対応していない
エラーがでないなら、655がどっかで変なことしたんだろう。コメントアウトしながら
どこが悪いのか調べていけ。もしくは別のプラグインとの相性が悪い
>>664 吉里吉里は井上ひさしの吉里吉里人から取ったわけじゃないだろ
ゼミ旅行だか何かで吉里吉里に行ったことにちなんでつけたはず
ただの荒らしだろ
ADVでバックログから文章クリックでその場面を復元する、って
毎行tempsaveしとくしかないかな?
バックログの文をリンクに出来r技術がまだないって話もあるんだけど
一行ごとに*0001|とか適当に名前つけたラベルかませといて
クリックされたらそのラベルにジャンプすればいいんでねーの
立ち絵の表示状況やらなんやらは別途管理しなきゃならんけど
そもそもバックログに大規模な変更加えるなら
いっそHistoryLayerごと書き換えるか、似たような機能持たせた
まったく別のレイヤとして一から作ってバックログの代わりに表示させたほうが何かとお便利です
>>670 *bar
[hact exp="kag.process('foo.ks', '*bar')"]baz[endhact]
>>670 その機能を入れても自己満で終るという・・・
履歴がとりあえず見られればユーザからの苦情はない。
仮に入れたところで履歴の機能が良いとも言われない。
余計な機能に力いれないで、
誤字脱字無し、バグ無しの本編を作った方が喜ばれる。
さっきの演出がもっかい見たい、とか
戻られると具合が悪いとこでこそ使われて痛い目みたり
スクイズは各話好きにみたかったな
カスタムメニュー同じの使わせてもらってるけど
そんなエラー出たことないけどなぁ
>>666 直接質問はこちらで質問して解決できなければ、と考えておりました。
もうしばらく頑張ってみて解決できなければ、作者の方に質問のメールを送信するつもりです。
友人や職場等の環境の違うPCでも何度か立ち上げてみたのですが、いずれも同じ症状が……。ギギギ。
サンプルも起動させてみたところ、透過こそありませんでしたが一面真っ黒な画面で文字が表記されず同様に。
なので別のプラグインとの相性という線は無いかと。
やっぱり、バージョン非対応というのが濃厚でしょうか。
>>676 よろしければ、ご使用の吉里吉里のバージョンを教えて頂けませんでしょうか?
2.28r3だと動いた。
2.28r3のKAGに2.30のコアを置いて起動したらアウト。
2.30で動かすにはコアの設定が必要なのか、そっから先はようわからん。
ButtonLayerを使ってボタンを作成してるのだけど
mousedownからフォーカスを外したときクリック動作を
キャンセルさせることはできないのでしょうか?
ButtonLayer.tjs見るとそういうふうに動くよう書いてあるようだけど
実際そういう動きをしてくれてないようで
onMouseLeaveでreleaseCaptureとか?
KAG終了時のプラグイン無効化って登録順なんだな。
プラグイン間でリソース参照してる場合の初期化/無効化の処理順序を考えると逆順のほうが自然だと思うんだけど。
マネージャかませるかMainWindow.tjs書き換えすればいいんだけど、なんか気持ち悪くてならない。
俺はマネージャ噛ませて無効化しながらトポロジカルソートした順に無効化してる。
無効化順に変更がなければプライオリティキューに突っ込んであるからその順に無効化する。
プラグインの依存関係について静的に依存し実行時にもそれが変わらないならプライオリティキューの順で無効化される。
実行時に動的に依存関係が変わる場合はトポロジカルソートした順というふうになる。
タグの追加からエフェクト、ミニゲームをプラグインとして実装してあるからこうなった。
ちょっと聞きたいんだが、
transタグで、baseレイヤを指定するとき、childrenがtrueなら全部一気に入れ替わるようになってるけど、
その中で1つだけ入れ替わらないようにとか指定できたりするのかな
>>683 children 指定は全部入れ替えてるんでなくて「子ごと」入れ替わってる。
一つだけ除くとかは当然できない
だからこそ backlay して必要なとこだけ書き換えて trans する、という方法があるわけで。
>>684 やはりそうか
>だからこそ backlay して必要なとこだけ書き換えて trans する、という方法があるわけで。
説明しにくいが、それができないような特殊な入れ替えなんだ
transタグ自体を書き変えたほうがよさそうだな
>>685 Layer の基本機能なので trans タグ書き換えで対応できるようなもんじゃないべ
特定の子だけ同じタイミングで逆にトランジションかければなんとかなるかもね。
>>686 なるほど。とりあえず、kagの仕様のままじゃ俺の今作っているゲームの仕様ではあわないから、ちょっとやってみるぜ
個別ばらばらにトランジションするのはふつうにできるよ。
ただし absolute が変化すると表示がおかしくなるけど(完了後に一瞬で切り替わる)
横一列に表示できる文字数を指定する方法ありますか?
それともフォントサイズを適当に変えて調整するしかないのでしょうか?
>>689 ないことはないが…ユーザーがフォント変更すれば幅は変わっちゃうよ
変更できない仕様にしてたとしても、
非等幅フォントだとかえって改行位置がガタガタになっちゃうし、
等幅フォントだとマージンで調整した方が早いような…
いちいちどの台詞でどの音声ファイルを再生って入力させるのが非常にだるいんだが、
ここに居る人達はどうやってやってるの?
もしかしたら金が関わる問題に発展するかもしれないので、
スレ住人とのコンセンサスが取れるまでは説明できない。
>>691 の問題って、皆は問題とすら認識してないよな?
それとも、大多数の人間は手作業でファイル名を入力している状況?
音声つくような仕事に携わった事のない奴は知らんと思う
俺とか
同人はよほどじゃないと声つきは無理だ……
>もしかしたら金が関わる問題に発展するかもしれないので、
スレ住人とのコンセンサスが取れるまでは説明できない。
どこの秘密組織のエージェントだよw
同人で声つけるのなんて3万も出せば十分だよ
どんな大作作ろうとしてるんだよ
ただでさえメディア代回収できるかどうか怪しいのに
声優にまで金払えないってのならわかるが
696 :
692:2009/05/11(月) 12:09:36 ID:O23ZWdAx
>>694 いや、俺は別に大した情報とは思ってないけど、8000本とかの
音声のファイル名を手打ちで付けるのが業界の常識で、それを肩代わりして、
正確無比、迅速確実なファイル名の付加を2万円で引き受ける、みたいな
ビジネスが俺の知らないところで成り立っているのだとしたら、
俺が情報を広めることでそいつが食いっぱぐれることになるでしょ。
常識だと思うのならあんたが教えてやってくれ。
自意識過剰乙
・台本つくるときファイル名を自動指定&テキストにも自動で流し込む
・実行時にルールにあわせて自動的にわりあてる(ずれるところだけ指示をいれる)
どっちか。どちらにしても自動。手ではめるなんて非効率なことはしない
699 :
692:2009/05/11(月) 12:21:44 ID:O23ZWdAx
>>697 いやいや、だからね、自意識過剰だと思ってるなら
>>691に教えてあげればいいんだよ。
人を煽るくせに求められている情報は出さないって、どれだけ性格悪いんだい?
それとも情弱のくせに煽るだけの小僧ですか?
701 :
692:2009/05/11(月) 12:33:42 ID:O23ZWdAx
>>700>>697 同じ内容のレスを繰り返さなくていいです。
分かったらもう書き込まないでね?
ネットリソースって有限なんだから。頼むよ?
かまうなよ
最近こういうキチガイがよくスレに来るようになったけど、
何かで吉里吉里の知名度が上がったりしたのか?
何で上がったかっていうならFateだろうけど、
最近は何か盛り上がるようなことあったっけ?
さすがに
>>692は頭弱いだろ・・・、平日の昼に書き込んでる俺も俺だが。
708 :
692:2009/05/11(月) 13:55:25 ID:O23ZWdAx
こちらの質問に答えるでもなく、
>>691を助けるでもなく、一方的で根拠のない人格批判……。
>>707の言うとおり、キチガイが集うのはメジャーなツールの宿命。
というか、ここは2chだな。
>>691よ、すまん。どうやらコンセンサス以前のレベルのまま終わりそうだ。
ちなみに俺も
>>698が言ってるように自動でやってる。
具体的なやり方等は、誰かが教えてくれるのを待つか、
余所のスレで聞くといい。基本的にはスレ違いな話題だから。
>>691 俺のはフリーゲームだからボイスなんてつけてないけど、
顔グラなり名前表示なりでマクロか関数くらいは使ってるんだろ?
ボイス再生関連もファイル名を変数にしてそこに入れちゃえばいいんじゃね?
ぱっと思いついたのは
kag.conductor.curStorage(現在のKAGシナリオファイル名)
kag.conductor.curLabel(現在のラベル名)
分岐関連はこの辺から取得して、普通の変数に++でナンバリングをcountして、
くっつけたものをファイル名として呼び出すとかさ
(通過記録関連の変数でもいいかも)
>>709 台本作成後、音声収録をするまでの間に音声の追加や削除が一切発生しない、
というならそれでもいいね。
ライターが優秀で、間違いのないシナリオを期日通りに上げてくれるならいいけど、
そうでない場合は大抵台本を声優に送ってから収録するまでの間に台詞が増えたり減ったりする。
そういう時にどうするかが問題。
>>710 でも、この例の場合シナリオファイルやラベルごとにcountはリセットするわけだから
そう手間でもないと思うんだが
少なくとも全音声ファイル、全シナリオファイルをリネームするよりはさ
>>692 が間違いなくいちばん痛い子
そのおまえの具体的なやりかた教えてやれよw
スレ違いだと思うなら最初から食いつくな
一般的には、sed なり perl なりのスクリプト言語を使って、
【名前】 とかの表記を拾い出して、それを例えば
[名前 voice=XXXXX
きゃー、押してしまった。
それを例えば
[名前 voice=XXXX] みたいな形に置換します。XXX の部分はキーワード+番号 みたいな形で
それをそのままファイル名にする。
台本の元データを excel とかで管理して、マクロでファイル名をわりあてて、
その元データから、最初のスクリプトと台本データをそれぞれはき出す、とか
の方法もわりと一般的。
>>711 他の要素を一切考えないなら大した手間はないかもしれないけど……うーん。
個人的な趣味になるけど、現在のシナリオ+ラベル+カウントってことは、
A子ルート_選択肢01分岐後_12.wav
みたいな音声ファイルになるってことだよね?
今までに見たこともない命名規則でなんか気持ち悪いよ(汗
あと、
>>691の書き込みからはちょっと読み取れなかったんだけど、
台本を作るのは苦痛じゃないのかね。
俺の場合、
シナリオ(txt) → 音声ファイル名付加(txt) → 台本(doc)
という流れで台本を作って、音声ファイル名付加のテキストファイルを元に
スクリプト作業をしてる。
だから(スクリプト上で)どの台詞でどの音声ファイルを再生させるか、
なんて指定する必要ないんだけど、どんな状況になってるんだろう。
ID:O23ZWdAxって本格的にかわいそうな子……
>>715 いちいち煽るなボケ
よけい暴れられて迷惑だ
俺も、714と同じかな。
ライターさんには書きやすいフォーマットで書いてもらって、
1.ライターさんからテキストもらう
2.プログラムでこちら側のテキストフォーマットに整形。ここで音声番号付加。
追加で収録したい音声もここで追加。
3.プログラムで2のテキストをTeX(台本)と管理ID毎の吉里吉里スクリプト(ks)に変換。
4.TeX(台本)をPDFに出力して、声優さんと収録スタジオに送る。
という流れかな。
音声ファイル名とかタグはめんどいから手打ちしてない。
2と3は1つのプログラムで、昔作ったTeXのライブラリがあるのでJavaで作った。
スクリプトあつかえるPGだと、片手間作業の範疇ではあるから、
各社(サークル)、内製のツールやら作業者用の手順書やらはもってたりするんだけど、
一般的にオススメできるようになってるツールは巷には無いんだよなぁ>台本作成
うちも TeX ベースで処理してしまってるので、とても人にお見せできる状態じゃないw
吉里吉里のユーザへの敷居をさらに広くとろう、とか思うのであれば、
標準的な機能がそろったUIテンプレートとあわせて求められる部分ではあるだろうね。
関わる業種がスクリプトにとどまらないから難しいよね > 台本作成作業の標準化
・標準となる台本のフォーマット
・標準となるシナリオのフォーマット
最低限この二点は策定しないと、吉里吉里に標準で添付するツールは作れないと思う。
特に後者が難しいな。ライターって「こういうフォーマットで書いてください」
って言っても書けない人が多いから。
台本ね。
javaで思いついたがTexよりXSLFOがいいんじゃないだろうか。
問題は技術者が居ないし居てもやらないだろうがライブラリ自体はアンテナハウスが作ってるからマシだろう。
一度XSLFOにしてしまえば最終出力はTexだろうがPDFだろうがHTMLだろうがPostScriptだろうが何でもありだぞ。
ちょいと疑問なんだけども
目パチ・口パクの ごく短い動画をwmv9でAVI圧縮して
MediaPlayerで再生すると画質が悲惨な事になる。
コレを吉里吉里上で再生してやると、何故かまともな画質になるんだけど
一体これどーゆーことなの・・・・
スレチだったかな・・・ごめんよ
MediaPlayer がタコなんじゃね?
吉里吉里上ってのはレイヤ再生?
それだとすると MediaPlayer がまだ画像が準備できてないのに再生はじめちゃってるのかもしれない。
>>722 ありがと。 ちょっと安心したw
お察しのとおり、レイヤ再生しとります。
やはり。
レイヤー再生は完全にフレーム確定するまで表示されないからきっちりした映像になる。最初の乱れもない。
オーバレイかミキサーで再生するともしかしたらメディアプレイヤーと同様になるかもしれない。
ムムム、詰まったゾイ。
口パクアニメ込みの前景レイヤを使ってる状態でズームできるプラグインはないものか。
既存のじゃ背景と前景の同時ズームもできないみたいだし……。
それとも、俺の組み方がどっかおかしいんだろうか?
たぶん無いと思う。
AnimationLayerに拡縮機能を入れればいけるかもしれない。
吉里吉里使ってるクセに
「作者はこのアーカイブを正規の方法以外で展開されることを臨んでいません」
とか言うファイルをわざわざ入れるとか何考えてるんだか
>>726 んじゃもう、こう解像度変更的に全レイヤひっくるめて拡大! みたいなのないのかなぁ。
あったら超有用だと思うんだけど。俺とかに。
google先生でも探せなかったから、流石に無いのかな……。
う〜ん、キミキスとかアマガミみたいなのを作りたいと思って、CGやらBGMやらは大体できたんだが……。
肝心のスクリプトが生まれてこのかた触ったこともなかったよ。
流石に素人が一から組んであのレベルに持ってくのは、難しいのかのぅ。
でもあれどうやってやってんだろ。
拡大しても全然画質落ちないし。
立ち絵の通常サイズが原寸の縮小サイズにしてあるとか?
>>728 キミキスやったことないけど最近でいうとタペストリーみたいに内部バリバリの3Dなんじゃね?
>全レイヤひっくるめて拡大!
CPUにこれやらせるのは現実的じゃない。
うちのんは相当大きめに作って縮小表示してる。
速度はまぁ問題ないけど、画質は拡大よりはましだけどってレベルかな。
話見る限りpiledCopyが良さそうだけど速度は大して望めないかも。
ズーム動作中はアニメしないって割り切れば現実味出てくると思うよ?
>>725 プラグインでなくて KAGEXなら実装はされてる>前景レイヤの拡縮回転
KAGEX2なら動画再生も組み込まれてて、再生しながら回転とかできる。
ただ、修正点がかなり広範囲なので単純にKAG用に参考にするのは難しいと思われる
あれはKAGから派生した別のフレームワークだからな。
キミキスは公式に吉里吉里版あるから落としてこいよ
デバッガ無効化してなかったと思うからそのまま見れるはず
キミキスのおまけ劇場って、PS版とおなじ効果使ってるんかな
元のゲームのほうやったことないから差がわからんね
そんな特殊なことしてたっけか
>>734 あれ俺も興味があったけど、もう配信終了してる
やってみたし、ざっと観察したけどそんなもらってこようと思うほどのもんじゃなかったような。
俺の中では短期間であれだけきっちり作れた事がとにかく驚き、っていうそんな位置づけ。
目新しい技術やら演出はなかったけど、
短期間の割にシステム周りは綺麗にまとまってたよな
斬新な演出とかスクリプトもいいけど、ああいうきちっとした仕事をするのも大切だぁね
fateはぐちゃぐちゃだったが、追ってみるとなかなかおもしろかったり
今吉里吉里に必要なのは格ゲー用のスクリプト言語だよね
あれSyntheの話題がないみたいだね。
吉里吉里で制作したゲームを販売できるみたいだけど…
さしあたっての公開時間が計26時間で、
通信機能とかはそのあいだに習得&作成&テストしないといけない。
制限時間内にまともなのをうpできる猛者はいるんだろうか…
>>639で少し話題になりかけたけど
ほとんど話題にならなかったよ
せめて仕様だけでも先にうpできなかったのかね
あの仕様読むだけで開発できたら神w
俺はSyntheの記事見て吉里吉里に手を出したクチなので、
盛り上がってほしいとは思うけどね
Synthe自体のコミュニティが盛り上がらなくても
自サイトに上げるゲームみたいにしてネトゲを
公開できるメリットはあるからな
ユーザーがユーザーの友達とログインすれば
対戦相手もさほど問題にならないだろうし
それだけにCOM対戦機能とか人数足りないときに
COMが入る機能は必須かと思うけど
さらに6月は同じくバーチャルワールドのblue marsのベータ
テストがはじまりますよ。こっちはCryEngine 2でゲーム開発
できるそうだが、いったいどの程度のものが作れるのか。
まぁ個人がCryEngine 2で遊ばせてもらえるのだからすごいけどね。
社員っぽいのが湧いてきたな
吉里吉里の話だけにしてくれ
Syntheってのを試しにやってみようと思ったんだが、まだメンテ中だよな
どういう仕様だかさっぱりわからんけど、今ローカルで作ってる吉里吉里のゲームをアップできるんかな
とりあえず試しにアップしてみようかと思ってる
流れ切ってすみません。
メッセージレイヤの属性変更がfirst.ksで出来ません。
Config.tjsで初期位置の設定はできるのですが…
制作入門のサンプル3.6.2aの『メッセージレイヤ0の属性を設定』の通りに打ち込んだのですが…タグの文法エラーが出ます。
何がいけないのでしょうか?
教えていただけると有り難いです。
まずはそのままそのタグをコピペしてみ?
文法なら単純に書き間違いかもしれんし
>>754 リファレンスあったのか。
俺のも書き直さないと動かないことがわかった……
俺のも動かん。
ボーダフォンのアプリみたいに、身分証明書のコピーをFAXしたら限定解除とか
してくれると助かるな。
あちこちに出品依頼してるらしいがこれでは……。
わざわざこれだけのために書き直すってのはさすがになぁ
公式で同梱されているpluginくらいは全部おkにしてくれんものかな
だめだ。動かねぇ……
>>759 販売もできるってことなら、確かにそれはありだよな
おまえら人柱乙であります
なんだかだめそうっすね
単純なノベルとかはいいとして、下手に作りこんであると動かなそうだな
このリファレンスどっから行けたの?
公式サイト上部の「マニュアル」>「ゲームを創る」>緑枠の「こちらのリファレンス」
チャット機能とか、変数のネットワーク共有とか、ワクワクするんだけどね。
一から作り始めるなら何か面白そうな可能性を感じる。
吉里吉里プラグインは随時審査して読み込みを許可する奴を増やして欲しいよね。
なるほど
予想通りエロと二次創作はアウツね
dirlist.dllを使いたいんだけどなあ
>>756 遅くなって申し訳ないですm(_ _)m
[position layer=message0 page=fore left=30 top=15 width=580 height=450 frame="" marginl=20 margint=40 marginr=20 marginb=40 visible=true]
本当にそのタグの文法エラーかどうかはコンソールとかで確認したの?
コンソールでも確認しました
そのタグは間違っていないと思う
が、その前のタグが間違ってるのかもな
前のタグは背景レイヤで、エラーが出たタグを消せば普通に背景が表示されます(~_~;)
そのタグは間違ってないから、問題のfirst.ksのどこかがおかしいんだよ
エスパー以外は、ファイルそのものを全部うpしないとわかんないだろうな
変なプラグイン入れたり改造とかしてるのでは
ちょっとずつ命令を消していって、原因を絞り込むのがよさげ
>>765 ネットワーク関係とか連携するなら、
win32ole.dll 使えるようにしてほしかった。
IE貼り付けて、フラッシュとか、youtube再生とか。
あと、ネットワーク関連の拡張機能、デバッグとか、どうするんだろうな。
デバッグ用限定公開とかできんのかな。
ネットワーク周りのプラグインだけ欲しい
もしもらえたとしても、これってサーバないとプラグイン単体では意味ないんじゃないのかな
>>774 まだ始めたばかりなので、改造できるレベルじゃないです(~_~;)
>>773 でもエラーがpositionタグで出てるってことはpositionタグがおかしい…んじゃないんですか?でも正しいんですよね…
うー…わからない……
そのタグが「本来は」間違っていないが間違っていることになるってことは、その前のどこかが間違ってる
そのタグにたどり着くまでの間に、そのタグがおかしくなるようなことを書いているんだろう
意図していなくてもな
>>778 前の段階でどこかおかしくて、positionタグで文法エラーが決定的になるとエラーメッセージはそこになる
大カッコや引用符がどこか抜け落ちたりしてないか。全角スペースを使ってないかなどを確認してみ
>>775 開発ツールで実行するときスタンドアローンで実行するかネットに繋げるか選択するらしい。
ネットに繋げた場合複数起動できたりネット越しのPCに接続できる。
と書いてあった。
>>781 さんくす。
はじめは、ミニゲーム系のを作ってみるか。
エロ系はダメみたいなので残念。
メイドイン俺的な使い方を期待したのにな。
でも、アマガミ系のなら、きっと…
質問。
作品中にミニゲームを入れたいのですが、そのミニゲームのジャンルがアクションなのです。
tjsである程度までなら書けるという事は分かっています。
しかし、できれば外部でC++辺りで作ったミニゲームを読ませたいなぁと思うのですが、実現は可能でしょうか?
インタプリタ型の言語では速度面で限界がありそうで・・・。
>>783 ?win32ole.dllプラグインとかでできるんじゃないかな
そんなことで悩むレベルでそもそもc++でミニゲーム作れるの?w
>>785 ミニゲームはもう組んであるので。
あとプログラミングする能力と吉里吉里使いこなす能力って違うと思いますん。
>>784 調べてみたのですが、外部exeというよりIEなどを外部から弄るようなプラグインという事で、
厳しいような印象を受けました。
皆さんは通常ミニゲームはtjsで組んでしまうんでしょうか?
>あとプログラミングする能力と吉里吉里使いこなす能力って違うと思いますん。
うーん、このへんは同意できない。
ウィンドウズプログラミングとしての流れは、CもTJSも大差ない。
>>786 窓は別になるだろうから美しく無いけど、
ミニゲームを開く、終わったら閉じて吉里吉里に戻すって実装でいいんじゃないのかなー。
tjsって普通にオブジェクト指向だしなぁ。能力という点では同じじゃね?
べつにインタプリタとコンパイラという形式が違うだけだろうに
しかし、別窓じゃなくてミニゲームを完全に取り込むというのなら、
自分でプラグインを作るしかないかもな
吉里吉里のソースにサンプルが書いてある
でも、仕様によっては吉里吉里を使わずに最初から全部組んだほうがいいかもな
読み直したら、
「プログラミングする能力と吉里吉里使いこなす能力」、か
確かにそれは違うわ
>>783 吉里吉里で Native プラグイン書けば組める
バリエーションとしては以下のいずれか。
・drawdevice プラグインを作って吉里吉里の描画系を乗っ取ってそこに自分でまぜる
・子ウインドウとして作って吉里吉里の上に領域確保して描画する
・レイヤ(実質DIBみたいなもん) に対して描画して吉里吉里の合成系にまざる
いずれも駆動には continuous ハンドラを使う。
サンプルとしては、吉里吉里公式ソースツリー中にある Irrlichtプラグイン中に
全部ある。Win32 プログラムできるなら読めばわかる。たぶん。
吉里吉里を使う場合の制約としては、完全なフルスクリーンはプラグイン上では
あつかえないこととか。これは吉里吉里本体側に手をいれない限り不可能。
あとはスレッド処理にも注意。子ウインドウ版ならメッセージループをわけれる
ので、資源管理をうまくすれば別スレッドで駆動可能だけど、吉里吉里は
原則は(サウンド系以外は)1スレッドモデルのシステム
実のところこの質問はもはやFAQで過去スレにもなんどか回答が出てる
とりあえずsyntheのダウンロード開始
syntheにゲームをアップしたユーザーもいるようですね。
>>773 positionタグにエラー出てても、実は他のタグでエラーが出てるっていうのはありえるんですか?
>>774 まだ始めたばかりなので、改造とかはしてないです(´・ω・`)
>>795 そのタグが間違っていないのなら、他のタグが間違っているのは当然のこと
最終的にエラーで停止したところはすぐわかるだろうが
てかさ、その内容でアドバイスもらうなら、first.ksファイルそのものをうpしたほうがはるかに速いぞ
てか、そんなんじゃどこが間違っているのか他の人にはわからんって
>>789 >>791 とりあえず、現在krikiri2のソース落として熟読中です。
とっかかりは得ましたので、後は自分で何とかしてみたいと思います。
ありがとうございました!
そういうのってluaとかのSDL使うんじゃないの?
>>798 意味わかってないのに発言すると恥かくで
今日で公開終わりとかだとSyntheでゲームを作る気はあんましないな
せめて本公開がいつなのか予定を出して欲しい
801 :
名前は開発中のものです。:2009/05/17(日) 15:15:32 ID:oaJf1rij
クリップ式アニメーションのやり方がわからんエラーばっかりだ
それだけではなにがわからんのかすら、わからん
803 :
名前は開発中のものです。:2009/05/17(日) 15:44:44 ID:oaJf1rij
基本的な事すらわからん
805 :
名前は開発中のものです。:2009/05/17(日) 16:05:04 ID:oaJf1rij
typoが何なのかわからん
>>805 (ちょっとした)タイプミス、入力ミスのこと。誤字、誤変換。
英語ではMinor Typographic Errorを意味する。
807 :
名前は開発中のものです。:2009/05/17(日) 16:18:41 ID:oaJf1rij
何も出なかったり画像の無い領域がどうのとかばっかりなんだよ
わからんときはファイルとかその周辺のタグそのものをうpしたほうが解決するの速いぞ
エスパー待ちするなら別だがな
809 :
名前は開発中のものです。:2009/05/17(日) 16:46:50 ID:oaJf1rij
画像の無い領域とか言われたのはclipleftやcliptopの解釈ミスだったorz
810 :
名前は開発中のものです。:2009/05/17(日) 16:52:36 ID:oaJf1rij
しかしそこを直しても一行にアニメーションしない
アニメーションさせるのに必要な動作でもあるのか?
811 :
名前は開発中のものです。:2009/05/17(日) 17:09:58 ID:oaJf1rij
なんだよアニメーションは絵とasdファイルが同じ名前じゃないといけないのか
なんでそんな大事な事教えないかなあ何処の講座も
>>808 ただのチラ裏、もしくは荒らしだったみたいですね。
無視するに限る。
そうだな。吉里吉里のリファレンスをちゃんと読んでない程度のことみたいだしな
ちょっと上で似たような話が展開されてたっぽいけど、よくわからんかったので質問
テトリスっぽいゲームをミニゲームとして実装したいんだけど、どこかに参考になりそうなの落っこちてないかな?
Kagはよくいじるんだけど、tjsはmainwindowを機能拡張目的で弄るくらいで、描画とかが分からないんだ
過去ログあさってはみたんだかどうにも‥‥
>>814 テトリスならそのものが前にスレで上がってたぞ、確か
11スレ目あたりにあったのは確認したけど、既にリンク切れてて駄目だったんだ
ちょいと質問
mapdisableタグって、layerを指定しないといけないけど、
特定レイヤではなく全layerのクリッカブルマップを無効化するいい方法って、kagタグであったりするのかな?
今はこんな感じにしてるんだけどもっといい方法あるのかな、ってふと思って
レイヤ数が200近いからいちいち指定してらんないんだよね
for(var i=0; i<kag.fore.layers.count; i++){
layers[i]のクリッカブルマップを無効化
}
818 :
名前は開発中のものです。:2009/05/17(日) 19:41:43 ID:oaJf1rij
てめえこのやろよくも
>>816 吉里吉里リファレンスの
LayerクラスとTimerクラスは読んだ?
テトリスならあれで大体できると思うけど
やっぱTJSか〜
型月のミニゲームなんかは頑張ってたけどあれもTJSなんだろうか
それともCとかでプラグイン作ってんのかな?
中のソース見たことないから断定できないけど
あれくらいならTJSでも作れると思う
まぁ可否で言えば可能な気はするな
TJSで作られた本格的なゲームって何かないかな?
SLG系なら同人で何やかやと出ているだろ
アクション系ってことか
アクションかな、SLGとかならKAGでも頑張れば出来そうな気がするし
Syntheから登録しませんかってメール来たんだけど、みんな登録しますか?
しない。
うちのゲームは多分動かないから。
しないなぁ
なんだと……
とりあえず登録だけしてみた俺……
俺もしない、というかできない。
てか、結構無差別爆撃でメール出しているのかな?
俺のところみたいな超ピコなところにも来ているぐらいだし・・・。
830 :
名前は開発中のものです。:2009/05/19(火) 01:23:29 ID:dehxgssj
これは何かの陰謀か何かかね?
昨日はじめた初心者です。よろしくお願いします。
質問なのですが、セーブ位置を任意の場所にするって出来ないのでしょうか?
解説サイトを巡っても”そんなこと出来ない”って言われてるように思えますが、しかし、「何でそんな仕様にしたんだよ」という思いになってしまいまして。
”セーブ位置を行数で管理” など、いくらでもやりようはあると思うので、もしかしたら簡単な設定でどうにかなるのではないか、という次第です。
吉里吉里とHSPは犬猿の仲だという話を聞いたんですが本当ですか?
吉里吉里っていうより、KAGの仕様だし、それ以上のことを求めるなら、
KAGのセーブロードを使わずに、tjsでセーブ・ロードの仕組み自体を自分でかかないと無理だと思うけど
>>834 一括置き換えなんてしなくても、しょっちゅう使うマクロに入れときゃいいだけだよ
ついでに補足しておくと
OUTFOCUS WIKIのそれはプラグインじゃなくて
変換ツールだな
返信ありがとうございます。
結論としては、
本来はcmを使う位置に、代わりに独自のマクロを使う
ということで行きたいと思います。
[cm]
↓
[cm2]
(
[macro name = cm2]
*|
[cm]
[endmacro]
)
.。0(……何だか問題が出そうな予感。。。)
ラベルはマクロ中に記述できません\( )/
>>841 >>838の使えばいいと思うよ。
作りはお魚に置いてあるどこでもセーブプラグインと同じものだから。
>>842 個人的には、内部での動作がよく分からないものは、なるべく避けたいのですよ(吉里吉里本体は完全に信用してますが)。
それを理解出来たとしても、それが正しいかどうかを十分なレベルまで検証しきるのも面倒ですし。
ですので、理解が楽な一括置換の方を優先したいと思います。
申し訳ないです。
何処でもセーブプラグインはセーブデータの互換性がなー
吉里吉里/KAGの強みでもあるコレを消すくらいなら、俺は一括置換するぜ
パッチ一切出さない自信なんてねえよ・・・。
途中送信しちゃったorz
>841
あたりまえだよw
そもそも、ラベルをマクロ中に記述できるようにするためのプラグインだよ
>>843 その心意気は大好きだw
まぁ、ソース中に「*|」を乱舞させたくないって以外にあんまりメリットないもんね。
ファイルを小分けして被害の拡大を防いだり、演出のほぼ全てをマクロで固めて
大抵の修正はマクロ側にいくようにとかしてる。修正で一部セーブが死んだらごめんていうつもり。
>>847 あれ? 何処でもセーブプラグインて、別シナリオファイルになら被害ないんだっけ?
; 改ページ
[macro name = page]
[p]
[call target=*page_subroutine]
[cm]
[endmacro]
@@@@@@@@@@@@@途中省略
; -- サブルーチン定義 --
*page_subroutine
*|
[return]
; -- サブルーチン定義ここまで --
ってやったらいいんじゃね? と思いました。
何かまずいところありますでしょうか……
ラベル空白はだめだろう
ラベルは重複なしのユニークにしないと
>ラベルが通し番号で管理されているため、シナリオファイルを編集して、途中でラベルの数を減らしたり増やしたりすると、栞をたどったときに元の位置に戻れなくなったり、return タグで元の位置に戻れなくなる可能性があります。
>>852 846だけど、言い方が悪かった、ゴメン
どこでもセーブプラグインも、マクロ内からラベルの入ったサブルーチンを呼び出してるよ
ただそれだけだと通過記録関連で不都合が出てくるから、不都合が出ないように中のメソッドを改造する必要がある
どこでもセーブプラグインっていうのは、マクロとサブルーチンと、
その改造するコードをセットにして、誰でも簡単に使えるようにしたものだと思えばいいよ
セーブデータの互換性保ちながらどこでもセーブできる仕様にするのって難しいよな。
互換捨てれば簡単なんだが。
>>853 把握把握
でも確かに、そのままじゃ問題ですね……。
>>854 >ただそれだけだと通過記録関連で不都合が出てくる
すいません。
この部分がよく分かりません。
もう少し勉強してきます。
>>856 ええと、例えば「次の選択肢/未読まで進む」だとか、文字表示の「一度読んだところは」とか、その辺の機能かな
セーブデータの互換性どうこうとは別の問題だけど
>>855 がんばれば互換性保てる
ラベルの行番号を変えないのが前提になるが。
難しいって書いてあるんだから頑張ればできるのは分かってんだろ。
ラベルの行番号を変えないのが前提てのは誰でも最初に思いつくもんだし。
セーブ時に「現在の位置」に関する情報を3種類持たせる。
・現在表示しているテキスト
・現在の行
・内部的に設定した、現在表示しているテキストのID
ロード時に、3つとも一致していれば問題なし。
3つのうち2つだけ一致している場合も問題なし。
どれ1つ一致していない場合は「このセーブデータは使えません」と表示して
ロードを拒否。
こういう仕様にすれば、演出の追加等で行数が変わって、なおかつユーザーが
セーブした時に表示されていたテキストの内容を修正したときだけセーブデータが
使えなくなる(それ以外の時は問題なくロードできる)。
自動で楽に互換性を維持するのはこの辺の性能が限界かと。
メッセージ履歴の
「ラインの高さ lineHeight = 26」
これってなに?
862 :
名前は開発中のものです。:2009/05/20(水) 19:32:56 ID:if59Kur5
lineHeight = フォントのサイズ(fontHeight) + 行間
どうも〜
わざわざ宣伝に来てた吉里吉里を組み込めるなんちゃらってのはどうなったの?
ログ嫁
ああ、さっそく糸冬か
ざまぁ
>>864 終わりじゃなくて、期間限定公開。
次回公開は夏前。
ゲーム制作のツールとアバターツールは今も使える。
ゲーム制作のツールとアバターツールは、win2kでも動作した。
ゲームツールの方で取得できる、
チャット付きババ抜きのソースは、読んでみると良いぞ。
またキタ('A`)
宣伝うんぬんより過剰反応過ぎて
>>868がきめぇ
吉里吉里使ってる奴的に考えりゃ、表現できる場が増えるってのに何のデメリットもないしな
スレ建ててそっちでやれば?
そういう段階でも無い、
荒らし目的でレスしてるんじゃなければスルー推奨。
まあKagParserがごっそり変わってる俺には関係ないか。
そもそもKagParserなんて使わない俺も関係なし。
って、↑のやつのreadme見てたら
(注2)
シナリオを書き換えた後、シナリオを書き換える前のセーブデータを読み込むと
既読チェックが正しく行われなくなったり、エラーが発生する場合がありますので、
シナリオを書き換えた後は、書き換える前のセーブデータを読み込まないようにしてください。
って書いてあった。おわた。
シナリオ全部完成させてから
*連番|
を一括挿入
パッチ当てるときは続きの数字から
最初は*を散らかすのに抵抗あったけど
なんだかんだで一番メンテしやすい気がしたし
書いてみると会話の区切りがわかりやすくなった気がした
>>873 KAG使わない吉里吉里の用途ってなんだ?
俺も吉里吉里は使うがKAG使えないよん
最初はKAGで組んでいたはずなのにいつのまにかほとんどtjsに書きかわっていたでござるの巻
880 :
名前は開発中のものです。:2009/05/21(木) 23:37:56 ID:oG9xodDZ
……とのことです。
>>877 ある程度のレベルになると、KAGはフレームワークとして使いづらいものである
ことが分かってくる。KAGに相当するものを自分で作った方が効率的に開発できる。
そういうものなんです。
俺は最初からKAGは眼中にはなかったけどな。
↑のような偉そうな理由ではなくて、他人のソースを読んで拡張したりする
のが嫌だというのが主な理由だけど。
俺以外にもいるはずだ。車輪の再発明が大好きな愚か者がw
確かに自分でライブラリを作る作業は楽しいなw
いや俺もKAGは原形をとどめてないがTJSでごちゃごちゃやるくらいなら他の言語なり組み込み言語使えばいいと思うんだ。
いくら再開発とはいえど流用できる所は使ってるし。
学習しやすい仕様で規模の小さいTJSという言語で書かれた資産を流用しない場合の吉里吉里の価値ってなんだ?
て聞いた方がよかったな。
「レイヤー」が答えの一つになると思う
なんかKAGオンリーの自分が恥ずかしくなるな・・・。
885 :
880:2009/05/22(金) 00:11:25 ID:9BH3OGpU
俺は
>>880で言ったとおりだな。
合理的な理由があるわけじゃなく、単にプログラマとしての適性がないんだと思う。
人が作った資産を効率的に使い回すよりも、自分ルールで1から資産を作りたい。
そういう気質。
他の言語とか組み込み言語については、頭が悪いから俺では無理ということで回避。
吉里吉里とtjsの組み合わせって、2Dゲームエンジンとしては破格の汎用性と
シンプルなアーキテクチャを兼ね備えた素晴らしいシステムだと思ってます。
その割りに吉里吉里発のゲームが少ないのはどういう事なんだろうなぁ
アクションとか皆無に近いし
小さいアプリとか作るのもわりかし便利だけど
実行ファイルがでかいので配布するのに向いてない気がする
俺の場合は、KAGを拡張してるけどな。
KAGが安定しているので(かなりのユーザに動作検証されているので)、使った方がいいと判断。
フリーズバグとかあった日には回収がしゃれにならんからな。
そのおかげでKAGはカオスなことにw
>>886 俺の周りにtjsだけで作ったアクションとかシューティングを作った人はそこそこいる。
ただ、仲間内で遊んで自己満足で終了。
吉里吉里は2Dエンジンというより(汎用性の高い)マルチメディア再生エンジンじゃないか?
レイヤはあるけど2Dエンジンとして使った場合、
スプライトとか当たり判定を自分で実装しなきゃならんのは面倒だ。
レイヤはスプライトとして貼りまくると重いしな。
レイヤの実装見直してくれんかね。
職人気質だと作り直したくなるんじゃない?
現役プログラマだと手間をかけないで再利用と言う方向に走る。
レイヤの実装がかわったら吉里吉里の価値が減るべ
いや俺が言ってるのは内部実装軽くしてくれって事だよ。
非互換性のでるような話はしてない。
あれ以上最適化するのはかなり難しいと思われ
tjsでアクションゲーム作るなら汎用言語使ってもいいような気がしないでもない.
TJSでミニゲーム作ったりはするけど
ある程度のアクション系はAS3.0で作るわ。
ES4がぱぁでAS3なみだ目だな。
fateのミニゲーム並みのものは汎用言語使いたいよね。
実はツールつくるのにすごい便利だったりする>吉里吉里
人様にみせれる状態じゃない俺俺ツールだから日の目を見ることはないだろうけど…
>>898 ・PSDをレイヤ分割して切り出してUI素材を生成したり、asdを自動生成したり
・合成済み画像を逆に差分データ化
・テキストのリストから仮素材を自動生成して保存
こんなかんじ。
画像処理用の環境として優秀だよ。
あと、COM制御できるんで、EXCELとかを扱うツールも JavaScript や VBScriptじゃなくてTJSで書いちゃう。
>・テキストのリストから仮素材を自動生成して保存
この発想はなかったわ。俺もつくろ
> ・テキストのリストから仮素材を自動生成して保存
これくれ
縦サイズ,横サイズ,ファイル名のcsvファイルから画像仮素材を生成するツールなら俺も自作して使ってるね
仮素材なんていちいち作るのめんどいし
背景表示マクロの中に指定ファイルが存在しなければ仮画像を生成するとか思いついた。
フォルダ覗けば足りない素材が感覚的に分かる。素材埋めるのが自分の役目だったらもうね……
>>904 そんなのは1000年前に通った道なわけだが。
実はそれ、初期時に、ものすげーデバッグの邪魔になる。だって間違って指定した
画像が勝手に作られて表示されてしまうんだもの。実際にそれが必要な画像かどうか
正しい画像一覧と比較する必要が出来て、なんというかほとんど意味がなかった。
結局、適切にダミー生成するツールを使った方が良いという結論に落ち着いた。
文字をずらずらっと表示して、画面下から文字が溢れたら、自動で改ページするやん?
そのときの処理を拾うことは出来ないの?
改ページ[p]の代わりに新しいマクロ作って、ページが変わるごとに何かを降らすってことやってるんだけど
自動で改ページされるとスルーされちゃうんだよね
今みてきたらMainWindow.tjsのshowPageBreakAndClear()が自動改ページされるときに呼ばれるらしいよ
そこはMessageLayer.processCh(ch)でやってるからそれいじる。
自動改行ならprocessChのreturnがtrueになるからそれを利用すればいいかと思う
改行じゃなくて改ページか
tjsは初心者なんだけど、リファレンスでも読めばなんとかなるん?
まぁとりあえず読んでくる。
”いじる”とか”利用する”とか言われても、よく分からんTT
どうせtjsは必要になるよね、きっと!
一度シナリオを最後まで終え、タイトル画面に戻ったときに枠画像が残ってしまいます。
タイトル画面ではボタンを使って各種メニューを表示しており、枠画像が出てしまうかメッセージレイヤーそのもの
が非表示になるかのどちらかしかできません。
ボタンも枠画像を使ったメッセージも同じレイヤーです。
[jump storage=first.ks]\ ←シナリオの最後です
[s]\
*start|start ←タイトル画面(first.ks)
[er]\
[startanchor]\
[loadplugin module="wuvorbis.dll"]\
[history enabled=false output=false]\
[layopt layer=message0 page=back visible=false left=30 top=425 width=740 height=160 marginl=40 margint=20 marginr=25 marginb=0 frame=枠画像]\
[rclick enabled=false]\
[position layer=message0 page=back visible=true left=0 top=0 width=800 height=640 marginl=0 margint=0 marginr=0 marginb=0 opacity=0]\
[image layer=base page=back storage=タイトル画像]\
[trans method=crossfade time=500]\
[wt]\
[locate x=20 y=360]\
[button graphic=ボタン画像 target=*メニューへ]\
〜
枠画像をリセットして起動時と同じようにボタン表示するにはどうすれば良いのでしょうか…。
いろいろ気になるところはあるけど、とりあえず
[jump storage=first.ks]\
を
[gotostart]\
で希望の動作になるかな
質問があります。
強制スキップさせる時に
kag.onSkipToNextStopMenuItemClick(kag)=1
と指定しているのですが
それよりもこうした方がいい、というやり方はありますか?
あったら教えていただきたいなー、と。
強制スキップってのを何処で使うか知らんがシステムボタンやメニューバーなら
kag.skipModeEnabledCheck = function(){
return tflags.強制スキップの許可 || ( !historyLayer.visible && inStable && !skipMode && !transCount && !tflags.スキップの不許可 );
}incontextof kag;
kag.skipToNextStopMenuItem.click() if kag.skipModeEnabledCheck();
でどうだ?
916 :
914:2009/05/23(土) 12:02:43 ID:sdiCf25Y
>>915さん
返答ありがとうございます。
ぱっと見でどこにどう書けばいいか分からなかったので
(buttonタグのexp属性のcallExtraなんたらの呼び出し先あたりかとは思いますが)
リファレンス眺めながら分かったつもりになりたいと思います
ありがとうございました。
917 :
名前は開発中のものです。:2009/05/23(土) 16:06:19 ID:lNEHUuyk
全ての吉里吉里ユーザーの目標はふひきーに結集していたりして
前景レイヤについての質問です。
この度、KAG3からKAGEX2への鞍替えを試みてみたのですが、
KAG3では動かせていたアニメーション付き立ち絵が読み込まれなくなっていました。
・Infomation
『タグ:image (void)からObjectへ型を変換できません。
Object型が要求される文脈で Object型以外の値が渡されるとこのエラーが発生します』…とありました。
なお、scenarioファイルの立ち絵アニメーションのスクリプトには、
例:[layopt layer=1 page=fore visible=true][image stopage="○○" page=fore pos=c]
[animstart layer=1 seg=1 target="△△" loop=true]
……と記述しております。
どなたかKAGEXでもこのアニメーションが使用できるようになる方法をご教授頂けませんでしょうか?
919 :
名前は開発中のものです。:2009/05/23(土) 19:04:52 ID:bJY2XX76
>>918 KAGEX2は知らんから違うかもしれんけど、
stopage → storage の誤記は関係ない?
>>919 すみません、そこは誤記です。
実際にはご指摘の通りの記述となっています。
そういうのは、再現スクリプトを添えて作者に送るって聞くのが妥当
KAGEXかあれ使うくらいなら自分で作るな。
923 :
名前は開発中のものです。:2009/05/24(日) 00:21:25 ID:pnmCsuvc
>>918 ちょっと自信ないけど、[image] と [animstart] の間に
[eval exp="kag.fore.layer1.onPaint()"]
を追加すれば直るかもしれない。
924 :
923:2009/05/24(日) 01:47:55 ID:pnmCsuvc
訂正
× [eval exp="kag.fore.layer1.onPaint()"]
○ [eval exp="kag.fore.layers[1].onPaint()"]
数字のみ入力可能で、
最大値や最小値とかも設定できるEditLayerのプラグインって
どこかで配布してないかな?
自分で作るのめんどいお・・・
そんなん作るほどでもなくね・・・
EditLayer継承して適当にサブクラス作って、onKeyPressとか必要なところをちょっとオーバーライドするだけだな…
いや割とめんどいと思ったんだけど、
数字以外の入力は弾いて、
範囲外の数字入力されたときに他レイヤーにフォーカス移ったら
値入れ替えて・・・
あ、書いてみたら簡単な気もする
面倒に感じるのはVCL使ってたせいだな
>>923 ご返答ありがとうございます。
早速記載のタグを試させて頂いたところ、
・Infomation
『タグ:image(void)から〜(以下同文)』…と出ました。
どうやらlayoptエラーからは抜け出せたようなのですが、続いて今度はimageから同じ症状が検出されたという…。;
度々の質問で申し訳ないのですが、これは同様のタグで解決できるものなのでしょうか?
kagのcallタグってどこで書き変えたらいいんだろうか
探してるんだが見逃してしまっているようで見つからない……
kag.callExtraConductorがcallタグに相当するというのはわかったんだが、
callタグとは動作が違うからcallタグそのものを書き変えたいんだ
>>931 なにをしようとしてるのか知らんが、jump とか if とかと同様、KAGParser の組み込み機能だから
書き換えようと思ってもムリ。call/return 時に付随した処理は onCall と onReturn で可能
934 :
923:2009/05/25(月) 19:29:29 ID:TWw7Q1DM
>>932 KagParserをDLL作れる言語で継承すればいいだけじゃね?
>>935 仕組みわかってないのに発言するのはやめとけ。
KAGParser の仕様ながめて、「継承」で call 機能の上書きが
可能かどうかじっくり考えてみるといい
もちろん getNextTag を含む全部のメソッドを再実装すれば可能だが、
それはもはや継承する意味がない。
そりゃC++なら継承しかできないんだから継承して全部再実装するしかないわな。
お前と継承の問題点を話す気はないよ。
何を言っているのかさっぱりわからないんだけど。
>>937 C++とか関係ないから。KAGParser の仕様を把握した上での発言なら
おまえの目はフシアナ。さもなくば、仕様もみずに適当ぶっこいてるだけ。
どっちにしてもロクなもんじゃない。
無駄に煽ってるのには何か理由があるのか?
931は俺なんだけど、もう
>>932で解決してしまったから、
正直なところ、なんでこの話題伸びてるんだろう、みたいな
もう発端はどうでもいいんだろ
ほったんほあーほあー
質問させてください
所持アイテムでイベント分岐するゲームを考えています。
数が多いのでtjsで作ろうかと思ったのですが
頭が回らず苦しんでいます。
起動時に配列をつくり
f.果物[]
アイテムが出たら、配列に順次入れていく
ルートによって入手する物が違う
(マクロで代入?)
f.果物[0]=りんご
f.果物[1]=みかん
分岐判定は
f.果物の配列に何かしらあったらその名前で分岐
f.果物を何も入手していない場合は、していない分岐
(if exp="f.果物.count==0")?
マクロ代入まではおぼろげに形がつかめそうなのですが
分岐判定をどうしていいのかが解りません
ご助言いただけましたらお願いします。
どんなんにしたいのかしらんけどArray.find()でも使えばいいんじゃね
>>944 1.アイテムが出たら、配列に順次入れていく
f.果物 = [];
f.果物.add = 'りんご';
f.果物.add = 'みかん';
↓
f.果物[0]=りんご
f.果物[1]=みかん
2.
f.果物の配列に何かしらあったらその名前で分岐
f.果物を何も入手していない場合は、していない分岐
if( f.果物.count < 1 ){
// なにも入手していない場合
kag.process('なにも入手していない場合のシナリオ.ks', '*適当なラベル' );
} else {
}
>>946追記
if( f.果物.count < 1 ){
// なにも入手していない場合
kag.process('なにも入手していない場合のシナリオ.ks', '*適当なラベル' );
} else {
//あとはここにswitchで分岐するなりifで書くなりして分岐
//分岐の仕方が明記されていなくてどう分岐したいかわからない。ここは自分で考えてくれ
}
まあ、まずは KAGの範疇で考えるこった
; 変数初期化用マクロ
[macro name=initfruit]
[eval exp="f.果物 = []"]
[endmacro]
; 果物追加用マクロ
[macro name=addfruit]
[eval exp='&"f.果物.add(\""+mp.name+"\")"']
[endmacro]
[initfruit]
[addfruit name=りんご]
; なにも拾ってない
[jump target=何もない cond='f.果物.count==0']
;りんごみかんの順に拾った
[jump target=りんごみかん cond='f.果物.count > 1 && f.果物[0]=="りんご" && f.果物[1]=="みかん"']
;みかんりんごの順に拾った
[jump target=みかんりんご cond='f.果物.count > 1 && f.果物[0]=="みかん" && f.果物[1]=="りんご"']
;どこかでメロンをひろった
[jump target=りんご cond='f.find("メロン")>=0']
; 最初にりんごを拾った
[jump target=りんご cond='f.果物[0]=="りんご"']
; 最初にみかんを拾った
[jump target=みかん cond='f.果物[0]=="みかん"']
; 以下必要なだけ順番を考えて条件列挙
[jump target=どれでもない]
tjsを書けるようになると、kagで書くほうが制限あってめんどくさく感じてしまう俺……
つーかkagっていつの間にかelseタグが実装されてるんだな。
昔else if がkagで出来なかったから200列ぐらいのifタグを書いた記憶が…
タグリファレンスに載ってないような
KAGのelse実装は結構嬉しかったな
新しいリファレンスには,
タグリファレンスの変数・TJS 操作のところに、elseとelsifが追加されているね
気がつかなかった
>>945-
>>948 ありがとうございます!
やりたい分岐は
果物を1個もっていれば、その果物専用のラベルへ
2個以上あれば選択画面をだして選択させて
分岐していく物を考えていました
f.果物の種類が多いので、持ってる物だけ要素に入れて
f.果物の要素内を種類名で検索、分岐という形です
変数を種類ごとに作り、それをifで分岐を書けばいいのですが、
種類が多いためkagだと長くなりすぎるような気がしまして
頂いたレスを参考にかんばってみます
>>954 ; 1個もってればその果物専用のラベルへ
[jump target='&"*label_"+f.果物[0]' cond='f.果物.count==1']
; 複数の場合は選択
[eval exp='tf.count=0']
*fruit_sel_loop
[link target='&"*label_"+f.果物[tf.count]'][emb exp='f.果物[tf.count]']を食べる[endlink][r]
[eval exp='tf.count++']
[jump target=*fruit_sel_loop cond='tf.count<f.果物.count']
[s]
これであとは *label_果物名 のラベルつくっとけばおk
& の使い方と、あと cond をうまく使うと、KAGでも凝った処理をすっきり書ける
もっと複雑になるようなら、tjs 判定かけつつ KAGのタグを差し込み生成するのがわかりやすい。
詳細は過去スレ。
>>955 おおお、ありがとうございます!
kagでもこんなにすっきり書けるんですね
参考にさせていただきます
tf.countの使い方が目からうろこが落ちました
tjsでforのループ文はリファレンス等で解ったのですが
それをkagでどう書くかというのが浮かばなかったので
とても勉強になりました
tjs判定の差込生成も気になるので
過去ログあさってこようと思います
ありがとうございました!
957 :
930:2009/05/27(水) 18:23:20 ID:1BYtdhr9
>>934 ご指定頂いたソースで試みたところ、かろうじて動きました!
まだ動作が少々不安定な箇所があるので、試行錯誤しながら確実な物にして行こうと思います。
長い間この問題で詰まっていただけに、本当に助かりました。
的確なアドバイス、ありがとうございました!
ちょっとスレ違いになってしまうかもしれませんが、質問させてください。
ttp://ymtkyk.sakura.ne.jp/krkr.STG/ こちらのサイトで公開されている、extNagano.dllのMorphingトランジションを使いたいのですが、
使用する頂点座標の計算方法が分かりません。
どなたかお教えいただけないでしょうか?
よろしくお願いいたします。
どのスレいっても筋違いだろ、そのサイトに質問しろよwww
>>958 同じくモーフィング使いたかったんだが、ダメだったんだよな。
トライしたのが1年以上前なので、どんなエラーだったか忘れてしまった。
三角形の座標6点は、まず自力で三角形をいくつか作って座標を出して、
それを元にexcelで、800×600画面を埋めるようにコピーして増殖させた記憶がある。
もっとスマートに出来そうなもんだけど、それしか思いつかず。
試しに動かして見たかっただけだったので、作者さんには質問せずに投げてしまったので、参考にならずにスマン。
これ以外にも吉里吉里でSTGやらアクションやらやってるところってないんかな?
962 :
958:2009/05/29(金) 18:07:47 ID:kIF/7q9A
>>959 分かりにくい書き方ですいません。
四角形(レイヤ)の中に三角形をタイルのように敷き詰め、その三角形の座標を使うのですが。
サンプルには座標が羅列されたファイルが入っていて、それを使用しているんです。
……われながらとても分かりにくい説明だと思います。
ただ、数学的な問題なので、作者様に聞くのもどうかと思いまして。
更新も長らくされていないようですし。
>>960 レイヤからはみ出さないように乱数を作成してやってみたんですが、途中で止まってしまいました。
開始は出来るのでトランジション中の問題だと思うのですが、エラーになる条件がいまいちわかりません。
>>961 横スクロールとかはあったような……。
開発環境さえあれば、もっと作りやすいと思うのですけれど。
モーフィングの頂点座標の指定って
てっきりフィーリングでやるもんだとばかり…定石な計算方法とかあるのか?
(ex.例えば顔同士なら、両方の画像に同じ数、同等に頭の天辺、目尻、顎の先、って感じで点を決める。
点を結び重ならない三角をつくり、2つの画像で対応する三角の座標を順次指定…)
モーフィング以外でも958のとこのトランジション、カッコイクテイイー
でも、重そ……と思った以前、来年あたり挑戦してみたいのー
>>958のはdllのソースがないとわからん
cppどこかにあるの?
ないなら作った本人以外は詳細な仕様はわからんよ。試行錯誤するしかない
これは制作者に聞くべき
extNagano.txtに
befor:
変形前の三角形を、整数の配列で指定します。
三角形一つにつき6つの整数で指定します。n個の三角形にたいして 6n 個の整数を使用します。
[ ax1, ay1, ax2, ay2, ax3, ay3, bx1, by1, bx2...
after:
変形後の三角形を、整数の配列で指定します
三角形一つにつき6つの整数で指定します。n個の三角形にたいして 6n 個の整数を使用します。
[ Ax1, Ay1, Ax2, Ay2, Ax3, Ay3, Bx1, By1, Bx2...
966 :
958:2009/05/29(金) 23:55:19 ID:kIF/7q9A
ごった煮プラグインの中に、triangulateという三角形分割関数があるのを発見。
頂点の配列をこれに投げれば、なんだかできそうな気がしてきました。
久々に公式日記見たら、
吉里吉里3はお蔵入りするんじゃないかと思えてきたw
2010年中に出来るかなあ・・・
>2010年中に出来るかなあ・・・
一瞬次期C++の話かと思った。Boostでいいよもう。
前景レイヤーの位置調整ってleftとtopしかないんですか?
現在の表示状態がバストアップ状態なんですが、アングル?引いて全身表示させたりズームさせたりしたいんですが、サイズ別の立ち絵用意してやるしかないですかね?
>>969 ズームプラグインが吉里吉里に梱包されてるだろ?
iscript内で
var button = new SystemButtonLayer(
kag,
kag.fore.base,
function(){System.inform("ボタンが押されました");});
button.loadImages("fgimage/kagpp_btn_continue");
button.setPos(100,100);
//↑これはOKなんだけど
class Bt{
function show(kag)
{
var button = new SystemButtonLayer(
kag,
kag.fore.base,
function(){System.inform("ボタンが押されました");});
// ボタンに画像を設定します
button.loadImages("fgimage/kagpp_btn_continue");
button.setPos(100,100);
}
}
var b = new Bt();
b.show(kag);
//↑これだと何も表示されないのは何故?
すぐにshow関数抜けてbuttonが見えなくなるから
>>975 なるほど、そういう仕組みなのか…
ありがとう
show内のbutton変数を、ローカルからクラスメンバにするか、
返値で返して呼び出し先のks内で受け取ってやれば生存し続けるね。
ググる言葉が悪いのかどうしてもわからんので質問させてくれ。
セーブ&ロード画面のカスタマイズについてなんだけど
デフォの半透明の黒っぽいサムネ付きのあの画面の
配置はそのままでデザイン(色とか透明度とか)だけ変えたいんだが
どこをいじれば良いんだろうか?
よもやデフォを元に1から作らねばならんのだろうか?
説明下手ですまんが誰か助けてくれ。
krkrにそんなセーブロード画面って、デフォでついてたっけ?
>>979 すまん、デフォではついてないな。
お前のレスで、今、確認してみたら勘違いしていた事に気付いた。
お前のおかげで解決した。
すまん、ありがとう。
そろそろ次スレか?
おさかな定食復活しないなあ
改装中に閉鎖状態にするのってなんの意味があるんだろう
オンライン上で一個一個html書いてるのならわかるけど
たいていローカルで全部用意してFTPで一気に上書きだと思うんだが
早く復活しないかなー
Releaserで実行ファイルへ変換する際、アイコンも自作のものに変えたいのですが反映されません。
32×32、拡張子はicoで参照では正しく表示されているのですが…何か別の設定が必要なのでしょうか?
吉里吉里公式の掲示板、RSSの更新っていうか配信っていうか、止まってない?
3月中旬で止まってる
すみません、質問失礼します。
吉里吉里でターン数などの変数をセーブ情報として持たせるには、
どんなうまい方法があるでしょうか?
ラベル内に変数を使うような方法を考えたのですが、
ぐぐってもぐぐっても出てきません。
どなたはお答えいただけると幸いです。
ラベル内に変数を使うってこういうこと?
*test|&'テスト'+f.turn
>>986は何をやりたいのか
分かりやすく説明するところから
始めないといけないと思うんだ
エスパーの俺が察するに
>>986は、独自のセーブロードモードを作っており
サムネイル
セーブポイント名
セーブ時間のほかに
ターン数などの、SLGまたはRPGの時に使用した変数等を
情報として、セーブデータ毎に表示したいのでは?
解決方法としては
セーブする直前に
sf.s_data[f.セーブ番号][f.情報種類番号] = 保存する追加情報
のように、システム変数で追加セーブ情報を保存し
セーブロードの、サムネイルなどの情報表示の個所に
sf.s_data[f.セーブ番号][f.情報種類番号]
を、参照してデータを並べておけば
このセーブデータには、これが入っていると、わかるようになる
>>987 それを求めていました!こんなにもシンプルだったのですね!
絶対に自分一人では解決できませんでした。ありがとうございました。
>>988 読み返してみたら、自分でも分かりにくくて、
>>987と
>>989はエスパーだと思いました。
すみません、以降気をつけます。
>>989 その方法なら、諦めかけていたもう一つ上のセーブが出来るかもしれませんね!
読心ありがとうございます。教えていただいた情報を元に、頑張ってみます。
皆さんありがとうございました!
質問です
var func = [], i = 10;
while(i--)
func[i] = function {
return i;
};
dm( func[4]() + ',' + func[5]() );
上記のようなスクリプトで
func[4]()なら4を、func[5]()なら5を返すようにしたい時、
return i; の部分はどう書くのでしょうか?
\使うのだと思うのですが return '\"' + i + '\"'; では駄目でした…
>>991 吉里吉里には JavaScript のような変数を自前で巻き込むクロージャは無い。
自前でコンテキストを作ってやれば似たことはできる。
てっとりばやくその場処理したければ辞書を使う
var func = [], i = 10;
while(i--)
func[i] = function { return i; } incontextof %[i:i];
Debug.message( func[4]() + ',' + func[5]() );
ただし、辞書のコンテキストはグローバルを自動的に参照してくれないので明示的な指定が必要になる。
× func[i] = function { Debug.message(i); } incontextof %[i:i]
○ func[i] = function { global.Debug.message(i); } incontextof %[i:i]
それから、存在しない変数を参照しようとしても常に void が帰ってくるためエラーにならない。
func[i] = function { return a; } incontextof %[i:i] // a は存在してないけど void が帰るのでエラーにならない
この挙動が嫌な場合はクラスを専用につくって対応すればいい
class Func { var i; function Func(i) { this.i = i; } function func() { return i;} };
func[i] = (new Func(i)).func;
>>992 ありがとうございます、お陰で解決しました。
for文でコンテキストに辞書を使うなんて目から鱗です
rclickタグのように、linkタグをjumpかcallかの選択式にしようかと思ってるのですが、どこをどう弄ればいいんでしょう?
systemフォルダーのtjsファイル内を色々検索してみたものの、linkタグに関係してそうな所が点々とあってよくわからない…(@△@;
文章表示中に押せるメニューボタン用で、戻ったらボタン押した所から再開できるように…と思ったのですが
意味がよく分からんが変数とか状態を巻き戻す必要がある気がするんだが。
>>996 うまくいきました。ありがとー
callextraconductorのことだったのか…別用途のものだと思ってました(ーー;
でも文章表示中に押せるメニューボタン用なら、ちゃんとしたシステムボタンプラグイン(systembutton.ks)
が吉里吉里に梱包されてるから、それ使うのがいいと思うよ
使い方が分からなければ、おさかな定食のもお薦め
それと、
>>996氏の参照してくれたページもそうだけど、
TJSだけでKAGの方のリファレンスあんまり読んでないように思えるから、ちゃんと読んどいたほうがいいよ
じゃないと簡単な事なのに
>>994みたいな斜め上の発想になっちゃうから
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。