ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
吉里吉里スレ過去ログ倉庫
ttp://bbs.bokunatu.com/krkr/ 吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/ 吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/ ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。
必要に応じて
>>3-5 の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ ■吉里吉里/KAG/TJS雑談質問スレ■その24
http://toro.2ch.net/test/read.cgi/gamedev/1307083588/
>>1 (・ω・`)乙 これは乙じゃなくてポニーテールなんだからね!
>>6 W.Dee先生がそこはツインテールだろ! と怒っているようです
乙(・ω・`)乙 これは乙じゃなくてツインテールなんだからね!
windows7にして不都合でた製作者いる? いないならそろそろPC変えようかな。
7の64bitでもバリバリ動く
その答えが聞きたかった!
動く動く
うごきますん
環境依存が少ないのが吉里吉里の良さの1つ
前スレで上がってたスレ専用うpろだ張っとく。
ttp://upload.bokunatu.com/krkr/ > 画像サムネイルはアップ時とは別のタイミングで生成してますのですぐには反映されません。
> 詳細にはvew.cgi表示時にサムネイル生成し、その後何か新しいファイルがうpされた時にindex.htmlなどに反映させています。
> 害は無いので気が向いた時にでも手を入れたいと思います。
> 画面下のNoの所に「krkr」keyに「dee」と入れてdelを押すと管理モードに移行します、
> スレ住人皆で管理する事とさせてください。
> 無いとは思いますがやばい動画とかうpされたときはご協力をお願いします。
> また、説明文で書いておくべき事があれば指摘お願いします。
> その他、何かあったらスレに書いて頂ければ対応します。
16 :
名前は開発中のものです。 :2011/12/21(水) 11:35:58.35 ID:Fphm7Gcu
>>16 わざわざ晒さんでもいいよ
実際に手を動かして制作やってない人間からしたらそんな認識だろうし、
いちいち訂正しててもきりがない
一方、Deeたんは晒したw
>>18 気をつけろよ
あの人のTL読んでると洗脳されるぞ(何かに)
メカ触手はまだ完成しないのかなあ
実際のところは、typemoon はいつも独自エンジン相当のものを組んでるよね
吉里吉里3の作業工程、前よりちょっとだけ遠大になってた > 吉里吉里3の開発を手伝ってくれるツインテニーソ娘を捕獲するための > 触手を作るための材料を切るためのレーザー加工機を設置するための準備で > 消臭用のオゾン発生装置を作るための回路の高圧電源用のトランスを巻いてるところなんです
22 :
名前は開発中のものです。 :2011/12/21(水) 17:36:57.98 ID:OFsSVqaq
>>20 吉里吉里にはKAGっていう叩き台がついているって認識なのかもw
それもなんか頓珍漢なような KAGどうこうはあんま関係ないだろ
う、うん いかがなものかと
AAがついてないが例のAAが自動補完される不思議
!,-/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ, 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 ~ がまだ出てないとか・・・
画像ファイル名とか日本語でも使えるみたいですが 日本語だと何か問題ありますか? サンプルや解説本見ても英数字以外見当たらない…。
問題ないよ。
関係ないけどマクロに日本語を使えるのには感動した。 @改ページ とかで可読性うpがはかどる
助かりました。ありがとう! マクロもホント助かってます。 日本語ってすごく楽ちん。
kagexのKAGEnvCharacterEX.tjsで画像表示する方法がさっぱりだ。 心が折れそう。
envに全部必要なデータ用意しろ、キャラ名書け、いたってシンプルだ。 サンプル読んだだけで仕組み理解できたけど俺だけ??
プログラムと言わないまでも、直書きのHTMLとかExcelの関数とか使った経験がある奴と そうでない奴で感覚はだいぶ違うとは思う
35 :
32 :2011/12/23(金) 16:22:11.53 ID:jVYg8ejh
>>33 え、目パチのサンプルあるの? まじで?
探してくる
目パチ口パチよりもっとまほよの吉里吉里について話がききたいんですが。
ていうかKAGEXのリファレンス充実させてくれ 正直どう扱えばいいのかさっぱり分からん
あいかわらずW.Deeの気持ち悪さは健在で安心した さっさと3の作業に戻れ
お前が作業すればいい
イヴの日までエロゲ製作とか死にたくなるな
幸せじゃないか
二次元の彼女を作っているのだから問題ない。彼女を作るという意味が全然違うが。
43 :
名前は開発中のものです。 :2011/12/24(土) 15:54:18.32 ID:Y38sJFeo
1日に何回その人のことが頭に浮かぶかで思いの深さが計れるそうな。 ギャルゲ作る人は見ようによっては超越者だ。
サンプル見つからなかったけど自力でなんとかなった。 KAGEX使ってる人と何人か友達になりたいわ・・・。
>>30 可読性は上がるかもしれないけどスクリプト自体アルファベット主体だから
変換とか面倒で結局アルファベットで打つ方が早いわ
rとかlとか一目見て分かる程度には覚えちゃってるし
日本語入力とスクリプトの切り替えがめんどいんだよね @とか=を全角で打ち込んでいって、高速で半角に置換するバッチとか活用して 組んでいくなんていうのも面白いかも
日本語タグもエディタのマクロとか補完で入力するならアリだと思うよ
補完とかするのは日本語だろうがアルファベットだろうが変わらんだろ 直打ちは効率悪すぎ
migemo補完ぽいのを想像して言ってみたけどそういうのはあんまないかすまん
日本語も入力するのが大前提のKagのシナリオだと入力切り替えは気にならないな 英語だと宣言するときにスペル間違ってないか調べるのが面倒くさいw KKDEがマクロも補完してくれて良かったなあ f. tf. sf.の変数も入力補完してくれればもっと楽だった ctrl+@やctrl+[で@や[や]が入力できれば全角入力のままタグ打てるのにと思ったが それはAutoHotKeyか何か常駐させればエディタでサポートしなくてもできるか
ところでKKDE2のバージョンアップはだな
ブボボ(`;ω;´)モワッ
質問させてください。
レイヤの現在の画像使用状況を確認するため、各レイヤに読み込まれている画像名を取得するスクリプトを組んでいます。
スクリプト→
ttp://nullpo.vip2ch.com/ga8514.txt このスクリプトを実行すると、画像を読み込んでいないレイヤについて適切な処理ができませんでした。
画像が無いレイヤーの.Anim_loadParams.storageがvoidを返しているようだったのでifで回避しようとしましたがうまくいきません。
もしかして.Anim_loadParams.storageが返してるのは実はvoidではないのかも知れないとは思ったのですが、
じゃあvoidじゃないエラーって何なんだろうかと考え込んでしまう始末
エラーログです→
ttp://nullpo.vip2ch.com/ga8515.txt この件について、皆様のお知恵を拝借させていただければ幸いです。
そのエラーは、void なものを辞書ないしオブジェクトとしてメンバ参照しようとすると出るエラー。 つまり、Anim_loadParams が void だから出てる。 Anim_loadParams はロード時につくられてるので、何もロードされてない状態だと void のままなので、まずそれの判定が必要
>>55 早速のレスをありがとうございます!
アドバイスの通り、6行目if文の条件を(kag.fore.layers[i].Anim_loadParams === void)に変更したらうまく動きました。
とは言っても、まだメンバ参照がどういうものか解りかねてるところなので、もう少し勉強してきたいと思います。
本当にありがとうございました!
今年こそ文字関係の神プラグインが山ほどでるとイイな
今年こそKAGEXのリファレンスが整うといいな
今年も残り3日となりましたね
お前らこんな時間に暇なんだな
学生は冬休み
kag.clickCountってボタン上のクリックはカウントされないみたいだけど取得する方法ないかな?
ボタンイベント後に++kag.clickCountすればいいじゃない
質問させてください。 フリーセーブモードを使っているのですが、 ボタンタグにターゲットを指定し、 そのラベル先でkag.onRestoreMenuClick()を使ってロードダイアログを呼び出しています。 この時、ボタンを左クリックした時だけ、ダイアログからデータをロードした後に一度謎のクリックイベントが発生してしまいます。 ボタンをキーボードで選択してEnterkeyを押した時には問題なくロードが行われます。 何が原因なのでしょうか? 知っている方がいらっしゃれば、教えてくださると幸いです。
65 :
名前は開発中のものです。 :2012/01/02(月) 18:09:40.17 ID:OQTTQ/WG
それだけの情報で何を助けろというのか 使わなきゃいいだろう
67 :
名前は開発中のものです。 :2012/01/02(月) 20:43:30.82 ID:kK6FKdeg
質問 魚のアイコンが変換されません。 krkrconfからゲームのアイコンを変換したのですが、エクスプローラーで見た時 中アイコン以上の大きさで表示すると魚のまま表示されてしまいます。それ以下の大きさでは 問題ないのですが・・・ さんざん調べたのですが原因がわかりません。どうか教えてください。 ちなみにエクスプローラーはvistaです。
どう使えないのか詳しく… ちなみに確かそのプラグイン、xp3の中にまとめてしまったらエラーになると思う それを回避するにはkrkr.exeと同じフォルダにlayerExImage.dllを配置する必要があるよ 知らんけど
70 :
名前は開発中のものです。 :2012/01/02(月) 21:00:30.10 ID:OQTTQ/WG
>>66 疲れてた、ごめん
>>68 サンクス
解決しました。
と思ったら今度はなにも効果が現れない
@macro name=noise
@eval exp="kag.getLayerFromElm(mp).noise(+mp.level)"
@endmacro
どうやって呼び出せばいいかわからない。
@noise level=200
これでやってみたけど、
kag.getLayerFromElm(mp).noise(+mp.level)
って表示されるだけだし・・・
なんども質問すいません
72 :
名前は開発中のものです。 :2012/01/02(月) 22:44:44.91 ID:OQTTQ/WG
@noise layer=base fore level=200
layer…対象のレイヤ(base/0,1,2…)。指定必須 ←おk
page…表画面か裏画面かを指定する(fore/back)。省略時fore ←おk
level…ノイズレベル(0:なし〜255:最大)。指定必須 ←おk
でもできない・・・
>>71 のいうとおり寝たほうがいいかもしれん
あれじゃね? startup.tjsで呼び出してないんじゃね? シラネ
>>72 65のサイトのマクロをコピペしたんであれば
「@eval」の前にあるスペースをダメモトで削除してみるとか
76 :
名前は開発中のものです。 :2012/01/03(火) 09:08:00.46 ID:j/aO3r8z
72です 多分問題はパソコンの方だった 朝起きてPCつけてもう一回やったらできた お騒がせしてすいませんでした アドバイスくれた方感謝です
それは単に吉里吉里を再起動してなかっただけなのでは
78 :
名前は開発中のものです。 :2012/01/03(火) 11:01:54.72 ID:j/aO3r8z
>>77 再起動を初めて知った
ほんとすいませんした
吉里吉里の解説本っていくつも出てますが どの本がお勧め・・というか、それぞれの本ごとにどんな違い・特徴があるのでしょうか? 複数買って読み比べたことある人っていましたら感想聞いてみたいです。
個人的感想だけど ・吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! 本家作の基本。どのフォルダを開くか、から解説されてるから超初心者向け 順番に実践すればKAGで基本的なゲームが作れる。この本でTJSを理解するのは無理だった サンプルの中身が見れるので、スクリプトの勉強になった ・萌えるゲーム制作 吉里吉里/KAGで作る美少女ゲーム KAGのマニュアル本という印象。紙媒体でKAGのタグを確認したいときに便利 フリーソフトの紹介やゲームの構成の考え方が参考になった 全体的に上記の本があれば不要かも ・同人ゲーム制作ガイドブック応用編―「吉里吉里/KAG」で乙女ゲーム・BLゲームを作成する 実際に一本のゲームを吉里吉里で制作する過程(シナリオ・キャラデザイン・ゲームの構成・素材の作り方など)が詳細に語られている 内容が具体的で、読み物として面白かった ※「吉里吉里/KAG」で乙女ゲーム・BLゲームを作成する 同人ゲーム制作ガイドブック基礎編 こちらは未読 ・吉里吉里/KAGノベルゲーム制作入門 KAGの使い方がメイン。KAGで使う機会があるTJS(配列・分岐など)の解説もある 右クリック画面やシステム画面などのサンプルも多い。全体的に分かりやすい ・あどばんすど吉里吉里/TJSノベルゲーム開発ガイド 上記のTJSメインバージョン。紙媒体でTJSの初心者解説がほしい場合はこれがいい 下の二冊がおすすめか まあ自分の目でみて確認するのが一番いいとおもうが
このスレにもステマの波が押し寄せてきたか
こういうの駄目だったのか すまなかった
いや、全然問題ない。旬のネタだからスルーしとけ>ステマ
本のお勧め聞かれて今出てる本全部列挙してるのに ステマとかネタでも面白くねーよw
流行りの言葉を使いたいだけなんだ 許してあげて
スイーツ()ですねわかります
ステマってのは 名字に口が付く姓で口をぐちと読むのは 実は井口と野口、山口、この三つしかない まめちしきな みたいなもんだろ
魔法使いの夜体験版って吉里吉里使いのみなさんにとっては どれ位のレベルなんですか? あの程度楽勝wなの?
よくも悪くもありゃ吉里吉里の標準から離れすぎてるから 「吉里吉里使いのみなさんは〜」とかで語れないよ 「全部最初っから作ってもいいんだけど、吉里吉里を 流用したほうが効率よさそうだからそうするわ〜」とか 言えるレベルの人の作品だな
つーかDeeさんと直にやり取りして機能取って付けてやってるレベルだから あそこはもう特別枠
なんと… 返答ありがとうございます
あー、発売されたらまた「まほよのようなのが作りたいんですが!」って奴が押し寄せてくるんだろうな Fateの時のように 演出面がすごく強化されてたから、ああいうのがワンタッチでできると思い込んでそうだ
月の公式HPとかに吉里吉里※特注とかかいとけばいんじゃね?
個人的にゆずソフトぐらいのレベルのがいつか作れたらいいなと思ってる
特注というか魔改造だな
高速なブラートランジションをどなたかご存知ないでしょうか。 extNagano.dllのfadeblurトランジションは、出だしが遅かったり カクカクしたりして1024x768全画面のトランジションには 向いていないので、もっと高速なのがないか探しています。 吉里吉里のソースコードリポジトリは探してみましたが、 そういうのは無いようです。
初めて吉里吉里使うから今からドキドキしてる 書籍も買おうと思うんだけど ズブの素人だから初心者向けのものが欲しいんだ オススメの初心者向けの本ってある?
すてま
100 :
97 :2012/01/10(火) 03:16:33.36 ID:IkNOrMVR
ありがとう 初心者で検索して出なかったからないと思ったんだ けどなんだかんだ言いながらきちんと教えてくれるとは さてはいい奴だな
excelで演出つけて、csvではき出して吉里吉里に食わせれば動くと楽なんだけどな 音声に合わせた非同期アクションをどうにかできればいいんだけど
質問です 画面上にもう一つ画面xを作り、スクロールバーを取り付けてその画面xの範囲のみで 上下にスライドさせるような事が出来るプラグインをご存知ないでしょうか? 中の画面にはメッセージレイヤやボタンが置けることが望ましいです また、プラグインが無かったとして 例えば、ゲーム中で携帯を画面横に表示したりする時に 携帯の画面の中に納まらない量のリンクを表示させたりする為に スクロールバー等を用いない方法があれば、それも是非教えて頂きたいです どうかよろしくお願いします 蛇足 fate/staynightの武器紹介のモードで似た様な事がされていた気がするのですが、あんな感じを想像しています
103 :
名前は開発中のものです。 :2012/01/13(金) 06:31:28.23 ID:GC78Qr3a
>>102 プラグインは知らない。
アプローチは二通りあると思う。
表示範囲の大きさの親レイヤに画面xを子レイヤとして表示して親レイヤに配置したスライダで操作する。
子は親の表示範囲外は隠れるから目的の見え方をするはず。
もう一つは画面xのLayer.top、Layer.clipTop、Layer.clipHeightを操作する方法。
どちらも表示する全ての内容を描写した上で、必要なとこだけを見せる方式。量が膨大ならそれだけメモリとか消費する。
後者は試した事が無いのでちゃんと動くかわかんないけど、KAGでレイヤを作って操作できるので敷居は低くなるはず。
>>103 返信有難う御座います
後者の方法を試してみようとしているのですが
メッセージレイヤにclipは設定できるのでしょうか?
KAGではimageタグにしかclip系の属性は無い様なので行き詰っています
それともLayerクラスのメソッドではメッセージレイヤも指定出来るのでしょうか
tjsについては全く知らないレベルの初心者で
メソッドを呼び出した後、何処で対象のレイヤを指定すれば良いのかも分かりません
もし宜しければそのあたりを細かく教えて頂けると嬉しいです
自分でもリファレンス読んできます
>>96 吉里吉里 高速 ブラー トランジション でぐぐれ
>>104 TJSを全く知らない人は厳しい。
>>102 スクロールバーにこだわらないなら
タブ切り替えとか、ページ送りボタンとかでもいいんじゃないかな
携帯みたいな画面を作りたいんだったら
それこそ実際の携帯電話やスマートフォンのUIやキー配置を参考にして
画面上で再現してみるのも有りかと思う
なんかツイートが日を増すごとにキモくなっててワロタ フォロー切るのもなんか癪なので如何ともしがたい
誰のことかちゃんと書かないとわからんがな いやわかるんだけどさ
もはや、あれで平常運行だろあれはもう
某陰核との絡みが特にキモい あれもプラグイン作者らしいし、どうして吉里吉里界隈は変態ばかりなのか
HENTAI GAME用アプリだからな
フリーでこんな規模のADVエンジン開発&公開するような人はどっかおかしいと思うw そういやNスクの人もツイッター中毒っぽいしな
吉里吉里は知名度と普及率から見て ツールとか外部のそういうのが凄い寂しい気がする IDEとか開発止まったのしか無いし・・・
キモさが増していくとともに開発が進むというシステムなら受け入れられる
プレイヤーにフォルダ指定ダイアログを表示して、任意のパスを取得したいんですが そういうプラグインとかありますか? krdevui.dllで出来ないかと思ったんですが、関数とかが見つからなくてどう使えばいいか
吉里吉里で動画の再生しようとしたら、 krmovie.dll/krflash.dllが異常 か対応していないバージョンです と表示されるんだけど krmovie.dllが壊れているのかもと思いダウンロードし直したけど無駄だった 動画はwmvで、windows live movie メーカーでエンコードしたもの wmvをちゃんと再生できている人いる? Windows7 64bitで
>>116 krkr.exe とあわせて更新したか?
118 :
116 :2012/01/17(火) 17:11:56.06 ID:dENIer6T
できた……。なんつー不注意。 117>> 冷静な指摘ありがとう。
や、エラーメッセージの通りだし
,,从.ノ巛ミ 彡ミ彡)ミ彡ミ彡ミ彡)ミ彡)''"
人ノ゙ ⌒ヽ 彡ミ彡)ミ彡)ミ彡)'
ノ) ,,..、;;:〜''"゙゙
>>120 ミ彡ミ彡)ミ彡,,)
川ノノノノノ /ノ ,,..、;;:〜-:''"゙⌒゙ (::;ω;´) 彡 ,, ⌒ヽ ミ彡"
川`・ω・)' ./ ::::゙:゙ :::::::::: ) '"゙ ミ彡)彡''"
( -、 ~⌒`つ ``゙⌒`゙"''〜-、:;;,_ :::::-u´ ) 彡,,ノ彡〜''"
゙⌒`゙"''〜-、,, ,,彡
>>120 間違った。こっちだ。
つStorages.selectFile
>>123 それはフォルダは選択できない
フォルダ選択なら fstat.dll で Storages.selectDirectory
そうだね、ごめんね 半年ROMってます・・・
>>124 ありがとうございます、フォルダのパスを取得できました
本体とセットで同梱されてるdllですよね、随分ドキュメントが簡素というか・・・
気づけませんでした
ありがとうございます、これからはそっちの方もチェックするようにしてみます
>patch131.xp3 をセーブデータフォルダへコピーする SecuROMのせい? > 2012年 1月20日: Ver.1.3.1パッチを公開しました。. > > 長らくお待たせしてしまい、大変申し訳ありません。 > 現在ダウンロード販売を行っております"Ver.1.3 Fate"を"Ver.1.3.1 Fate"にバージョンアップする > パッチの公開を開始いたしました。 ----------------------------------------------------------------- > ○パッチ適用手順 > 1. ダウンロードしたファイルを、OSの機能もしくは各種ソフトを使用して展開する > > このファイルはZIP圧縮されていますので、各種の方法で展開してください。 > 展開すると、下記のファイルが現れます。 > FateSaber.cf > patch131.xp3 > readme.txt > エンジン設定.exe > > 2. エンジン設定.exe と FateSaber.cf を、インストールフォルダへ上書きコピーする > > 通常、インストールフォルダは > C:\Programe Files\Fate/stay_night[Realta_Nua]_-Fate- > となっています。 > > 3. patch131.xp3 をセーブデータフォルダへコピーする > > セーブデータフォルダは > マイドキュメント\faterealtanua_savedata > となっております。
吉里吉里使ったゲームの挿絵を担当しているんですけど、 1枚の立ち絵で複数の大きさ(遠くにキャラがいたり近くにキャラがいたり)がある場合って 元々の素材の大きさをそれぞれ作るべきなのか、システム側で縮小処理をかけるべきなのか どちらなのでしょうか? 描き手からしてみると一番大きいので作ってあとはシステム側で縮小かければいいんじゃないの? と思うのですが、縮小処理って重かったり何かデメリットがあるのでしょうか?
KAGEXではデフォルトで同期設定らしいですが、これをデフォで非同期にするにはどうしたらいいんでしょうか?(立ち絵のみに適用したいのですが……) envinitに記述しても効果がなかったもので
絵担当なら、畑違いの事に嘴を挟まず黙って手を動かせ
>>130 つか絵描きなら安易に拡大縮小したときの描線のちぐはぐさとか
補完でエイリアスかかってボンヤリみたいな弊害とかは御存知でしょう
大小両方の立ち絵を作るのがオススメ
どーせ大中小あれば十分以上に事足りるしな 立ち絵がリアルタイムで拡縮する演出とかあったら 多分安っぽくてキモい
>>130 縮小処理はきれいにしようとするととても重い処理です
吉里吉里だと通常の描画処理だと 50% 以下の縮小は非常にジャギがめだちます
というわけで一般的には立ち絵素材は最低でも大小2種以上は準備しておくものです
本来的には絵師の領分ではなく、きれいに縮小できるアルゴリズムで一括縮小するようなツールを準備するのが一番です
処理済みの素材を用意するか、ゲームエンジンでリアルタイム処理するかは、常にある選択肢だけど 容量に制限が無い場合は、時間をかけて処理した素材を別に用意した方がクオリティが高い 元絵を適当に縮小した素材を用意するぐらいなら一緒だろうけど
星空のメモリアは酷かったなぁ 元のCGは多分1600x1200ぐらいで描かれてるんだけど 基本縮小された状態で表示されてたから常にジャギってんの メーカーはなんとかシステムとかって売りにしてたけど 拡大縮小が滑らかなだけであって画質は悪くなってる
質問です。 栞名って改行できないんでしょうか? 過去ログの、セーブ時のメッセージウインドウの一番上の行の先頭10文字を表示するものがとても使いやすく、栞名+シナリオで表示しています。 ただ、栞名が長すぎるとシナリオが入らなくなってしまう場合があるので、 栞名(改行)シナリオとして表示したいのです。 よろしくお願いします。
できません
デリミタなり入れて、表示するときに改行させればいいんじゃない?
SLG作ってるんだけど、たまにシステム変数やセーブデータが吹っ飛ぶって報告もらうんだけど、何か対処法ってあるのかな というか、システム変数ファイルが吹っ飛ぶのはまだ分かるけど、bmpで個別に保存させてるセーブデータが吹っ飛ぶって何でだろう -zで圧縮はしてある
>>142 データが吹っ飛ぶって報告が同一人物からのものならその人の環境が悪いのかもしれん
別の所から何件も報告されてるなら知らん
144 :
142 :2012/01/22(日) 16:59:26.54 ID:2d2SGEWl
>>143 ほぼ間違いなく複数人 二桁いってるかも
直接言われた訳じゃないのも含むんで、詳しい状況を聞いていないケースもある
自分が起きたことないから(他の吉里吉里ゲームでも)、どうにも対処の仕方がわからん
ファイルを出来るだけ軽くしたり、バックアップ取るようにはしてるんだけど
セーブフォルダの場所によっては、OSのUACの設定を変えると データが飛んだように見えることがあるよ
locateタグのデフォルトの位置ってどこで指定するんでしょうか? [locate x=0 y=0]とやったのに画面右下近くに画像が表示されるのですが・・・ Configにあるそれに関わりそうな設定は以下の通りにしました。 ;marginL= 0; // 左余白 ;marginT= 0; // 上余白 ;marginR = 0; // 右余白 ;marginB = 0; // 下余白 ;ml = 0; // 左端位置 ;mt = 0; // 上端位置 ;mw = 800; // 幅 ;mh = 133; // 高さ 他にも何か指定する所ありますか?
147 :
名前は開発中のものです。 :2012/01/22(日) 21:21:58.86 ID:W6jKNL9g
メッセージレイヤの座標いじってみたらば?
>>147 返信ありがとうございます。
グラフィカルボタンがメッセージレイヤの上じゃないと描写できないということに
今気が付きました。
無事直すことが出来ました。ありがとうございました。
セーブデータがおかしかったのでsavedataフォルダ内を全削除したのですが これだとまだ栞のデータがどこかに残っているのでしょうか? getBookMarkDate関数を使うと前の情報を取ってきてしまっているようなのですが・・・。
すみません、一度吉里吉里を落として再起動したら直りました。 申し訳ありませんでした。
初歩的なことで申し訳ないのですが、 セーブラベルを設定しても別ファイルなどにjumpやnextなどで飛ぶと ラベルの引継ぎが行われないのですが、引き継がせるにはどこを変更すればいいのでしょうか?
ラベル名ではなくて見出し名でしたね……
>>151 東京から大阪に引っ越した人が、東京での住所を持っていくことはできねーべ
ジャンプ元と先で同じ見出し名をつければ、続いている様には見えるけれども
「現在は何々のルート」などとやりたければ、ゲーム変数を用意して随時記録してやればいいのでは
画像表示版のセーブロード画面を使っている人に質問です。 セーブ画面とロード画面で背景画像を変えたいのですが変更するにはどうしたらいいでしょうか?
>>154 質問の意味がよくわからない。
画像表示板が何かも分からないし(サムネイルを表示する方式のセーブ画面?)
セーブとロードで背景を変えたいと言われても、
ならば表示する画像を変えればいい、としか言えない
[image]タグ使って出来ない事なのか?
何にせよもう少し詳しく書いて欲しい
[eval exp="sf.hogehoge=function1()"] などで定義された関数を変数にいれ [eval exp="&sf.hogehoge"] を実行するとfunction1()が実行されるなどはできないのでしょうか?
Cでいう関数ポインタ機能はないんじゃないの
TJS2 にはクロージャがあるからできる。 関数含めオブジェクトはシステム変数に保存できないので sf でなく tf を使う。 無名関数のコンテキストは null になるので通常は global を設定する。 [eval exp="tf.hogehoge=function1() { /* 何か処理 */ } incontextof global"] [eval exp="tf.hogehoge()"] これでできるはず。
訂正 ×function1 ○function
連投失礼。 あるいは単に既にあるメソッド(Debug.message とか)を使いたいなら以下のように。 [eval exp="tf.hogehoge=Debug.message"] [eval exp="tf.hogehoge('message...')"]
>>158 やりたいことが出来ました。
ありがとうございます
この板は動いてるのか
>>162 ナメクジみたいな速度だと思ってれば良い気がする。
違う 2chが大規模な鯖オチしてたんだよ
>>164 そうなのかw
帰宅して最初にゲ製作板を見た俺が悪かった、すまんw
640x480くらいの絵を5枚くらい使う簡易アニメーションを 展開によって10〜20種類くらい切り替えるゲームを作ろうと 思ってます この場合、Layerを50枚とか100枚準備するしかないんでしょうか? Layerはそれぞれvisibleとかの属性持ってるんで、一度に1枚しか 表示されない絵のために100もLayerを用意するのが不効率に 思えてしまうんですが VideoOverlayで動画として表示するのは逆再生したりとかの 融通を利かせづらいんで避けたいです……
単純に実装するなら必要だろうな 内部でとりあえず10枚読み込んで表示しつつ表示したのを開放していって 5枚以下になったらまた10枚読み込むとかなら15枚あればいけるんじゃないかな 開放する範囲を調整すれば逆再生にも対応できると思うけど
工夫次第で削るって感じですかね ちなみに、吉里吉里って一度解放した画像でも2回目読み込むとキャッシュ的なものが残ってて 速く読み込まれる とかはあるんでしょうか 時間を取られなければ、必要な画像をその都度読み込んでもいいと思うんですが
なるほど 失礼しましたm(__)m
>>166 普通は数枚程度のアニメなら全部連結した画像を準備してそれの imageLeft, imageTop を切り替えて使う。
その程度なら単純にasd 形式のアニメーションで処理できるから AnimationLayer.tjs の頭の解説よんで考えるべし
ロードの時間は実測してみて問題なければ個別にその都度読めばいいんじゃないかと
なるほど 3200x480だとか640x2400だとかとんでもないサイズのLayerになるのは 今ならあんま気にしなくてもいいんですね
>>166 表示をflashでやった方がいいような気がする
>>174 結局VideoOverlayと同じ感じの欠点があって……
長い動画扱うんじゃなければ、結局自前でいじるほうがいいかなと
訂正:結局普通の動画再生と同じ感じの欠点があって…… FlashもVideoOverlayですな
エフェクト再生用に、レイヤー管理とか気にせずに画像を読み込んで 紙芝居的に連続表示するスクリプト作った事あるけど 重さとかファイルサイズとかで、ちょっと使いづらい物になってしまってお蔵入りした
システム周りいじりたいんだけど プレビューできるエディタってある?
GUIでシステム周り弄るエディタは多分出たら覇権取れる
そういうのものすごく欲しいわぁ
ところでみんなエディタって何使ってるの? 無難にKKDE?
自分の普段使いなれたテキストエディタ 単語補完機能とかアウトライン表示とかあるやつ
KKDEはエディタとしては微妙。 デバッグには便利だけど。
吉里吉里なんでこんなにエディタが少ないん?
KKDEはあまり使われていないのか。 俺の場合デバックをよくしながらやるから重宝してるけど。
KKDEのつらいのはもう更新されてないこと
男は黙って自前エディタ。
KKDE2愛用してる F5押せば、吉里吉里起動しっぱなしでも自動で閉じて開き直してくれるから楽でいい だから更新してよ!ずっと待ってるのに!
フレームワークは有料でいいよ
190 :
名前は開発中のものです。 :2012/02/02(木) 21:20:58.51 ID:g33kUZgv
KAGのWYSIWYGエディタって需要ある?
初めからにするとシナリオ選択になって、一話が終わるとシナリオ選択に戻るんですが タイトル画面から入ったロードで読みこんだとき、その話が終わったら タイトルに戻るのってどうすればいいんでしょう? 現在だとタイトルからのロードじゃ最後にシナリオ選択に戻ろうとしてエラーが起きます
デバッグを有効にしてコンソール開いて エラーが出たらコンソールで何が引っ掛かってるのか確認
>>192 タグ : tempload ( ← エラーの発生した前後のタグを示している場合もあります )
(void) から Object へ型を変換できません。Object 型が要求される文脈で Object 型以外の値が
渡されるとこのエラーが発生します
というものなんですが
シナリオ選択の部分を見てないのに呼びだそうとしてるから駄目なんだと思いますが
タイトルに戻る方法が具体的にわかりません…
リファレンス読んだ?
>>195 すみません、今見てますがどの辺が当てはまるでしょうか
タイトル画面からのロード時のみタイトルに戻りたいんですが
temploadの中身って栞に保存されたっけ?
質問です ランダム(intrandom)で、単純に「10の中からランダムに1つの選択肢」を四段出すようにしました(重複アリ) message0 1あいうえ 2かきくけ 3さしすせ 4たちつて 1あいうえを選択して、リンクをクリックすると、隣りにあるもう一つのメッセージレイヤに message0 message1 1あいうえ 選択する 戻る 2かきくけ 3さしすせ 4たちつて と出るようにしました この後、戻るを選択したときに、元の順番の message0 1あいうえ 2かきくけ 3さしすせ 4たちつて に戻って来られるようにしたいのですが、ランダム選択を最初からやりなおしてしまうようで、なかなかうまくいきません どうにか、元の状態に戻ってこられる方法があるでしょうか
戻るを選択したらmessage1を消してから @unlocklink
>>199 できました!ありがとうございます
半日近く悩んでいたのですが、結構単純で助かりました
勉強になりました
Macで開発してる人居たらエディタ何使ってるか聞こうと思ったけど WinでもKKDE使ってる人ばかりじゃないのね。
Deeたんは変態だからな 吉里吉里はありがたく使わせてもらってるけど、あのノリ見ると嫌な人も多いとは思う
変態だからというよりはDQNっぽいのが問題なんだろうな リンク先でもそんな感じだし
ノベルの途中にシューティングのミニゲームをいれたいです。 何か便利なプラグインなどはありますか?
ありません 自作してください
わかりました。回答ありがとうございました。
繰り返し処理を用いてリンクを大量に作りたいのですが、どうにも上手く行きません。 sf.bbbは配列、tf.countはsf.bbbの要素の数が入っているとします。 [eval exp="tf.i = 0"] *loop [if exp="tf.i < tf.count"] [link exp="tf.aaa = sf.bbb[&tf.i]" target=*abc][emb exp="sf.bbb[&tf.i]"][endlink] [r] [eval exp="tf.i++"] [jump target=*loop] [endif] と書いたときに実際にリンクがsf.bbbの要素の数分表示されるのですが、クリックした時に tf.aaaにsf.bbb[&tf.i]の値が正しく代入されません。 原因はexpの属性で、リンクを作成したときではなく、クリックされた時のsf.bbb[&tf.i]の値が代入されているからだと思うのですが どこをどう書き換えたら思うとおりの処理が出来るのかがわかりません。 要点をまとめると、リンクをクリックした時に、リンクが作成された時のsf.bbb[&tf.i]の値を、tf.aaaに受け取るようにしたいのです。 リンクの数(配列の要素の数)はいくつになるかは分かりません。 どのような書きかたでも構いません。どなたか分かる方が居ましたらどうかご教授お願いします。 長文失礼しました。
まず tf.i の数値を埋め込んだ式の文字列を作成する -> tf.exp エンティティ( & )で link の exp 要素に tf.exp を直接指定する。 あと tf.i に & はいらない。 [eval exp="tf.i = 0"] *loop [if exp="tf.i < tf.count"] [eval exp="tf.exp = 'tf.aaa = sf.bbb[' + tf.i + ']'"] [link exp="&tf.exp" target=*abc][emb exp="sf.bbb[tf.i]"][endlink] [r] [eval exp="tf.i++"] [jump target=*loop] [endif]
>>208 [link exp=&"'tf.aaa = sf.bbb['+tf.i+']'" target=*abc]
エンティティ&は属性の先頭でしか使えない
+で文字列とtf.iの値を連結して新しくtjs式を作ればいい
>>209 >>210 とても早い返信有難うございます。
上記二つの方法で試してみたところ、どちらでも思い通りの処理が出来ました。
なるほど、一度tf.i以外の式を文字列にして、エイエンティ&を用いることでtf.iはリンクを作成した時のまま
式を評価できるのですね。とても勉強になりました。
今後は自らが質問に答えられる様、精進していきたいと思います。
お二方、本当に有難うございました。
式の構築は@つき文字列即値構文がおすすめ 'tf.aaa = sf.bbb[' + tf.i + ']' これは @'tf.aaa = sf.bbb[${tf.i}]' こう書ける。${} の中に直接必要な式を展開することも可能
ん?
おっと、誤爆 すまない…
ちっ
んっ
ぽっ
ぽっ
皆はtjsを扱う時にどんなエディタ使ってる? 個人的にキーワードで色分けできるエディタが欲しいんだが、どうにも見つからなくてな。 もしよければ参考にさせてくれ。
コマンドプロンプト
サクラエディタ
Ginnie
有償だが EmEditor
KKDE
前はGinnie使ってたけどKKDE発見してから離れられなくなった
kkdeってtjs支援機能あったっけ?
色分けはされる
228 :
名前は開発中のものです。 :2012/02/13(月) 17:27:20.12 ID:RknGC8qs
有償だがPeggy
ところでLayer.operateAffineの各種modeって今後永遠に未実装のままなんだろうか?
禿同。 operateRectみたいに加算、減算合成をひとつのレイヤ上で 簡単に同時に描画できるようになったら超嬉しい…
従来の機能を合わせるだけだし、ソースコピペとかで出来そうな気もするけど 中の人にしかわからない事情があるのかね? 吉里吉里がもう長いこと更新ないのは、開発者たちのモチベが尽きたっていうよりは もう作る必要がある機能ないねー って感じに見えるんだけど
たぶんAffine描画中にモード処理実装するより、既存メソッドで以下のように処理したほうが軽いんじゃないかな 1. 指定のアフィン変形の結果リージョンと描画先バッファのリージョンとの積のサイズのテンポラリバッファ作成 2. テンポラリバッファに座標補正して AffineCopy 3. テンポラリバッファから描画先バッファに operateRec
それでいけるのかもしれないけど、マニュアルに一応あるのに未実装ってのがずっとあるのがヘンだなと テンポラリバッファをキレイにしたりする手間もあるし、速度が要求される場面ではどうなのかな
単にめんどくさいんじゃね? 誰かが実装かけた上でとりこんでくれっていえばすぐ入ると思うよ
さすがに吉里吉里自体のソースコードまでは触れる技術ないなあ
236 :
名前は開発中のものです。 :2012/02/13(月) 22:27:29.55 ID:4i/Sun8o
吉里吉里2は枯れた感じだけど3は飽きたって感じだよな。 2が実質マルチプラットフォームじゃないからandroidやiPhoneなんかもある今、 このまま更新がないと元からマルチなエンジンに移る流れも出てくるだろうな。
秀丸使ってる人いる?
ある団体の影響を受けて開発しているんだろうし、必要なければ3が完成することはないだろうね
サードパーティがプラグインで実装してるからいいんじゃね?
>>237 秀丸のDirectWriteいいよね
最近はksもtjsもmifes
>>236 2は楓さん作ってるJava版が完成したら一応マルチ化ってことになるような
ネイティブプラグインのサポートは厳しいだろうけど
Layer.saveLayerImageみたいな感じで、JPEGとかで保存できるプラグインってないだろうか スクリーンショット保存目的なんで、楓さんのプラグイン使えば動画出力はできるんだけど 一枚だけJPEGを出力できるのがない……
お、ありがと しかしなぜかkag.fore.baseからpiledCopyしたLayerをsaveImageしようとするとInvalid Instance type.ってのが出て clearしてからpiledCopy→saveImageにするとEAccessViolationが出ちゃうな なぜかclearするだけ→saveImageだと上手く保存できるんだけど
正確な再現コード plz あとプラグインは Override.tjs でよんでるかね? そうしないとレイヤへの拡張が反映されてないオブジェクトからの処理になってしまうと想われ
あ、普通にバグだったのかw 動いた、サンクスコ
一度別メソッドよばないとダメなのはバグだった 出力がおかしかったのは、なんかGDI+がパラメート無しだと誤動作するっぽ。 何も指定しなくても depth=24 指定になるようにして対応した
シナリオの最中でonTimer()してもいいの? タイマーブロックの中にkag読める関数を読んで何回もkagイベントを起こすことって可能?
やってみればいいんでない?
結論から言わせてもらうと プログラムの安全性が重要だと思うならkagの仕様以上の事はしない方がいい でなければkagのソースを全て読んで完全に理解すること
KKDEってどれくらいの入力支援ができるのかな なんかそれなりにできそうなんだけど、マニュアルがついてないし 公式サイトの情報だけじゃ全然わからん……
>>250 アニメーションで使いまくってるけど、KAGと干渉しそうな事は極力避けてる
tjsで処理を書きKAGシナリオをジャンプやコールしない
栞もオフにする(ゲームデザイン上許容できるので)
KAGにやらせたけりゃ変数を受け渡してやらせる
実行順序を厳密にしたい時は@waiittrigを使ったり
(KAGソース全部読んでない…)
わざわざコンダクタ通してKAGスクリプト動かす意味がわからんな それで大丈夫そうなことならtjsからでも簡単にできるはず
>>255 待ち処理に関連するメソッドを直接呼ぶと一発で破綻するよ
メッセージ履歴を表示するんじゃなくて、マウスホイール上とかやったら 立ち絵や背景やボイスまで含めたバックログを表示するって今じゃもう 一般的なのかな? やるとしたら[p]が来るたびに記録しておいて手動で切り替え?
見た目で分かり易い方向に技術進化はしてるけど 文字表示の抑制ってちっとも進化しないよな 文末がガタガタになるのも制御できるようになれば良いのに
>>258 文末ガタガタって禁則処理とプロポーショナルフォントやめればいいって話じゃないの?
そういうことじゃなくてもっと難しい問題?
禁則処理は残しつつ、カーニングも工夫して行末揃えろよ とか?
できるとは思うけど意味薄いと思う 文字のタテが揃わなくなるのが気持ち悪いって人もいるだろうしな
本媒体と合わせる事を意識してだから 縦が揃わないのは長体にして追い詰める 制御かければさほど目立たないよ ただ、文字制御は地味だから意味を求めたら そりゃ薄いと思う
まあ誰得っぽいけど俺得 って機能はこういうオープンソース系の場合 自分で実装するもんだよ
ボタン押したらExtraConductor呼ぶようにしたいんですが inStableじゃないときの処理で困ってます [button graphic="btn" exp="test()"] funciton test() { if (!kag.inStable) { kag.skipToPage(); } kag.callExtraConductor('hoge.ks'); } こんな感じなんですが skipToPageが実行されないうちに ExtraConductorが呼ばれてしまいます この方法じゃなくてもいいんですが 即時inStableにするにはどうすればいいのでしょうか?
等幅フォント使うのは1文字の幅が揃ってるところが利点だから、それに適用するのは利点を無くしてしまう それ以外のプロポーショナルフォントを使う場合なら有効かもね
>>265 そりゃそのタイミングでKAGが必要な処理してるから inStable なんだよ。
inStable の時はそもそもボタンを押せなくする、って設計以外はKAGに適合しない
ごめん。逆 > inStable の時は
吉里吉里で脱出ゲーム作ってる人いるけどどうやって作ってるんだ 講座開いてくれ…
>>267 skipToPageでinStableにしようというのも見当違いですか?
最悪ボタン押せなくして対応しようと思いますが…
>>271 skipToPage はフラグをたててるだけで、実際にそれが機能するには一度KAGの処理が走る必要があるので無理
使ってるタグがシンプルなものだけなら、割り込みのタグをその瞬間に差し込んでおいて、スキップさせて
それが起動するのを期待する、とかはできなくは無いかもしれない。基本どういうタグが控えてるかが
事前にわからない以上KAG的には対応しようが無いです。
>実際にそれが機能するには一度KAGの処理が走る必要がある そういうことでしたか どこからがkagの処理なのかいまいち把握できてないので タグ挿し込んでみてダメなら、今回はおとなしくボタン無効にします
高木「ティンときた!ティンときた!ティンときた!」ズンッ!ズンッ!ズンッ! 黒井「も、もっと激しくしろぉ・・・」 高木「ティンティンティン!」ズッ!ズッ!ズッ! 黒井「も、もっとおぉ・・・」 高木「ティティティティティティティティティ」ズズズズズズズ 黒井「う、ウィいいいいいい!だしてえええ」 高木「いや、射精はしない」
マジで下品なの誤爆してすいません・・・
責任取ってBLゲー作ってきなさいww
277 :
名前は開発中のものです。 :2012/02/23(木) 14:23:10.23 ID:gShz1OSq
tf.人物.表示名[+elm.party][+elm.pos] = elm.name; この記述だと tf.人物.表示名[+elm.party][+elm.pos] に elm.name が入らないみたいなんですけど、 これは多次元配列使いすぎってことなんでしょうか
おおかたelm.partyかelm.posあたりの値を書き間違えてるんでしょ tf.人物.表示名[0][1] = elm.name; って具体的数値入れたりしながらどっかにミスないかデバッグしてみ
279 :
名前は開発中のものです。 :2012/02/23(木) 14:43:39.15 ID:gShz1OSq
うーん tf.test2 = elm.party; tf.test3 = elm.pos; tf.人物.表示名[+elm.party][+elm.pos] = elm.name; tf.test4 = elm.name; tf.test5 = tf.人物.表示名[+elm.party][+elm.pos]; tf.人物名.表示名[0][0] = "testok"; ってやったら tf.test5 には elm.name の内容がちゃんと入ってるのに、 tf.人物名.表示名[0][0] は void のままなんですよねー tf.test2 と tf.test3 の中は両方とも "0" でした tfなのがなにかまずいのかなぁ
280 :
名前は開発中のものです。 :2012/02/23(木) 14:45:15.65 ID:gShz1OSq
あ、記述ミスです 実際のテストでは書き損じてません tf.人物名.表示名[0][0] = "testok"; ↓ tf.人物.表示名[0][0] = "testok";
吉里吉里から決済サービスに通信して ゲーム内アイテム課金とかできます? 簡単な回答でいいんで、わかるかたお願いします
できるかできないかで言われたらそりゃ出来るでしょうね、としか。 C++ で拡張すればなんでもできるよ
あーオープンソースだからソースいじれってこと? そら自分で作れば何でもできるがな
使い方サイト作ってDLLで配布してくれ。
うん、解決したね
別に本体いじらなくてもプラグイン機構がある。 http 通信程度なら既存のプラグインがいくつかあるよ。 もっとも「決済サービス」を想定して具体的につくりこまれたものがそこらに おちてるわけではないから、結局 C++ でもなんの言語でも、その部分の モジュール作成に必要な工数は大差ないんじゃないかと 吉里吉里だから手間が減るってことは全く無いです
ふむふむ、ちょっと調べてみます dです
スクリプトで実装するのも C++で実装するのも同じです 自分で処理を実現するためのソースコードを書かなければいけない
290 :
名前は開発中のものです。 :2012/02/24(金) 04:37:25.43 ID:kSdmsgbB
ゲーム表紙にグラフィカルボタンつけて本編に飛ぶようにしたんですが、 本編から表紙に飛ぶとボタンが消えてしまいます。 恐らくトランジションと本編のメッセージレイヤー0を変化させたのが原因だと思うんですが、 どうにもうまいやり方がわかりません。 本編メッセージレイヤー0 [position visible="false" layer=message2] [position visible="false" layer=message3] [backlay] [position frame="waku1" page="back" visible="true" layer=message0 marginl=200 margint=25 marginr=5 marginb=30 left=0 top=331 width=480 height=140] [image layer=0 storage="%n" visible="true" page="back" left=0 top=280] [trans method=crossfade time=200][wt] [layopt layer=0 index=1500000 autohide="true"] 場転トランジション [layopt page="back" visible="false" layer="0"] [layopt page="back" visible="false" layer="1"] [layopt page="back" visible="false" layer="message0"] [layopt page="back" visible="false" layer="message1"] [trans time=700 method=universal rule="3" vague=100 children=true][wt] ご教授お願いします。
どれがグラフィカルボタンのレイヤーなのか分からんのだが
292 :
名前は開発中のものです。 :2012/02/24(金) 05:00:43.20 ID:kSdmsgbB
>>291 すいません!
[startanchor]
[cm]
[history output=false enabled="false"]
[disablestore store]
[rclick enabled=false]
[current layer=message0]
[cm]
[image storage=white layer=base]
[locate y=250]
[style align=center]
[delay speed=nowait]
[locate x=480 y=5]
[button graphic="start" storage="はじまり.ks" clickse="決定" enterse="ボタン上音"]
[s]
[style align=default]
[s][stopbgm]
これが表紙です!
本編のトランジションと台詞枠を追加するまでは問題なかったんですが、
一気に追加したためどこが悪いのか分からなくなってしまいました…。
ちなみに表紙と本編は別のシナリオファイルです。
表紙ってタイトル画面の事か? タイトル画面から本編にjumpできるんなら、本編からタイトルに戻ってくる時は 同じようにスクリプトを記述すればいいような
質問です 終了確認メッセージや、はい・いいえのダイアログ等の文字を アンチエイリアスなしに設定する方法はありますか? メッセージレイヤーに乗るもの以外はデフォでありになってるみたいですが 一括で変える方法はないのでしょうか。
メッセージレイヤのvisibleがfalseになってるんじゃないかなとか。 どっかでvisible=trueにしてあげてみれば? currentが裏に行ってる……てこたぁないか。
>>294 KAGの該当スクリプトを書き換える。
drawText(aa=false...
未検証。心底誰得だな
>>295 だよね
>>290 実行中、Shift+F12、Shift+F4でレイヤ構造のダンプを見てみるといいよ
ボタン用レイヤがinvisibleになってるとしたら、
どの命令でそうなるかを追跡すれば原因が分かるよ
>>290 jumpにしろ最初に戻るにしろきちんとタイトルのボタンがでるっちゃでるが?
(本編のほうでタイトルのボタンを配置しているMessage0のプロパティ変更してるから位置は別になるが)
何か勘違いしてたらスマソ
>>296 フォント変更のようなお手軽一括変更はやっぱりできないんですね。
スクリプトとにらめっこしてきます、レスありがとうございました。
>>290 メッセージレイヤーを使い分ければいいんでない?
わざわざタイトル画面と本編とで同じレイヤー使う必要は無い訳だし
まぁ、レイヤ枚数増えるからアレだけど
後は、タイトルに戻るときにmessage0の設定を全部定義しなおすとか?
krkrconf.exe使えって書いてるでしょーが toolsフォルダみてみ
初歩的なことなんだが知恵を貸してください… シナリオで右クリック→ コンフィグ(講座見て改変)からロードorセーブ→ セーブorロードしてから右クリックでコンフィグへ→ コンフィグから右クリックあるいは戻るボタンを押して元のシナリオへ… っていうのがどうしてもできません。 セーブロードしたあと、右クリックでコンフィグ事態には戻れるんだけど そこからシナリオへが戻れないのです。 ここ一週間くらいずっと [tempsave place=0]が使えないかとか expがつかえないかだとかにらめっこしているんだけど、 どうも手詰まりで…。 どうか知恵をお貸しください…
セーブロード画面に飛んだ時にrclickのジャンプ先変えたまま戻してないとかじゃね 余計なお世話かもしれんがそもそもコンフィグからセーブロード画面に飛ぶ必要ってあるの?
>>304 なるべくそういうのはまとめておきたかったのと
昔吉里吉里のゲームでみた
ロードとセーブとコンフィグ画面がセットになってて綺麗だなーと思ったからです…
rclickあたりを見てもうちょっと自分でがんばってみます!
変数について教えてください ゴミ箱をクリック ↓ 「ゴミで溢れている、片付けよう」 ↓ 再度ゴミ箱をクリック ↓ もうゴミは無い という風に同じ場所を再びクリックすると台詞が変わる様にしたいのですが 頭がこんがらかって分かりません ゲーム変数を使えばいいのかなと思いますがもうこれ以上分かりません… どなたか教えてください
[if exp="f.ゴミ箱チェック != 1"] [eval exp="f.ゴミ箱チェック = 1"] 「ゴミで溢れている、片付けよう」 [else] 「もうゴミは無い」 [endif]
>>305 戻れないってエラーが出るの?
それとも画面が切り替わらないとか?
309 :
306 :2012/02/24(金) 16:52:11.35 ID:PD2GPLw/
>>307 出来ました!!ありがとうございます!!
これでやりたい事がやっと出来ます助かりました…!!
連投すまん
>>304 うちのところはシステムページは相互移動可能にしているよ。
例えばセーブした後にすぐロードしたい場合とかはセーブ画面→ロード画面に直接飛べたほうが楽だし
他にはフローチャート見て分岐ミスってたらそのままロード画面に移動するとか
>>308 右クリックでコンフィグ→
セーブ(ロードあるいはセーブしてからロード)あるいは何もせずに戻る→
コンフィグに戻って
右クリック(あるいはクリッカブルマップで戻るをクリック)でシナリオ復帰…
←ここでうまく切り替わらないのです。
いちおうセーブ画面にはロード
ロード画面にはセーブに移動できるようにはしてあります。
>>311 セーブまたはロード画面からコンフィグに戻らないでそのままシナリオ復帰じゃだめなん?
あと、具体的にどんな処理しているか書いておかないと予想でしか回答できないから
なるべく処理は書いておいたほうがいいよ。
長くなりそうなら公開したくない箇所を削除するなりしてうpロダにあげるとか。
313 :
290 :2012/02/24(金) 20:03:55.27 ID:kSdmsgbB
>>293 >>297 >>298 >>300 皆様どうもありがとうございました!
タイトル画面と本編のメッセージレイヤー0を分けて整理したら無事、ボタンが現れました!
初歩的な質問で本当に失礼しました;
314 :
303 :2012/02/24(金) 22:10:21.96 ID:gRnyTH97
315 :
名前は開発中のものです。 :2012/02/24(金) 22:12:39.40 ID:K74vFZP1
TJSにオススメのエディタないですか ブレークポイント置いてステップイン実行できるみたいな・・(´・ω・`)
>>314 あげられたの見てないけど、二重にcallで呼び出しているんじゃない?
callでコンフィグ呼んで、またcallでセーブorロード呼び出してるとか
サブルーチン間の呼び出しはjumpタグ使うかkag.process使うと良いかも知れないね
とか書いておきながら自分のスクリプト見たらcallの二重呼び出ししてたわ…
っても使ってたのはkag.callExtraConductorだったけど
これでエラー起きないって事はcallタグとkag.callExtraConductorの挙動って違うんかな
>>317 全然違うぞ
call は表の処理の遷移で、callExtraConductor は裏の別制御系を立ち上げて、
表の動きを止めておく
その瞬間での動きは同じように見えるかもしれんが、
call の先でセーブとかしたら、セーブ処理を組み直しただけで使えなくなるセーブデータのできあがり
319 :
303 :2012/02/25(土) 01:12:00.60 ID:HV1k7lPI
>>317-318 callをjumpに替えたらいけました!
ありがとうございます!
悩みすぎて頭がコチコチになっていたようです!
本当にありがとうございました!
>>318 そうなのか、単純にcallタグと同じことしてるんだと思ってたわ…
って事はcallExtraConductorはreturnタグと対応してないって事になるのか
完全に勘違いしてた… そのお陰か偶然上手く処理が出来ていたみたいだけど
>>319 おめでとう
頑張って完成させてくれ
あと適当なこと言ってすまん
>>320 ああ、裏のコンダクタで call 起動してるので、return タグとの対応はもちろんしてる
ただ、処理の流れは完全にメイン処理とは独立してるよってことで
リファレンスに >トランジション後は、表ページの対象のレイヤの画像、位置、サイズ、可視・不可視の状態は裏ページの対象のレイヤと同じになります。 って書いてあるけど、実際はレイヤのtop.leftはforeのままだよね。
vipperは巣に帰れ
image、あるいはeximageタグでrfloorなどの数値を変えてから、 exmoveを使うと数値が初期値に戻ってしまうのですが、どうにか回避できませんか? moveを使うと数値は保たれたママなので良いのですが、拡大ができなくなってしまいます。
質問です krkrconf.exeでプログラムアイコンの画像のみを変更した場合は krkr.cfを同梱しなくても特に問題はないんですか? 必須と思い込んでたけど最近買ったゲームについてなかったんで。
Dさんここ見てるならもうちょいメモリ確保するようにして欲しいお 最近は結構動画とか入れるからメモリすぐパンクしちゃうから、どこのエンジンも割と多く確保するようになってるお 差分アップでも外部追加でもいいからメモリを大幅に確保出来るバージョンが欲しい 200メガちょいでフリーズするとちょっときつい。
レイヤーサイズ>画像サイズなレイヤーを作りたいんだけど 一度レイヤー全部透明に塗りつぶさないとダメかね? 単に画像読み込んでレイヤサイズ拡大しただけだと 「レイヤ領域に画像のない領域が発生しました」 って怒られるんだけど要するに 「必ず画像サイズ>=レイヤーサイズにしてね」 ってこと?
そりゃイメージサイズより大きいとかレイヤは原理的に無理だよ 画像ロードしたあと、setImageSize() でイメージサイズを拡張した上で、それにおさまる範囲で setSize() するのはOk
やっぱそういうものなのか、ありがとう
すまんもう一個質問 class Test extends Layer { function Test() { var lay = new Layer(kag, kag.primaryLayer); } } これをnewするとエラーになる理由を教えてくれ Layer継承しなければエラーでないってことは 初期化中に同じクラスのコンストラクタ 呼んじゃいけないとかいう制限でもあるのか?
あぁスーパークラスとクラス名が競合してるのか var lay = new global.Layer(kag, kag.primaryLayer); にしたらいけた、失礼
KAGで[call]すると文字表示速度はデフォルトに戻るものなの? 具体的には以下を実行すると、最初は "kag.actualChSpeed = 0"、 それ以外は全部 "kag.actualChSpeed = 30" と表示されてしまう。 試したのは吉里吉里2.32r2。 [nowait] [eval exp="dm('kag.actualChSpeed = ' + kag.actualChSpeed)"] [call target=*abc] [eval exp="dm('kag.actualChSpeed = ' + kag.actualChSpeed)"] [s] *abc [eval exp="dm('kag.actualChSpeed = ' + kag.actualChSpeed)"] [return]
335 :
sage :2012/02/28(火) 01:54:23.32 ID:DZoELoqk
KAGEXについてのご質問させてください メッセージウインドの表情欄を利用しているのですが 改ページ、キャラ発言の際に表情欄が消去されない方法はありませんでしょうか? 発言中のキャラの表情を表示するという使い方ではなく 主人公の立ち絵を表情欄にて表示するという使い方をしたいのですが 現状のままですと改ページ、発言キャラの変更時(linemode使用)に主人公が消えてしまいます "defaultBU" => true, などを使用して主人公以外のキャラは表情欄に表示されないよう 抑制しているつもりですがうまくいきません なにかよい方法はないでしょうか?
335です sage入れる場所間違えてしまいました!!すみません
>>335 それ表情欄使う意味あるの?オフセットでずらして立ち絵の機能使えばいいんじゃね?
質問します 名前がpatchではないパッチ(xp3ファイル)を作りたいと思ってます。 ググってみたところ「複数のXP3ファイルに分割する方法」というのはあったのですが 自由なファイル名にする場合はKAGの改造が必要とのことでした。 具体的にどうすれば出来るか教えてください。
system/Initialize.tjs に useArchiveIfExists("patch.xp3"); って行あるでそ そこを改造 patch2.xp3とかについてもいじりたいならその直後の数行も改造
>>338 Initialize.tjsを読んだらわかります。
あら失礼
>>337 さん
立ち絵にできるのであれば一番よいのですが、メッセージレイヤーより上のプライオリティにしたい(メッセージ枠の上にキャラ表示したい)
右クリメッセージレイヤ非表示の際に一緒にキャラを非表示(kagのautohide)にしたかっため表情欄を選択しました
layoptはレイヤ番号とかわからないので使えなさそうですし、
ワールド拡張での上記処理立ち絵の方法がわからなかったもので・・・
>>343 表示レベルを10にすればメッセージレイヤ0の前に表示される
20ならメッセージレイヤ1の前
右クリで消すのはプラグイン書く必要あり
↓のスクリプトをafterinit.tjsにはっておけば多分動く
「"しおり"」の部分は消したいキャラの名前にしないとだけど
メッセージと連動させたいならmsgon/msgoffもマクロ化して一緒に消すようすれば便利かも
class MessageHiddenStatePlugin extends KAGPlugin {
function onMessageHiddenStateChanged(hidden)
{
if (world_object.env.characters["しおり"] !== void && world_object.env.characters["しおり"].targetLayer !== void) {
with (world_object.env.characters["しおり"].targetLayer) {
if (hidden) {
.beforeMessageHiddenStateVisible = .visible;
.visible = false;
} else {
.visible = .beforeMessageHiddenStateVisible;
}
}
}
}
}
kag.addPlugin(new MessageHiddenStatePlugin());
>>344 さん
プラグインの式までかいてくださりありがとうございます!
無事やりたいことが実装できました。
レベルに関しては一度10以上を指定してみてできなかったので
あきらめたのですが、単にenvinit.tjsの記述をミスしていたようです
KAGEXは使えると便利そうですが、TJSに手を出してないと
やはり躓いてしまうことが多くなりますね
まだまだ精進が必要なようです
ここで回答をいただけて助かりました
本当にありがとうございました
どなたか
>>327 分かる方いませんか
ゲーム名の付くファイルが2つあるのは見た目的にイマイチなんで、
入れなくて平気なら同梱したくないんだけど…
>>346 アイコンリソースは実行ファイルに埋め込まれるので krkr.cf は不要。
>>347 ID変わってますが346です
教えてくださってありがとうございました!感謝です
krkrconf.exeで、256x256サイズを含むアイコンに変更しようとすると New icon size exceeds original icon size! というエラーが出てしまいます。 どうすれば大きいサイズのアイコンも使えるでしょうか?
ずっとtf変数つかってた・・・ロードしたら消えてるじゃん。死にたい
時間制限内のクリック数をカウントしたいのですが どうすればできるのでしょうか? カウントはフラグを使ってやればできるのだろうと思うのですが 時間制限がわかりません。 どうすればよいのでしょうか?
timeoutでいけるんじゃない? tjsならタイマーとかトリガー
>>352 ありがとうございます。
クリックのカウント方法をクリック待ちの間に
フラグを入れるというものにしているので
timeoutが使えません。
カウント方法を変えた方がいいのでしょうか?
>353 クリック数なら、kag.clickCountが勝手に数えてくれる 「TJSをもっと使うために」を参照してみて
二次元配列とかって、デバッグで見ると f.aaa = (object)(object 0x0831E8E3:0x0831E8E3) みたいに表示されますよね これを、(object)の文字列をそのまま取得して、例えば別セープの吉里吉里Bで f.bbb = (object)(object 0x0831E8E3:0x0831E8E3) ってやると、別のデータでもf.aaaの中身をf.bbbにそっくりそのままコピーできる・・・ みたいな事って出来ませんか?
saveStruct したデータをわたすんじゃいかんの?
別PCから別PCにデータを送るのに ファイルのやり取りでなく、例えば2chとかで文字列をやり取りしてデータを送る、 つまりファミコンのパスワードみたいな事をしたかったんですが・・・ 自分で暗号化の法則とか作ってやるしかないですかね
ものべのこれ吉里吉里なのかすごいな
AsyncTriggerクラスの説明に >AsyncTrigger クラスは、いったん吉里吉里に制御が戻った直後のイベント配信のタイミングにイベントを発生させるためのクラスです。 ってあるけど、吉里吉里に制御が戻るってどういうこと? 一行ずつtjsコード逐次実行してるんじゃないの? イベントを全部処理し終わってアイドル状態になったときってこと? 「直後のイベント配信タイミング」って要するにいつなんだよ? てか配信?発生と違うの?吉里吉里がイベント溜め込むのか? そもそもイベントってマルチスレッドで並行処理されてるの? それともイベントキューみたいなのに入るの? さらにKAGのConductorが入ってくるともうわけわかんね この辺突っ込んだ解説してるサイトとか本とかないですか?
>ってあるけど、吉里吉里に制御が戻るってどういうこと? スクリプトの実行がおわったとき >一行ずつtjsコード逐次実行してるんじゃないの? してます >イベントを全部処理し終わってアイドル状態になったときってこと? そんな感じ >「直後のイベント配信タイミング」って要するにいつなんだよ? 他のイベントハンドラの処理が終わったとき >てか配信?発生と違うの?吉里吉里がイベント溜め込むのか? ためこみます >そもそもイベントってマルチスレッドで並行処理されてるの? されてません >それともイベントキューみたいなのに入るの? 非同期イベントはイベントキューに入ります >さらにKAGのConductorが入ってくるともうわけわかんね がんば >この辺突っ込んだ解説してるサイトとか本とかないですか? ないです
まさかの全レスありがとう こういうのって経験則で掴んでいくしかないのかな Conductorはソースあるから読めばわわかるんだろうけど
ソースは全部あるじゃん
>>357 バイナリデータをbase64とかで圧縮して送るのがわかりやすいんじゃね
base64は圧縮じゃないけど、まあ
普通に配布されてるのではないとはいえマルチスレッド吉里吉里みたいのも出てきたし、 >>そもそもイベントってマルチスレッドで並行処理されてるの? >されてません みたいなまとめがあるのは良いことな気がする
マルチスレッド版って公式に差し替えされないの? 何か前に処理速度のサンプル募集してた気がするけど
公式のバイナリ(開発版)には既にはいってるで>マルチスレッド版 マルチスレッドっても描画処理がマルチスレッド、でイベントモデルは従来通り
おぉ、もう入ってたのか 色んな処理が全部マルチスレッドになればいいのに つってもそんな処理速度を求められる事とかそう無いだろうけど
System.drawThreadNumってのがもうあったのか、今知った
マルチスレッドうんぬんで騒ぐ奴はこの程度の知識 マルチスレッドが何なのかも知らない
>> 334 試してみたらうちでもそうなった。 バグかも?報告してみ。
ソース見たら、System.drawThreadNum って吉里吉里 2.32では主に BeginThreadTask() から参照されてて、レイヤーの Fill/FillColor/BlendColor/RemoveConstOpacity/ FillMask/CopyRect/Blt/InternalAffineBlt からしか使用されてないみたい。 実際設定しても、(特に自前でdll書いたりしてると)あまり変化はないね(Corei3の 2core/4threadで確認)。 こういうinternal infoってどっかにまとめておきたいなぁ…
何でもかんでもマルチスレッドにすれば性能が向上するわけじゃない。自分で書いてみればわかる。 排他処理やらスレッド生成やら色々オーバーヘッドが生ずるわけだしね。 再現性低いバグが仕込まれる原因にもなる。
基本的にはGPUに頼らないがゆえに重くなりがちな 画像処理の効果期待だよねえ
実際、画像処理は確かに重いから、自前dll書く時は自力MultiThread化を 考えた方がいいかもしれないね。ちょっと自分のdllをMultithread化して みよう。 GetAdaptiveThreadNumの引数が(w*h, 150)とか(w*h, 84)とか(w*h, 66)とか なんか根拠あるのかなぁ。「XXで実測した結果」とかだったら書いといて 欲しかった…。
>>354 遅くなりましたが、ありがとうございます。
TJSの方はまだ全く理解できていないのでがんばってみます!
>>362 オープンソースってこと忘れてた
いい機会だししーぷら覚えようかな
教えて頂きたいんですが、ボタン等を非表示にしてる最中に、 “ボタンの上にマウスが乗った”イベントが発生しない様にする方法は ありませんか? 簡単に言うと、TJSでボタンレイヤを作成し、3つ程並べており、 更に以下の機能を設定してるとして下さい。 @.マウスカーソルが乗った場合、そのボタンの説明ウィンドウが出る。 A.ボタンをクリックすると、説明ウィンドウ含めて全て非表示にする。 んで、ボタンをクリックした瞬間にマウスを動かすと、非表示中に@の処理が 起動してしまうらしく消したはずの説明ウィンドウが表示されてしまうのです。 一般的な対象方法含め、良い方法があれば教えて頂きたく、宜しくお願いします。
>> 362 ソースがあっても、377のように「なぜそう書かれているのか」がわかんない ことがあるから、何でも分かるわけじゃないんだよね。ご注意を。 書いた「意図」を残す意味で、コメントとか仕様書とかって大事なんだけど、 そのあたりが吉里吉里には不足しているので困ってる。
>>380 ボタンをクリックした場合の処理の中でフラグを立ててるようにして、
マウスが乗った場合の処理の中ではフラグが立ってない場合のみ説明が出るようにする
ということでいいんじゃね
>>381 吉里吉里は典型的な Borland C++ の VCL のForm ベースプログラムだよ
特に変なことはしてないのでわざわざ仕様として書く必要が無いんだと思われ。
そっちの仕様を把握した上で、個別機能モジュールの *Intf.h のコメントみつつ、
TTVPMainForm と TTVPWindowsForm の実装を順に追えば基本は理解できるんじゃないかな
>>382 早急な解答ありがとう御座います。その方法で対応しました。
もう1点質問なんですが、爆発エフェクトを発生させるTJSを作成したのですが
仕様としまして、爆発の画像データを読み込んでおき、エフェクトは別途発生タイミングで
レイヤを生成、assignImagesで画像を共有し、エフェクトを表示後、廃棄としているのですが
どういう訳か、多数の廃棄を繰り返すと、開放や非表示が遅くってしまいます。
何故か、setImagePosでの表示切り替えは遅くならないのですが、非表示にする時や
レイヤを開放する時だけ遅くなり、処理落ちでは無く、しばらくしてもこの現象が治りません。
エフェクトレイヤは、Dictionary型に格納しており、開放できている事は、countで確認しております。
開放に失敗し、レイヤが異常な数になっている訳ではなさそうです。
因みに、エフェクトレイヤを3個くらいずつ作る分には、この現象はおきません。
色々試して結果、25個くらいずつで発生しております。
可能性としまして、invalidateで開放が上手くいかないパターンがある。
または、Dictionaryに随時追加&削除を大量にしているのが問題と考えましたが、
対処方法は全くわからず、困っております。
この現象の回避方法がわかりましたら、教えて頂きたく、宜しくお願いします。
>>384 分からんけどSystem.doCompactでガベコレ走らせてみるとか
Shift+F12押せばコンソールにレイヤ構造出力されるからちゃんとレイヤなくなってるかはそれでチェックできる
せっかくなので、ソースから読み取れる吉里吉里のイベント処理のおおまかな解説など 1. 吉里吉里本体がウインドウメッセージや内部処理からイベントを生成する ・ウインドウ/レイヤ系/サウンド系のイベントは即配信されてTJS実行 ・タイマやトリガは指定の優先度で吉里吉里のイベントキューに積まれる ・プラグインからも TVPPostEvent でイベント登録可能 2. TJSイベント処理呼び出し開始タイミング 一連のウインドウメッセージの処理が終わったタイミングでアイドル処理としてTJSイベント配信処理が開始(Application->OnIdle 経由) ・contfreq=0 で continuous handler 動作中は強制でアイドル処理が呼ばれ続ける ・イベントキューにイベントがつまれた時はダミーのウインドウメッセージを発行するので必ず次のアイドル処理もおこる ・50msに一回、終了判定やガベージコレクト処理起動なども含めたイベント配信がある(TVPMainForm::SystemWatchTimerによる) 3. TJSイベント処理。処理入り口は TVPDeliverAllEvents() (1)優先イベント>通常イベントの順でTJS呼び出し (2)アイドル系処理 a. アイドルイベントのTJS呼び出し b. フラグが立っていれば continuous handler のTJS呼び出し c. ウインドウ画面更新イベントの処理(更新があった場合それを実画面に反映) (1)用の優先イベントがある場合はそれが無くなるまで(中途で積まれた場合も)(2)のアイドル系処理はとばされて次の回送り (2)b. の continuous handler は以下の場合に動作フラグが立ちます ・vsync 待ち有りならその直後 ・vsync 待ち無しで contfreq=0 の時は毎回 ・vsync 待ち無しで contfreq>0 なら指定fps相当のインターバル経過後 画面更新はアイドル処理時のみで描画処理用にタイミングをあわせるには、continuous handler か atmAtIdle なトリガが適切ということになります。 vsync 配慮するなら continuous handler のほうがちらつきにくいタイミングになります レイヤのトランジション処理や KAG の Mover は continuous handler を使ってます
☆ハメポイント ・シングルスレッドモデルなのでTJS呼び出しは単純な無限ループだけで busy loop になって中断不能。 ・TVPPostEvent 含めて別スレッドからの吉里吉里機能呼び出しは Windowプロシージャの経由が必要 ・contfreq=0 での continuous handler は画面は更新されるがCPUを食い尽くす ・トリガでイベントを無限呼び出ししたりするとこれもCPUを食い尽くす ・優先イベントを無限呼び出しすると画面更新無いままCPUを食い尽くす トランジション時に液晶が鳴いたりするのは、無制限呼び出しで、限界まで更新処理がはしることによるものです。 比較的新しい版の吉里吉里では -contfreq で抑制可能になっているので、多用するなら指定していたほうが良いです。 トランジション処理は selfupdate=true なら continuous handler での更新が無いので、 自前で Timer と AsyncTrigger などで処理するようにすれば continuous handler を一切使わないことも可能です。 Vista 以降だと vsync を意識する必要はなくなってるはずなので、そちらのほうがむしろ構造としてはシンプルかもしれません
>>387 保存した。勉強になりますた。
どうせなので聞きたいのだけど、
>・TVPPostEvent 含めて別スレッドからの吉里吉里機能呼び出しは Windowプロシージャの経由が必要
別スレッドから呼んだら駄目なのは各機能がスレッドセーフでないからだと思うのだけど、
「Windowプロシージャを経由して呼び出す」のは具体的にどういった方法でしょう。
よかったら教えてください。
>>388 ウインドウプロシージャはOSによって吉里吉里本体同様にメインスレッドで単独で走ることが保証されてるので、
・自前で不可視のウインドウクラスとそのウインドウを作ってそのプロシージャに吉里吉里を呼び出す処理を書く
・スレッドにはそのウインドウの HWND を受け渡す
・スレッドからその HWND を指定して PostMessage
これで処理できる。
吉里吉里内部だと、Borland C++ の便利関数を使ってる。
例えば win32/WaveImpl.cpp 中の以下のような処理
UtilWindow = AllocateHWnd(UtilWndProc);
これで準備した内部ウインドウに
::PostMessage(UtilWindow, WM_USER+1, 0, 0);
これでメッセージおくってる
VCで書かれたプラグインの例だと、httprequest プラグインは吉里吉里の Window を使って目的の処理を実装してる。
Window クラスに HWND とる口と、任意のメッセージIDに対するプロシージャを登録する口 ( Window.registerMessageReceiver )
があるのでそれで対応できる。
ただ、吉里吉里のウインドウはフルスクリーンまきこまれも配慮する必要があって対応が面倒くさいので、
今新規に作るのなら shellexecute プラグインでやってるように、Win32 API で自前で窓を作って対応するほうが
プラグインの独立性も保ちやすくて良いと思います
うーん難しいなあ
>>386 の見出し1.2.3.は処理の順番?
疑問なんだけど、タイマーって時間がきたら実行されるじゃん?
そのときに吉里吉里が他のイベント(たとえばボタンクリックとか)を処理してたら
それが終わるまでonTimerは発生しないの?
でもそれだと時間どおりに実行される保証はないよね
>>389 理解できました、ありがとうございます。
shellExecute のソースが分かりやすかった。
すると、スレッド間同期とかいらない処理(ログ出力等)はウィンドウプロシージャに次々丸投げして行けばおkなわけか。
これは目から鱗。
>>390 その通りです。吉里吉里はリアルタイムシステムじゃありません。
Timer は「指定時間以降いつか実行される」というもので正確な時間保証は皆無です
.NETのタイマーに慣れてたもんで、マルチスレッドじゃないのにタイマー? ってどうも納得いかなかったけどそういうことなのね ひとつスッキリしたわありがとう
90年代からゲーム作ってた奴はむしろ理解しやすそうなんだけどねw
395 :
384 :2012/03/05(月) 21:36:08.62 ID:CBgYJhyB
>385 ご回答ありがとう御座います。 教えて頂いた方法で確認しましたが、レイヤは開放されており、 System.doCompactも効果ありませんでした。 しかしながら、タスクマネージャにて確認した所、使用メモリが がんがん増えて行き、全く開放される気配がありませんので、 レイヤはなくなっているが、メモリの開放が行われない状態の様です。 もう少し頑張ってみます。
396 :
384 :2012/03/05(月) 23:56:46.50 ID:CBgYJhyB
とりあえず、原因はわかりました。 Dictionary型にアニメーション用の情報classを随時追加、削除を繰り返してるんですが 削除の時にメモリが開放されないみたいです。 classだからいけないのか、Dictionary型に大量に追加削除してるのが行けないのか・・・。
できるだけシンプルにして、それでも同一現象が起きる状況が確認できたら コード晒してみたら?
KAGEXのDialogLayer.tjsなんですが DialogLayer.addButtonメソッドの後半、linksに情報詰める所で links[numLinks] = %[ (略) x : [x], (略) ]; となってるんですがどういう意味なんでしょうか? dmでxの中身見てみたらどうも要素数1の 配列オブジェクトができてるみたいですが 普通にx:x, ではダメなのか、意図がよくわかりません。
要素の初期値指定して配列宣言してるだけ var x = [1,2,3]; とかと同じ コード読んでないから意図は知らない
>>398 KAGのMessageLayerのlinksでも配列になってるからそれに合わせたんじゃね
MessageLayerの方だとハイパーリンクで実際に複数点使ってる
>>399 変数を[]で囲むと特別な意味があるのかと勘違いしてました。
確かに配列宣言の形ですね。お恥ずかしい・・・
>>400 MessageLayer確認しました。
そういうことだったんですね。
ありがとうございました。
402 :
sage :2012/03/06(火) 23:03:55.75 ID:wMvjlXw/
初歩的な事なのですが、吉里吉里設定を開く事ができないのですが、その様な例は あるのでしょうか? いろんなサイトを捜してみても、その様な自体の事を書かれているのを見つけ出す 事が出来ないのですが…… ちなみに使用していますパソコンのOSは「Windows Vista Service Pack 2」なの ですが「krkrconf.exe」を開こうとしても「指定されたファイルは吉里吉里実行可 能ファイルではありません」と出て、開けないのですが 何か参考になる事がありましたら、お知恵をお貸し下さい
>>402 一応確認しておくが
[krkrconf.exe を起動]→(ファイル選択ダイアログが出てくる)→[krkr.eXe を選択して開く]
あるいは
[krkr.eXe を krkrconf.exe のアイコンにD&D]
この手順を間違いなくやっているよな?
まさか krkr.eXe 以外のファイルを krkrconf.exe で開こうとしたりしていないよな?
すみません、ちょっと教えて下さい。 下のコードを実行するとコンソールにtrace1とtrace2が表示されるのですが trace1で停止させるにはどうすればいいのでしょうか? [iscript] kag.conductor.sleep(); kag.conductor.interrupt(); kag.process( ,"*test"); [endscript] [trace exp="0"] *test [trace exp="1"] [s] [trace exp="2"] [s] 実際には右クリックメニューを表示する際に一度KAGを止めて、 メニューに応じて該当シナリオファイルにジャンプさせたいのですが、 ジャンプ後の[s]タグで止まってくれずに困っています。
406 :
sage :2012/03/07(水) 08:38:16.25 ID:v7/O0XUO
>>403 「kirikiri2」の中にある「Tools」を開いて「krkrconf.exe」を実行したら
(ダブルクリックまたは管理者として実行するを選択)『吉里吉里実行ファ
イルの選択』が表示されるのですが、内容は「Tools」の内容と同じで、再び
「krkrconf.exe」を始めとするアイコンが表示されてしまうだけで、表示さ
れる筈の指定されている「krkr.eXe」に辿りつく事ができないのです。
これが堂々巡りで続いてしまっております。
何か勘違いをしている可能性もありますが、何卒お教えを御願いいたします。
>>404 アイコンの変更などをしたいと思っていますので、吉里吉里設定を開いて変
更を考えております。
お答えをありがとうございます。
言ってる意味がよく分からないんだけど その「吉里吉里実行ファイルの選択」で 指定したいkrkr.eXeの入ってるフォルダを選んでexe指定するんじゃないのか
>>406 それ、「ツールの使い方が分からない」じゃなくて「Windowsの使い方が分からない」だろ。
あんたは上に[ファイルの場所]のプルダウンとか[1つ上のフォルダへ]とか見えない人間なのか?
直接パスを打ち込んでファイル指定したりできない人間なのか?
ツールにファイルをD&Dして起動したりしたことない人間なのか?
やりかたは既に
>>403 に書かれてるぞ。
> [krkr.eXe を krkrconf.exe のアイコンにD&D] これ初めて知った 一々フォルダ辿らなくて良かったのか、なんという事だ
410 :
sage :2012/03/08(木) 07:03:17.97 ID:Ki8C0egQ
>>408 >>409 > [krkr.eXe を krkrconf.exe のアイコンにD&D]
言われて、その方法があるのを思い出しました。
いろんなサイトで一般的に書かれている方法しか頭に無く、その方法を繰り返して
応用と言うか他の手段を試すのを失念していました。
ありがとうございます。
メニューバーを自作の画像に差し替えようとしてるんだけど 弄る部分の取っ掛かりが見つからない。 何かヒントを貰えないだろうか?
メニューバーを非表示にするとか
アプリケーションのメニュー バーのことを言っているなら、あれはWindowsのGUIによるものだから
ネイティブプラグインから WinAPI を直に叩いてハック紛いのことをしないと差し替えるのは無理だろうね。
自分でデザインしたいなら
>>412 の言うように Config.tjs の menu.visible を false に設定して
TJS なりで独自のメニューを組むのが常套手段。
>>412 ,413
なるほど、あの表示はOSなのか。
どうりでsystemフォルダを探しても、バーの画像や指定が見つからないわけだ。
ありがとう、ちょっと難しそうだけど非表示にして独自のを実装できるよう頑張ってみるわ。
kagのタグである変数が偽になったら動作させるようなものってあるのでしょうか? またはtjsを使用すれば実装するのは可能なのでしょうか? 例 [eval exp="tf.hoge=true"] [tf.hogeが偽の時に処理したいもの]←tf.hogeが真なのでまだ処理させない ・ ・ ・ [eval exp="tf.hoge=false"]←このタイミングで処理を開始する
hoge.ksにでも処理したい内容書いておいて必要になったら[call storage=hoge.ks]するんじゃなんでダメなの?
>[eval exp="tf.hoge=false"]←このタイミングで処理を開始する 変数を自分で変えるんならこのときに一緒に呼べばいいんじゃないの? 頻発するんだったらマクロ化しちゃううとか
何か古いツクールっぽい発想の仕方だな あれで自作メニューとかやると、常時イベント監視させて、条件が揃うと動くような仕組みになるから 他の人が言うように、変数動かすならそのタイミングで走らせればいいだけだし キー押された時にするなら、キーにそのイベント割り当てればいい
TJS分かるんならwaittrg使えばいいんじゃないの
トリガ発砲するところで直接処理すればいいじゃん
377 に触発されて、自作の画像処理dllをマルチスレッド化してみた。 全然速度が上がらないから実測してみたら、CreateThread()や _beginthreadex()が思いのほか遅く、Core2Duo 2GHzで一回あたり 0.15〜0.2msもかかるから、いろいろあわせて4threadだと生成する だけで1ms近くかかっていたことがわかった。 スレッドをいちいち生成しないように、スレッドプール作って実行すると、 CPUコア数(HyperThreadは効果薄かった)分くらいまでは大体リニアに 性能が上がった。 今の吉里吉里もマルチスレッド対応といいながら画面分割のたびに スレッド作ってるから、そのあたりをちょっと変えればもっと性能 出そう。 1msってたいしたことないと思うかもしれないけど、殆どの画面 処理は1ms以下で終わるから、それに比較するといちいちCreateThread() するのは遅すぎる、という話。 自作dllのマルチスレッド化を考えてる人への参考までに。
ほほう。 吉里吉里本体側に汎用でコア数分のスレッドプールもっておいて、プラグインから それの呼び出しを要求できるような口があれば一番いいのかな。
>>422 そうそう、作ってる間、そういうのがあればいいのに、と思ってた。
ただ、staticなglobalの関数を呼ぶならともかく、任意のクラスの
任意のメンバ関数を外から呼び出すのが難しいので、結局テンプレートで
作るしかないから、汎用化は難しそう。
void startThread<T>(T *instance, T::*func, void *arg);
みたいなプロトタイプならO.K.だけど、これだとスレッドプールは
クラスTごとに別になってしまうし。
# 別になってもスレッドが寝てるだけならパフォーマンスに影響しない
# からアリだけど。
結局、今はATLのCThreadPoolを継承して、上のような関数を間に
はさんでなんとかしているけれど、やっぱり少し使いにくい…。
シグネチャを統一したいなら boost::function とか使ったらどう? というか Boost.Thread を(ry
吉里吉里のプラグインインターフェース的には、呼び出し登録は全部C関数+voidポインタ一つ、 だけで、任意のクラスのメソッドよびたければラップ関数渡せ、でいいんじゃないかな。 他の機能でもけっこうそのスタイルのものあったと思うし 今の仕事の山が終わったらちと検討して組み込み考えてみるよ。 無事できたら取り込んでもらおう
吉里吉里本体のマルチスレッドは、最初の一回だけCreateThread()したら、あとは破棄せずにプールしてますよ?
と思いつつ、作った人にきいて&眺めてみたらプールしてますがな>マルチスレッド描画 既定値とずれてるときに増減してるだけで、通常はすっとばされるはずだからこれは誤差の範囲じゃないかな…… 以下を stub 側に公開すれば事足りそう GetThreadNum/GetAdaptiveThreadNum/BeginThreadtask/ExecThreadTask/EndThreadTask
ちなみに吉里吉里の描画スレッド処理がそこまで極端に効率の 上がらない理由は、スレッド処理が「レイヤの1命令実行単位」 になっているせいで、元々マルチスレッド化される処理の時間 単位がかなり短めなせいです。 特に吉里吉里はその部分はもともとコード最適化されちゃってるんで(^^; 重いアフィン処理を面積の大きいレイヤに対して適用すると理論値に 近い速度が出るようになりますよ。
GetAdaptiveThreadNum() は、実際にスレッド分割する必要があるかどうかを 実行する処理の処理ピクセル数から事前予測する関数なんだけど、処理ごとに 負荷がどのくらいかピクセル数に任意の「係数」をかけて計算するという極めて adhocな実装なので、公開してもあまり意味が無いかも…。 公開するなら GetThreadNum/BeginThreadtask/ExecThreadTask/EndThreadTask の4つで。
ちなみにGetAdaptiveThreadNum()の実装はこんな感じ。 static tjs_int GetAdaptiveThreadNum(tjs_int pixelNum, float factor) { if (pixelNum >= factor * 1000) return GetThreadNum(); else return 1; } 処理ピクセル数がfactorに1000掛けた値以下なら分割処理するように してます。 一番軽いFill処理でfactorが150くらいなので、割と大きな面積でない と分割処理がされないようになってるのがわかるかと思います。
こういう風になっている最大の理由は、「あらゆるPC環境でパフォー マンスの悪化を起こすことなく最大限のパフォーマンス向上を達成する ため」です。 Corei7などの最近のCPUならこんな回りくどいことをせずに「必ず分割」 してしまっても最大限の高速化効果が得られるんですが、特に古いマルチ コア環境の場合、スレッドを起こす処理だけでもけっこうなオーバーヘッド があって、処理面積が小さいのにスレッド処理を行うとむしろパフォー マンスが悪化するケースが多々ありました。 本当はスレッドを起こす速度を計測したりして個々の環境で敷居値を決定 するべきだったのですが、精密に測定する方法が思いつかなかったので断念。 吉里吉里コアは様々なPC環境で動かされるプログラムなので、古い環境で 実行速度が遅くなるような変更を加えるわけにはいかず、最大公約数的に 現在の実装に落ち着いています。
本当はマルチスレッドの効果を最大限に得るには、吉里吉里の描画 パイプラインを見直してスレッド生かしたまま複数の描画処理を並列 実行出来るようにするべき…なんだけどシングルスレッド前提の 吉里吉里の設計で後付けでそれやるのは難し過ぎました。 吉里吉里3は最初からそういう方針で設計しているようですね。
>>426-431 説明ありがとう、よくわからなかった部分がものすごくクリアになったよ。
そうか、TVPThreadListはプールのことだったんだね。これは俺の勘違い。
みんなごめんなさい。このあたりソースにコメント一言書いてあれば…。
でも、ExecThreadTask()で呼べるのはやっぱりグローバルな関数だけ
なんだね。そのうえstaticで外から呼べないから、クラスのメンバ関数
実行したいなら、やはり自分で何か書くしかないかー。
> 公開するなら GetThreadNum/BeginThreadtask/ExecThreadTask/EndThreadTask の4つで。
これは期待。そうすれば外付けdllの作者がいろいろやりやすくなるから。
…できればメンバ関数も呼べるようにして下さい。
メンバ関数を直接呼ぶ形式はC++的に無理があったような。 「メンバ関数へのポインタ」は、相互にキャスト不能です。 主に仮想関数の実装の関係。
吉里吉里3って本当に出るの? ていうかまだ作ってるの?
> 最初の一回だけCreateThread()したら、あとは破棄せずにプールしてます あれ、BeginThread()中でTVPThreadListからpop_back()してるから、 スレッド数を減少方向に変更する時は削除してるのではないの? なので、いろいろ実測してみた。 画面が複雑でいろんなサイズの画像が混在する(処理毎にスレッド数が 異なるようにした)上でレイヤ毎に処理すると、それぞれの処理のために BeginThread()でスレッドの作成(削除は待たないの?)が頻発してて、 やっぱりここはネックのひとつになってるみたい。スレッドプールがひとつ しかなくて、これを大きくしたり小さくしたりするからじゃなかろうか。 単純に「小さくしないようにする」だけで、結構マシになった。 スリープ中のスレッドが殆どリソースを食わないなら、いっそ減少させなく てもいいかもしれない。どうせ今最大8までに制限されてるし。 ほかにデメリットあるかしらん。 > 「メンバ関数へのポインタ」は、相互にキャスト不能です。 そう、だから自前のスレッドプールテンプレート作って、処理(というか クラス)毎にスレッドプールを別に持った方がいいかな、と思い始めたのです。 幸か不幸か今自前のはそうやって実現しちゃったし、これなら 外付けで実装できるし。「休眠スレッドはリソースを食わない」が 前提だけど。
あれ、プールするスレッド数は「実際に処理するスレッド数」じゃなくて 「吉里吉里に指定した描画スレッド数」を基準に決めてるはずなのですが…。 プールの増減が起こるのは理屈としては、drawThreadNumプロパティを変更 した直後の一回のみ、のはず。
あー、わかった、テスト用にdrawThreadNumを内部でいろいろ変えてた
処理が間に挟まってた。はずすと確かに、性能的にはスレッド減少
させても大丈夫になった。
>>437 指摘ありがとう!
はからずもCreateTread()が重いことはまた確認できてしまったので、
自前のdllはやっぱりスレッドプール自前で持つようにしようかなぁ…。
>>433 任意のメソッドをC関数にラッピングするだけなら
template<class T>
struct MethodWrapper {
MethodWrapper(T &instance, void (T::*method)()) : instance(instance), method(method) {}
T &instance;
void (T::*method)();
static void callback(void *param) {
MethodWrapper *self = (MethodWrapper*)param;
((self->instance).*(self->method))();
}
};
こういうテンプレート作っておいて
class A;
A a;
MethodWrapper<A> wrap(a, &A::method);
entrycallback(MethodWrapper<A>::callback, &wrap);
こんなかんじで任意のクラスの任意のメソッド(ただし型は固定)に対応できるよ。
真の任意メソッド対応はパラメータのバインド処理も組む必要があるのでさすがにちょっとめんどくさい
それはさておき、公式のほうは公開メソッド化しておいたので、dee さんが次にコンパイルしてくれれば反映されます。
>>439 、他の皆様
いろいろありがとう!とても助かったし、勉強になりました!
テンプレートは、そんなかんじのものをすでに実装済み。もうちょっと
カッコよくできないかなー、と考え中…
枯れてるソースに深いバグ入れるリスクを負うくらいならはじめから描画にGPU使ったエンジン作ったほうがいいんじゃないの? 広く普及してメンテもほぼ止まってるソースにGPU使いたくないからマルチスレッドなコードを プロジェクト死ぬまでメンテするとか割りに合わないと思うんだけど。 TJS以上のことをするには吉里吉里は足かせになる。
そーだねえ PC版吉里吉里は基本もうこのままでいいんじゃないかなあ、 せいぜい各自のプラグイン拡張くらいで 吉里吉里3が掲げているマルチプラットフォームも 吉里吉里Javaが成功すればできそうだし
>>441 意味不明。
CPUエンジンがマルチコア対応すすめるのはむしろ既定事項じゃん
誰も古いの使うなとか言ってないわけでどう拡張しようと自由だよ
進めるのはいいけどメリット薄いし、「とりあえず最新の落としておくか」ってやったら 既存の安定コードまでバグ混入してて原因不明の不具合に悩まされる可能性とかは 否定できないかな
杞憂だと思う。 古いの次々消すようなプロジェクトならともかく、履歴も明らかなわけで。 問題になるとしたら、履歴が dee たんちのマシンが死亡したら ロストする可能性があるのと、コンパイル環境が不自由なことかね>吉里吉里
>>441 いや、上のは自作dllのマルチスレッド化の話であって、もともと吉里吉里
本体がどうという話じゃないんだよ。たまたま使える関数をexportしてくれたら
便利じゃないか?というだけで。
それと、吉里吉里にGPU使うコード入れる方がよっぽどボード依存とかを長時間
背負うことになるから、それこそやらない方がいいと思う。自作dllに入れるなら
いいと思うけど。すごい基本的な部分だけ、ならなんとか…なるかも?
つついたことがある人ならわかるけど、やっぱりGPU使うのって互換性の
問題が大きいんだよねぇ。なんで3Dいっぱいの市販ゲームってあんまり
そのあたり問題にならないのか、逆に不思議。よっぽどエンジンが頑張って
いるのかなぁ。
KAG サウンドノベル形式と、下の方に2・3行のウィンドウ形式って 途中で動的に切り替えできますか?
出来ます
ありがとうございました
>>446 国内の3Dバリバリなゲームってほとんどコンソール向けじゃない?
海外のPCゲーはめっちゃ人と金かけてるイメージ
優秀なエンジンもたくさんあるだろうけど
451 :
名前は開発中のものです。 :2012/03/12(月) 14:57:25.02 ID:05jR40rs
シナリオ走らせると、鍵括弧とか濁点とか、記号で文字が数ピクセルずれるんだが。 文字を揃える方法ってありませんか?
等幅系のフォントつかえ
>>452 なるほど。試してみます。ありがとうございました。
TVPDrawThreadNum も外から使えるようにしてほしい…
マルチスレッドの話、便乗してテストしてみた。 色々試したら、SetEvent()→WaitforMultipleObjects()がやたらと遅かった。 代わりにクリティカルセッションにする(スレッドが一つでも動作している 間はクリティカルセッションにする)と、性能がリニアに上がる。 汚いのは承知の上で、TVPPongEventListを廃止して、 ExecThreadTask()の中、func実行前にTVPRunningThreadCount++ == 0 の時は クリティカルセッションに入り、ThreadLoop中のループ末尾に --TVPRunningThreadCount == 0 の時はクリティカルセッションから抜ける ようにすることで、性能は出そう。 ただ、これだと汚いのと、本当に今の吉里吉里2だけのチューンになるので どうかな、という気はする。 まぁ、一つの実験結果、ということで。
ああ、ごめん、書き忘れてた、WaitForMultipleObject() の代わりに EnterCriticalSection(&thread_runnning_cs); LeaveCriticalSection(&thread_runnning_cs); が必要。
どうせ Win用のチューン部だし、OKなような。コードあっぷしようぜ
検証用コード整理するからしばしお待ちを。
459 :
名前は開発中のものです。 :2012/03/16(金) 09:49:45.58 ID:qUbbXfrL
画像の一部だけ表示するってことできますか? 800*600の画面内に、400*300の画像を用意して、その画像の300*200の部分だけ表示させる、 みたいな。
>>459 image タグの clipleft, cliptop, clipwidth, clipheight 属性
461 :
名前は開発中のものです。 :2012/03/16(金) 10:36:44.97 ID:qUbbXfrL
ありがとうございます。 clipの位置を移動するってできますか? clipleftを0から100に移動 300*200の範囲内で、画像を動いているように見せるような使い方。
463 :
名前は開発中のものです。 :2012/03/16(金) 10:43:05.05 ID:qUbbXfrL
ああ クリッピングアニメーションでできますね 一枚の画像だからclipを動かすマクロ作らないといけないかなとか カットイン調べたりとか見当違いの方向やってました ありがとうございます
Layer のプロパティの clip〜 は、レイヤに対する描画処理に対するクリッピングだね レイヤ合成時の画面に対する単純なクリッピング指定は吉里吉里にはない。 別概念で、imageLeft, imageTop と width, height の調整で描画時のクリッピングは行うこができて、 image タグの clip〜はこれをいじるためのパラメータ。まぎらわしいけど別物 レイヤの配置関係プロパティは以下の3グループでそれぞれ目的が違う。 画像データサイズ imageWidth, imageHeight 画面上での表示領域 left, top, width, height ←この width,height によってクリッピングされる 画像の描画オフセット imageLeft, imageTop あくまで left, top, width, height 中に画像が出る、という仕様で、 それぞれのプロパティをその範囲に画像が無い領域がでるような値にしようとするとエラーになる
465 :
名前は開発中のものです。 :2012/03/16(金) 13:36:17.50 ID:qUbbXfrL
アニメーションさせようと思ったら 画像が多くてパターンも作りたいので一個一個asd作るの大変だなと 結局同レイヤ上で同画像のclipleftとcliptopを60msで変化させて表示し続けるマクロ作りました すんごい力技だと思うので多用はできないなぁ
ぐ、すまん、最初から image タグの話だった
467 :
名前は開発中のものです。 :2012/03/16(金) 13:45:48.79 ID:qUbbXfrL
折角調べてくれたのに申し訳ない *loop [image storage=&mp.storage layer=1 page=back visible="true" top=200 left=60 clipleft=&tf.left cliptop=&tf.top clipheight=300 clipwidth=200] [eval exp="tf.left+=1"] [eval exp="tf.top+=1"] [jump target="*loop_1"] みたいなやりかたって邪道なのかな 探してもあんまり見たことない
>>467 邪道というか、image は毎回画像がロードされるので無駄。
asd の clip 指定は画像ロードは一回だけなので軽い。
asd を自動生成するようにするか、あるいは、あー、kag には imageLeft/imageTop をいじる口がでてないのか
Override.tjs に
AnimationLayer.setOptions(elm) = function(elm) {
global.KAGLayer.setOptions(elm);
imageLeft = - +elm.clipleft if elm.clipleft !== void;
imageTop = - +elm.cliptop if elm.cliptop !==void;
};
こんなかんじで口を足してしまって、
[layopt clipleft=&tf.left cliptop=&tf.top]
としていじれるようにして、ロード以降はそれを使うと良い。はみでるとエラーなんで注意な
469 :
名前は開発中のものです。 :2012/03/16(金) 13:54:47.05 ID:qUbbXfrL
>>468 やっぱり無駄ですよね。
Override.tjsのやつやってみます。
こういうときはsuper〜って書くんじゃなくてglobalからもってくるのかぁ。ほー。
[emb exp="f.単価=f.単価/2"]円 と表示をしたいのですが、小数点以下は出したくなく四捨五入したいです。 過去ログで「"%.2f".sprintf(n)」と書くと分かったのですが、この[emb]タグの場合どうやって書けばいいのでしょうか?
>>471 f.tanka=Math.round(f.tanka/2)
473 :
471 :2012/03/16(金) 19:54:23.54 ID:fCgVRa70
>>472 ありがとうございました!
とても助かりました!
レンダリング済みフォント作成ツールってフォントを改変して再配布することになるから フォントの利用規約上使えないことが多いね パラメータなんかを表示するために数字0から9まで並べた画像作って切り出して使うのも 「フォントの一部を取り出して再配布」に当たるのかな 規約読むのに疲れてきた
画像化したのは多くの場合大丈夫でしょ ダイナとかは画像化すらダメなことが多いから注意必要だけどさ レンダリング済みフォントは基本フリーフォントと小塚くらいに しといたほうがいいかもしれないが
絵の素材として使うのなら大抵OKだけど、ゲームテキスト用の切り出しは、たとえ画像化でも フォントデータの改変しての再配布に相当するので多くの場合駄目だよ。0〜9まで、ぐらいだと 判断はわかれそうではあるけど、逆にそのくらいなら自分でまるごとつくったほうがいいんじゃってことにも 基本は明示的にOKとされているもの以外は危険と思っておいたほうがいい 今だと、IPAフォントと、Androidフォント(シーダ/マルベリ) はライセンスはまもれば安全に使えるかな。
「擬似フォント的な使用は禁止」とかあると画像切り出しも駄目っぽいよね 数字は欧文フォントで何でもOKなの探すとして 和文フォントはやっぱりプレイヤーのパソコンから選ぶのが無難かな
でも今なら >IPAフォントと、Androidフォント(シーダ/マルベリ) は普通に良い感じじゃないか?
うん。addFont プラグインつかえば、レンダリングせずにそのまま ttf を xp3 にパックする形でも使える
ただ配布形式のせいもあって、ライセンスをどう表記するかがややこしい気もする>Androidフォント どっかに使用例あるかなあ
IPA明朝とゴシックならただ文章を表示するならMSでいいかなあと androidフォントは恥ずかしながら検索かけても公式の配布ページや利用規約がヒットしなかった けど読みやすさとデザイン性がいい感じな気がするので見つけられて条件が合っていたら考えてみます ありがとう
フォントなど何でもいいんです! お偉い方にはそれが分からんのです!
いやーそれなりには雰囲気違うと思うわ MSゴシックでデザインしてみりゃわかる
485 :
481 :2012/03/17(土) 21:04:22.60 ID:RcXolvXk
丸ゴシックはいい味でるね
単なるMSゴシックよりは手軽に高級感出せると思うわ
吉里吉里2ってコンパイラ何使ってるんですか? 無料でコンパイルできる環境ありますか?
Releaserのおすすめ設定ありますか? 詳しく説明しているサイトがあれば教えてください
>>488 公式には Borland C++ Builder 5
6, 2006, 2007 でもコンパイル可能ながら、いずれも入手困難。
フリー公開されていた Turbo C++ Exproler (中身は実質2006) でも
コンパイル可能だがこれも公開終了していて新規入手は不可能
それより後の版(2009, 2010, XE, XE2) は確認されてないが、2009から
文字列の扱いが変わってるらしいので手直し無しでは通らない可能性大
>>490 よくわかりました。
ありがとうございます。
>>490 c++手に入れたいなら
確かVisual Studio 2005が永久無料配布宣言してなかったけか?
VC++系では吉里吉里本体ソースをコンパイルできないだろ、たしか。 VC対応を試みたのがブランチにあったけど、あれって結局どうなったんだろう。
俺も吉里吉里コンパイルしてみたいけど環境が手に入らなくて悲しい 吉里吉里 Java が完成したらそっちいじるのもありだけど、できればオリジナルを触りたいし なんとか手軽にコンパイルできるようになればいいなぁ
仮想機械上でゲームとか()
わりと一般的な技術になったよね>仮想機械上でゲーム
Javaアプレットの時代から思うとフラッシュゲーの進歩凄いよな
スマホとかのモバイルが発達して来るから、むしろこれからの技術だな。
baseレイヤーにはoperateRectのomDodgeで描き込めるのに、layerレイヤーに描き込むとおかしなことに。
どのプロパティをいじればいいんでしょう?(2chの行数制限のため改行をケチってます)
http://www.dotup.org/uploda/www.dotup.org2801900.zip.html class MainWindow extends Window {
var base; var layer; var sprite; var timer;
function MainWindow( width, height ) {
super.Window();
setSize( width, height ); setInnerSize( width, height );
base = new Layer(this, null);
base.loadImages("back.jpg"); base.setSizeToImageSize();
layer = new Layer(this, base);
layer.setSize( width, height );
layer.fillRect(0,0,width,height,0x3300ff00);
layer.visible = true;
sprite = new Layer(this, base);
sprite.loadImages("sprite.png"); sprite.setSizeToImageSize();
timer = new Timer(timerCallback, '');
}
function startProcess() {
timer.interval = 100; timer.enabled = true;
}
function timerCallback() {
if(Math.random() < 0.5) base.operateRect(Math.random()*800,Math.random()*320,sprite,0,0,32,32,omDodge);
else layer.operateRect(Math.random()*800,Math.random()*320+320,sprite,0,0,32,32,omDodge);
}
}
var win = new MainWindow(800,600);
win.visible = true; win.startProcess();
>>499 omDodge とかはαが配慮されてないので ltOpaque なレイヤ以外には基本使えない
>>500 そうだったのか……
ありがとうございます
>>501 本来不透明な親に対してリアルタイム合成するためのものだからね>合成モード
dest 側で描画前にholdAlpha しておけば合成先の最初から不透明な部分の結果を残すことはできるよ。
パフォーマンスはもちろん落ちるけど
どうも 色々試してみます
質問です。 rclickの改造ですが、セーブ・ロード画面に現在のいる場所を追加したくてf.placeを足しました。 うまく表示できたのですが、Aの場所でセーブ後Bの場所に行くと表示がBの場所になってしまいます。 f.placeとして現在の場所を取得してるんだからそりゃそうかとも思いましたが、 どのように他のデータと一緒にf.placeも記録?していけばいいでしょうか? よろしくお願いします。
「その時点での現在の場所」を記録した別の変数にすればいいと思う 現在の場所はtf.placeに入れといてセーブのときf.placeに代入 ロードのときはf.placeからtf.placeに代入とか あるいはセーブラベルの横のコメント書くとこに入れるとか これだとセーブ確認で「f.place(セーブデータの場所)」に「f.place(現在の場所)」をはさみますか? と聞かれるようになるのでわかりやすいかも
ってごめんf.placeじゃやっぱだめだ配列作ってnumで指定しないと その場合// 栞の保存名を表示ってとこを参考に出来ると思う
吉里吉里でADV以外を作っており、そのサンプル的なソースを公開しようと思っています。
自身のブログで公開するものなのですが、15で紹介されているアップローダーを
使用しても良いでしょうか?
アップしたい内容はexeファイルを含むソース全部で、誰でもダウンロードすれば
その場で実行出来る様な形にしたいと思っております。
また、大変お恥ずかしい話なのですが、あまり掲示板を使用した事が無いもので、教えて頂きたいのですが、
こういったアップローダーは時間と共に消えてしまう物でしょうか?
■使用したいのアップローダー
ttp://upload.bokunatu.com/krkr/
使いたきゃ使えばいい 全体で50MB or 3000ファイル以上になったら古いものから消えてく
ソースとして公開して長期にわたって公開するつもりがあるのなら sourceforge とか github とか使ったほうがいいんじゃないかね
>>508 アップロードできるファイルのサイズは1ファイル最大50M
個数は3000個。3000を超えたら古いものから削除。
全体容量は最大50M*3000ってことだね。
とりあえずそこ利用しておいて、3000超えそうになってからまた置き場所考えたらいいと思う。
class A { var data; } var a = new A(); a.data2 = 1; TJSは動的なメンバの追加を許しているのでこのコードが通ってしまいますが、 一時的にでもエラーや例外が起きるようにする手段はありますか? function setData(id,newdata) { if(typeof this[id] == "undefined") throw new Exeption(id + "というメンバはありません"); this[id] = newdata; } みたいなメンバ関数を作っておくしかないでしょうか?
Scripts.setCallMissing()使うと存在しないメンバが呼ばれた時にmissing()よばれるようになるからそれ使う class A { var data; function A() { Scripts.setCallMissing(this); } function missing(set, name, value) { if (set) throw new Exception(); } }
おおどうも なんという隠しメニュー……
Scripts.getClassNames(obj) とかも隠し機能だな あと ScriptsEx プラグインで TJS2 実装的にはある機能でプラグインからは触れるけど、表の言語にはでてない機能がいろいろ生える
515 :
507 :2012/04/02(月) 21:20:37.89 ID:FG9VN6ju
>>508-
>>510 ご回答ありがとう御座います。
exeファイルを含める形ですので、間借りするのは悪いと思い(1M以上あるし)、
レンタルのアップローダーを使う事にしました。
こちらの方々には1作目のゲーム作成で大変お世話になりました、
この場を借りてお礼をさせて頂きます。
ごった煮さんとこで各種プラグインの「作り方」が公開されてる。 吉里吉里プラグインは全然資料が無かったから助かる。 トランジションプラグインの作り方も書いてくれるみたい。 いったいどこでこういう情報仕入れてくるんだろう…?
ソース中に普通に書いて有るぞ
C++の知識ないと辛い
C++じゃなくてTJS2使うやつのことか 作れてる人からすると とりあえずサンプルがあればどうとでもなるって感じじゃないかな
中味見られたくない関数とかDLL化するしか無いけど TJSは書けてもCとか無理です・・・
誰もお前の関数とやらなんか見たくない
まさかゲ製板でこんな頭の悪い絡まれ方するとか・・・
Cすら書けないのに自分のプログラムの権利主張するのかねえ TJSなんて誰が書いても似たようなものにしかならんだろ そもそも楽にわかりやすく書けるのがスクリプト言語の役割だし まあ素人丸出しのコード見られたくない気持ちはわかるけどね
つーか、TJSのコードはもっと公開されるべきだと思うね。 そうする事で、ひと工夫あるノベルゲームの量が増えるかもしれないし 増えれば市場も活性化。その中にツインテの美少女がいれば吉里吉里3も開発されるって寸法よ。 だから、515もドコで公開してるかわかるようにかけよ。 つか、お願いします。
TJSのコードとかXP3展開すりゃいくらでも見られ……
権利主張してんじゃなくて データを自前で別の値に変換して出力する関数だから、中味見たら簡単に改竄できるから嫌だなあ って事を軽い気持ちでたった二行レスに書いただけなのに、そこまで上から目線で 一斉に絡まれるような内容なのか? 「中味見られたくない」ってそこまで噛みつく話か? 背中蹴られて怒る俺の方がおかしいのか?
少なくとも
>>529 の反応は神経質だ。もっと軽く流せ。
別の事してたら落ち着いてきた そうする
あれだ、スルースキル身につけようぜって話でFA
まあ何だ、カジュアルハックされたくないという気持ちは分かるが コードなんて隠すどころか公開しても読まれないほうが多いしな。 商業かよほど有名か以外は。 俺も DLL のソースまで公開してるけどアクセス全然無いもの。
RPGとかSLGならちょっとだけ技術あるユーザーが「こんなのあっさりハックできるじゃん、 なんかやる気無くしたわー」ってなるのを防ぐためにXP3にまとめるくらいはいいかもしれないが 本気でやろうと思えばXP3展開すればカンタンに……っていうレベル
>>529 は神経質っつーか考えすぎだが
>>524 の
「Cすら書けないのに自分のプログラムの権利主張するのかねえ」は勝手に飛躍してるし
論理も破綻しているでござる
クソみたいな煽りに遅レスでマジレスとな!
xp3とか仕様公開されてるし本気出さなくてもクリアできる人は結構居ると思う まあそういう人は他人のをつぶさに見なくても大抵のもんは作れちゃうだろうけど
正直、ゲームやる側の時って、ハックできる事がデメリットにならないよな。 面白かったら解析やハックなんかしないし、それが原因で辞める奴って、 もっと下らない原因でもやめるだろ。
ならない は言い過ぎかな ズルできることが分かるとやる気をなくすタイプの奴もいる ○○のゲームを発売直後に攻略してやったぜ! →ふーんでもそれ誰でもハックできるよね みたいな そういう奴は誤差レベルだから無視しておkってのも当然アリ
誤差っていうかそんなのを気にしてやる気なくすプレイヤは「超」少数派だと思うし そんな奴の為にハック出来ないような工程を必死に考えて手間や時間をかけるくらいなら もっと純粋に楽しんでくれる人の為にバランスだったり調整機能だったりを工夫したい。
対戦機能があって、チートが横行すると困る時はちょっと話が変ってくるかな? あとはパスコード入れるタイプの課金認証を採用してたり。 コード隠すくらいじゃどうにもならんけど。 あとはあれだ。ちょっと有名どころのコード丸パクリしたらかくさなきゃってなるなw
>>540 だからXP3で固めるのが一番手っ取り早いでしょ
ほとんど手間暇かからないし、カジュアルハックは
できなくなるし
突然失礼します どなたか履歴に行く際、メッセージレイヤを 隠し、また戻ってくるときに再描写する方法をご存知でしょうか
544 :
名前は開発中のものです。 :2012/04/07(土) 13:48:21.76 ID:Tg8oq0uv
メッセージレイヤを非表示 ↓ ヒストリ呼び出し ↓ メッセージレイヤを表示 って流れのマグロなりTJSなんか書けばいーんじゃねーの
>>542 ちゃんと読んで欲しい、手間かけるくらいなら、って書いてる。
「XP3みたいに手間掛がからない程度で済ませるよ」って意味も含めてるつもりなんだが
そんなに読み取り辛い?曲解釈されてる?(´・ω・`)
>ハック出来ないような工程を必死に考えて手間や時間をかけるくらいなら だって手間っていっても二分で済むような手間じゃんw
ごめん、俺の言い方が悪いんだな。 俺の中では、XP3はハックも楽だしパックするのも手間のうちに入らないんで それ以上の工夫を必死に考えるならって意味で書いたんだ。
一般人にとってはXP3ハックだってそんなにカンタンなことでもないよ でも丸見えにしてた場合は 「うわこのゲームって中の画像も音も最初から全部丸見えじゃん、 この数字カネじゃないの? いじったら最初から1000000Gだwww なにこれやる気なくしたわwwww」 みたいなのが生じる可能性がちょっとはあるからな そういうちょっとの可能性を防ぐ場合、XP3にまとめるのが一番 手間と効果のバランスとれてる
現状、ちょっとググっただけでデータぶっこ抜きツールが出てきたりするから もうちょい強固な暗号化の仕組みとかあればいいのにとは思いつつ 吉里吉里本体がxp3読めなくなったら意味無いから、構造的に難しいのかな
・オープンソースである ・スタンドアロンで読み込める この二つの前提がある限り第三者の復号化を不可能にするのはどうあがいても無理だろ。
>・オープンソースである これは関係ないな。一般OSでスタンドアロン動作してる以上、必ずなんらかの手段で読める
そもそも完璧な暗号化なんてないからな かなり工夫しないとツライ ってレベルなら Fateみたいな奴じゃないか
魔法使いの夜、発売もうすぐですな。 体験版やってみたけど序盤からばりばりだった。 フォルダあけたら見慣れたファイルがあるのにこの動きは……もう真似する気にもなれないorz
まずは差分を作るところからだな。
>>533 スクリプトってマジでハックされやすいからな
その所為で機能に制限加えなくちゃいけないし
俺はそれが嫌だからC++勉強した
>>538 デメリットになるよ
セキュリティホールになりやすいから
ネット要素があるゲームとかだとちとまずいな
吉里吉里のスレでネットによるセキュリティホールの話されてもな。。。 間違っても、スクリプトでネット接続系の部分作る事はないだろ。
DeeたんがTwitterで下ネタ言い過ぎてリムられたからって鬱ってるw
相変わらずどうしょうもねえ奴だなぁwwwwwww
Deeたんはあれでいいんだよw
世の中にオタクは数多くいるがナチュラルに下ネタ連発して引かれるオタクは案外少ないと思う
シモネタっていうかキモいだけだからね。
あれが素だから仕方ない。
あれはああいう存在だと割りきるしかない。 すでに手遅れだ
リムりますね、Facebookでは今後もよろしくお願いしますねって人のtweetを晒した挙げ句 「Facebookでは関係続けるってひどくないですかー続けられないでしょ普通」みたいのは どうかと思うの
せやろか
うむ
570 :
こういう感じ :2012/04/09(月) 14:06:36.19 ID:Y0L7j5xe
こやま雪の下 @KYMdreieck @_w_dee すみません、こちらからフォローしておいてなんですが、シモネタとか頻繁に目にするの辛いので一旦リムーブさせて頂きます。水差してごめんなさい。他SNSとかでは引き続き宜しくお願いします〜 でぃー子 @_w_dee @KYMdreieck はいー んまあ合わない人とは合わないよな アイゼン伯爵閣下 @Count_Eisen @_w_dee すいません、伯爵も実は下ネタツイート辛かったので、フォロー外させてもらいます。フェイスブックの方でよろしくお願い致しますー。 でぃー子 @_w_dee @Count_Eisen はいー。FB最近みてませんが今度のゲーム会も気分がのらないので辞退させてくださいー でぃーさんをリムりたいひとはどんどんどうぞー 人間不信になってるところにひどい追い打ちだなぁもういいけど (ここで最初の2人のリムりますTweetをDeeたんRTする) 僕は会社や家と、それとプライベートとで人が変わるので精一杯で、もともと二面性とか裏でひそひそとか嫌いだし、プライベートでこれ以上人格増やせないので、見てらんないって人はフィルターするかリムるかでお願いします 二面性が嫌いって以上他のSNSでは仲良くとかちょっとないですねー でしょでしょ RT @kotsutsumi: @_w_dee FBの方でよろしくってのは、失礼ねー @kotsutsumi や、このふたり5年以上も前からの古い知り合いなんでなおさらいまさら?ってのもあり
一方今日のDeeたんはこんな感じだった でぃー子 ?? @_w_dee @nyatla 両手両足と口と目がふさがったら、たとえば、手で荷物を持って歩きながらしゃべる、だと、あと使える随意筋ってケツ穴とおまんこしかないんですよ!!!
>>571 この柔軟な思考から吉里吉里が生まれたのかと思うと感慨深い
俺もケツ穴の随意運動がんばってみよう
おまんこに随意筋無くないか?
括約筋なら
874 名前:名無しさん@初回限定[] 投稿日:2012/04/09(月) 17:50:11.03 ID:bviS2obz0
朝倉玲亜(水瀬玲亜)
>@hatuyume @HinaSakuragawa メーカーの作品で吉里吉里使ってるとか手抜き感半端無いよね〜、
>あれは同人レベルでやめとけって感じ。CIRCUSとかみたいに自社規格ちゃんと作れって思っちゃう。
https://twitter.com/#!/Reah_Asakura/statuses/187931191737987072 >でぃー子
>まずは独自精子から RT @Reah_Asakura: @hatuyume @HinaSakuragawa メーカーの作品で
>吉里吉里使ってるとか手抜き感半端無いよね〜、あれは同人レベルでやめとけって感じ。
>CIRCUSとかみたいに自社規格ちゃんと作れって思っちゃう。
>朝倉玲亜(水瀬玲亜)
>やば、吉里の作者にあの発言気付かれたΣ
>初音島の悪夢
>@Reah_Asakura まさか拾うとは思って無かったですよね
>桜川氷儚
>@hatuyume @Reah_Asakura ちょっきりびっくり
>朝倉玲亜(水瀬玲亜)
>@HinaSakuragawa @hatuyume ホントビックリです…まぁ、自分の作ったものが同人のみならず
>メーカーでまで採用されたとなれば気も大きくなるでしょうけど、あの短いコトバの中に
>「ならゼロから作ってみろ」という意図が隠されていそうです(苦笑
>桜川氷儚
>@Reah_Asakura @HinaSakuragawa にはは、確かにありそうですよね(^^;
>朝倉玲亜(水瀬玲亜)
>@hatuyume @HinaSakuragawa こっちも一応システム開発やってるんだけどね〜。
>当然ながら著作権が会社の所有になってるから明言できないだけで。
>>575 こいつはネタとかじゃなくて普通に痛いな
自社開発システムであることとシステムの品質には何ら相関関係はない
吉里吉里使用=手抜きって発想は根強くあるけど、程度が低い話だな まほよは手抜きなのかとw でも >まずは独自精子から Deeたん……
開発者って特化してる人ほどどっかしらネジとんでるもんじゃね? この程度普通に見えてしょうがないんだが。
こんな事言うと失礼だけど、朝倉って奴もエロゲメーカーかなんかなんだと 思うけど、紙芝居の独自システム作るのを鼻にかけられてもな。 一般的な会社なら、採算的に外部エンジン採用だろ、どう考えたって。
>朝倉玲亜(水瀬玲亜) @Reah_Asakura
>都内でひっそり生息する同人作家兼レイヤー。一時期はゲーム業界の末席にいたけど今は一般人、
>未だに間違えられることもありますが、業界については現役じゃないです。機会があれば戻るかも?
>あと、極々たまに毒吐くかも?(`□´)クワッ!!
>
>東京都区内(城西地区) ・
ttp://www.pixiv.net/member.php?id=1075157 >ai sp@ace アイスペース 晒しスレ1
>朝倉玲亜:傲岸不遜な仕切り厨。ネット界屈指のネカマトラブルメーカー。オン初最大派閥形成中。
KAGは理解できるけどTJSが関数・クラスあたりからぼんやりわからなくなるんだけど どうしたら理解できるようになる? せめて人が作ったのを読めるようにななりたい。
最終的にプログラム関連をやりたいのか、やりたくないのか。 やりたいにしても趣味程度なのか実戦レベルなのか。 「理解できるようになる方法」は沢山あるけどベストは人それぞれだから、 自分の希望や動機を添えると具体的なアドバイスがもらえるかも! 最終的に「読める程度」っていうのは中途半端で何の身にもならないと思う。
>>583 とにかくソースとドキュメント読みまくるのが結局は一番の近道
関数とかの基本的な知識とかについてはC等の入門サイトをあたってみてはどないかしら
>>583 >>4 のTJSに挑戦!なんかは他言語経験ない人でも
理解できるレベルに噛み砕いてあると思うが読んだか?
>>4 が一番まとまってると思うけど、
TJSで作られた巨大なKAGシステム
KAGで書かれたゲーム(+evalやembで出てくる短いTJSコード) +TJSで書かれたプラグイン
ほとんどの人はこの複雑な体系を「吉里吉里」だと思って始めてるわけで、いきなり
TJSだけでウィンドウを作る
っていうシンプルな構造になることにより逆に面食らう人も多いだろうな
まーでも、そこが得心いけばあとは根気の問題だからw 結論だけ知りたい気持ちをぐっと抑えてじっくりソース読めばめぐりめぐっていずれは……
わからないワードが出たら即調べることだろ。 そうしていけば最終的には「読める程度」にはなる。 書ける程度になるかは知らんがな
いずれにしてもTJSをゴリゴリ触るのは他言語経験者のほうがいいとは思うな 効率面でも、需要の面でも 部分的に学ぶならもう「f.hoge=4とかすれば[emb exp="f.hoge"]で4が出て、 ロードし直した後もそうなるんだよ! くらいの認識で十分かも ハンパに学ぶことが難しい
他の言語に触れたらTJSみたいな独自言語やりたくなくなるだろ 効率面でも、需要の面でも
いんや効率面ではいいでしょ なんといっても枯れててバグが少ない しばらく前ならプラグインやらで需要自体もそこそこあったと思う、 とはいえ今はノベルゲーム自体が斜陽になりつつあるからね
CとJSの合いのこみたいな言語なので大して独自でもない
594 :
583 :2012/04/10(火) 13:00:33.26 ID:+GM3ZrUE
沢山の回答ありがたい。参考にします。
メーターとか数値を画像で表示したい。
ちょっとしたことだからすぐできるよねーと高を括って
>>4 のサイトとか見たら
プロパティやクラスの理解で躓いてしまって
これはもっと基本的なことから学ぶべきだと思った次第です。
メーターとか表示したいと思う→TJSの書き方がわかんね →書き方がわかる→Layerがよくわかんね→Layerわかる →KAGのレイヤー構造がわかんね やることはカンタンでも、結構長い旅だったりするんだな 基本からつめていくと、Layerを継承してParameterLayer作って 「あれ?トランジションしたら消えたぞどうすりゃいいの?」って なったりする TJSの書き方勉強した上で、前景レイヤを立ち絵用よりさらに増やして 「メーター表示用レイヤ」と非表示の「画像確保用レイヤ」を作るとかが 近道だろうか しかし、そこに早い段階で気づくのは1から勉強していっても テクニックだけを勉強していっても難しそう
他言語で独自のグラフィクスライブラリとか作っちゃうとTJSはだるいよね
↑スレ的には誤爆っぽくないけど誤爆
ところで画像確保に特化したImageクラスとかってやっぱ今後もできないのかな……
>>594 みたいなことやろうとしたときに、絶対に表示することがないレイヤー確保して
レイヤーの親子関係の中に突っ込むって非常に初心者にとって違和感があるし
ムダも多いと思うんだけど
Cで書いてたらつなげるだけじゃね?
>>598 layerExDraw プラグインに Image クラスあるよ
KAGEXまで含めて基本にしていくべきなのかな layerExDraw単品で突っ込んでもいいんだろうけど
KAGEXのことは忘れた どうせ結局は自分にとって都合のいい環境を作るわけだし
単品でいいんじゃない? 線や矩形や円とかの描画とか、縁取り処理とか地味に便利なので、あれは誰か解説かいてもいいくらい
Subversionリポジトリから落とすってやり方が普通の人にはつらそうだから 初心者講座やるならそこで再配布もしたほうがいいだろうな ライセンス的には問題ないだろうし
その場合は更新のたびに入れ換えるマメさが欲しい所。 どこからともなく何年も前の吉里吉里orKAGorKAGEXもってくる人がいるので。 別に大して支障はないのだろうけどあんまり古いの使ってる人とは組んで作業したくないw
KAGEXって今そんなに頻繁に更新されてないから大丈夫だとは思うけど とはいえ講座ができた後、2年も3年も放置したらまずいことになる 危険性はあるだろうな
>>576 手抜きしてないメーカー例で使い回し巡業のサーカスを挙げてる時点でギャグだろ
絶不許 それはそれとして講座で再配布するなら 本体入れ替えると講座内容も改稿しなきゃいかんし 入門ってんならバージョンアップよりとりあえず要素を網羅するほうが大事じゃなかろうか つまりむしろ自分の講座で使ってるバージョンを確実に入手してもらうという流れというか
>>609 本体のバージョンがかわるだけでごっそり書き換える必要のある作り方を人に説くのはよろしくない気が。
微妙に話ずれるけど、KAGのMainWindow.tjsとかMessageLayer.tjsをちょこっと改変する方法の説明って結構難しいよな 他にtjsファイルを用意して、置き換えたい関数を自前のfunctionで書き換えるとかが一番いいのかな そろそろKAG自体の更新もなくなってきそうだし、さして問題にはならないかなあ
>>611 あのクソ長いスクリプトのどこをどういじったか知れないブツを渡されて「手伝え」とか「教えて」とか言われてどう思うかじゃない?
俺なら見放す
何の話かしらんが、このスレでもしょっちゅうあるじゃん MainWindow.tjsやMessageLayer.tjsをいじれば出来るような内容の質問 でも直接書き換えちゃうとKAGがバージョンアップしたときに割とめんどいことになるっていう
そんなの 初心者だと、ある種の気持ち悪い書き方で余計に混乱するかもしれないけど
>>614 のにちょっと被るかもだけど、Systemフォルダに入ってるTJSの中味を上書きするにはどうすればいいの?
例えばAnimationLayer.tjsのfunction loadAnimInfoに手を入れたいと思っても
Afterinit.tjsで「global.AnimationLayer.loadAnimInfo = function() { 〜」ってやって中味書き換えても
KAGから使用しようとするとエラーが出る
それだけじゃ分からんがな
やろうとしていることは間違ってないと思われるので 書き間違えか別の場所でのやらかしか、いずれにしろ 何らかのミスだと思われる
>>616 Afterinit.tjsじゃなくてoverride.tjsで書き換えないとダメだったという
オチだったりして。
結局吉里吉里3が出そうもないから求心力が落ちてしまったんだろうな 出てたらフォロー続けるだろうねw
>>620 3はUnityで作るかーってDeeたんが言ってた
吉里吉里3どうこうの問題の前にノベルゲーム自体がさほど話題の中心じゃなくなっちゃっただけだと思う…… まほよはどこまで頑張れるかな しかしまほよが大成功しても、まほよの人気であってノベルゲーム自体が復活するとかはなさそうな気も
質問です。当方初心者です。 first.ksにbutton graphicでtext.ksに飛ぶボタンを配置、 text.ksに飛んだ後、ひとしきり文字を表示。 text.ksからjumpでfirst.ksに戻ると、 first.ksに設置していたボタンが右下に大きくズレてしまいます。 背景以外の画像がすべてズレているようです。 どこかで設定したデフォルトの座標に戻っている?とは思うのですが、 検索をかけてもイマイチヒットせず。 どこをいじれば良いのか全く見当がつかないので質問させていただきます。 助言程度でよいので、どなたかご享受お願いします。
戻るときに[er]とか[cm]はさんでないの
>>624 確認したところ、jumpの前後にはerやcmが付いていました。
つける場所が違う?
>>623 text.ksでメッセージレイヤのpositionいじってない?
とりあえずfirst.ksに戻る位置に
positionタグでメッセージレイヤの位置やサイズを
再指定してみたらどうだろう
>>620 求心力()
そんなもんなくても業界の1/3が使ってるという現実。
開発者が大事なのではなく安定したソフトが大事。
業界ってエロゲ業界だよな……
そのエロゲ業界こそADV・ノベルのメイン市場だろw
ノベル以外で本格的につくらね?って知り合いに提案したらコストがきついなあって言われたのを思い出した。
>>626 おっしゃる通りでした…。
positionの初期化を忘れていたもよう。
あっさりと元の位置に戻ってくれました。
とても助かりました。ありがとうございます。
633 :
632 :2012/04/13(金) 07:02:36.32 ID:y/OcslF6
補足で質問ですが、 positionで位置を初期化するのは、text.ksのケツのほうにつけるのと first.ksの先頭で指定するのと、どちらが適切なんでしょうか? 違いが無いなら無いで良いのですが…
text.ks以外でもpositionが動く可能性を考えたら first.ksの頭で必ず実行されるようにした方がいいだろうな
その違いは今後の実装次第なので、自分で良いと思う・好きな方をまずやって、 それぞれのメリットデメリットが発生した時に実感した方がいいと思うでよ。 やってみても何も感じないならそうだったって事だし。 俺なら一連の内容見てる限りだとtext.ks内に書くけど。
636 :
632 :2012/04/13(金) 12:16:59.90 ID:3txsGpZC
回答ありがとうございます 今後、様子を見て選択していくことにします。 ありがとうございました。
ふるいわ
http://xfs.jp/dcCkF 吉里吉里のマルチスレッド処理、スレッド終了をEventでなくInterlockedで
待つようにして負荷を軽くして、今までの閾値の半分のピクセル数から
マルチスレッド適用するようにしてみました。
レポジトリでは multithread_lightwait ブランチで作業中。
Deeたんまほよに少し思い入れありそうだなw
みんなエディタなに使ってるの?
sakura
kkde
kkdeしか使ったことない
KKDEはどう見ても作りかけなんだけど これ以上のエディタが現状ないな
最初kkde使ってたけど検索・grep周りが貧弱で使いものにならないから 結局使い慣れたサクラ使ってる
正直KKDEなんて使っているうちは初心者だよな。 中上級者なら秀丸使わないと。
ボケるならもう少しやる気だせよ
kkdeとterapadだな。 結局は慣れだよ
kkdeに同封してるのって最新verじゃないけど皆は入れ替えてやってんの?
テンプレート生成機能的なのは全然使ってないからなあ .krkrprojファイルを目的のフォルダに移動させて起動してるわ
KKDE多いな 俺もだが
製作時にエディタ以外で何開いてる? 自分は吉里吉里、TJS、KAGのリファとごった煮のリファと和英辞典だ
explorer、リファレンス&開発用ドキュメント、winmergeとsshのコンソール、SVNクライアント 吉里吉里関連だけならこんなもんかなあ。
プロ乙
エクセルで画像と画像の差分とシナリオがどのくらい作成できてるかの進捗表を作って開いてる
twitter開いて遊んでる
なんかDeeたんが怨念渦巻くようなRTを連発してるぞw
DeeたんがまたRTやってるけど、世の中の理解度ってこんなもんなんだなあと思う なんか「独自エンジン=高度な機能でハイクオリティ」みたいな謎の信仰が存在してるのはわかった でもたぶんこの手の人たちに限ってどうせ商用のエンジンとか触ってないんだろうな……
お、かぶったw
「演出すげーけど価格の割にボリューム少なすぎるだろ あと演出のせいで2年延期とかふざくんな」って 批判が結構でてるときでもあるし、Deeたんあんま暴れないほうがいいと思うの 一応エンディングで名前クレジットされてたし
ええーそれって吉里吉里のせいなのかー!? こういうのって吉里吉里よりもまほよの演出に適したエンジンがあって初めて成立する話だよなあ
吉里吉里のせいじゃないよ でもまほよ関係でDeeたんが暴れるとまた地味に面倒なことになりそうだしさ ALcotの人と絡んだときも地味に晒されてたし
「ニトロプラスのエンジンの方が吉里吉里2なんかより優れてる(キリッ」ってだけっしょ。 儲みたいだしw それよりも俺は吉里吉里2のサポートがめんどくさいとかのほうが訳分からん。 問題出る部分も対処もノウハウも独自のもので一から構築するほうがよっぽどだろ。 ぶっちゃけFateの時はいろいろ問題も出てきたけど、まほよで問題になってるのって ドライバ更新もしてないような初心者と、負荷でハードが飛んでるボロPCだけ。 あれからもう8年。プログラム的には枯れてるし。
暴れるって子供じゃないんだから
Deeたんの行動パターンは割と(ry
そういや演出関係といえばLittleWitchのFFDは実際に触ってみたいエンジンだったな もう活動してないみたいだけど、UIの凝ったデザインと相まってすごく好印象だった どんなスクリプト記述するのかすげー見てみたい
LittleWitchのFFD System = 天狐のTENCO System
今度はごう先生がつぶやいてるけど、 >まほよを吉里吉里でやるようなものでない的意見をちらほら見ますが、光効果合成はDX11.1以降(=Win8)でやっと標準になる機能で、 >現時点のユーザ環境想定すると吉里吉里(CPU系エンジン)以外での対応は非現実的。吉里吉里でも妥協で合格ラインで、あれだけ >延期してなお3年早い感 今回まほよが遅れた理由とコレって微妙にずれてるんじゃ……
>>672 >今回まほよが遅れた理由とコレって微妙にずれてるんじゃ……
そういう意味じゃネーヨ……と。
日本語勉強しなおして鯉。
誤解されそうな表現ではある
界隈の人はしばらくまほよについて延期って単語避けたほうがいい 特に演出に絡めた話の場合
吉里吉里はいい風評被害じゃねーかw
まほよの演出なんてどうでもよくね? 話を楽しむ作品じゃん。
私見だけど「まほよの演出すごい!」が転じて 「吉里吉里とかいうフリーソフトでこんな演出できるなんてすごい!」に、 そして「もっとすごいソフト使ったらもっとすごい演出ができるはず!」みたいな 善意にもとづくものの、何かアレな論調になってしまってるのではないだろうか
このスレ的には文章より演出部分に反応すべきじゃないか マルチスレッド吉里吉里が大々的に使われた最初のケースでもあるし、 その理由は演出の重さだろうし
マルチスレッドだとどうすごくなるの?
重い描画処理がマルチコアのマシンだと軽くなる
すみません、花火や何か画像がスプラッシュするようなプラグインってありますか? 多くの小さい画像が一点から広がるようなのです。
逆に言えばシングルコアだと重くて話にならない。 まぁ現時点でシングルコアとか化石PCだとVGA周りも問題あるしね。 物理メモリも少ないだろうし。 サポートBBSでCeleron 3GHzのi915内蔵VRAM共用なのにメモリ512MBとかで「起動しません」とか。 正確には「既に起動していますって言われる」って起動に時間かかってるだけなのを待ちきれなくて 二重起動してるとかさw
CPU系エンジンだとちょうど体験版が出たばかりの「すぴぱら (minori)」がかなりCPU依存だね。
メモリ帯域も含めた総体って言ってはいるけどCore iシリーズが推奨。
「いい物を作るためには妥協しない」とか言って。引用長いけど正確さのために。
> また、このスクロール演出部分が最もマシンパワーを必要とする為、少々旧仕様のPC構成では、
> 重く感じられる場合もあるかと思います。ですが現状で最高のクオリティを目指すのは、
> エンタテインメントの制作としては当然の姿勢かと考えております。
> 現に、最新のスペックを持つコンピューターをお使いの皆さんがいらっしゃる訳で、その方々に
> 「低いスペックでも動くように、演出効果をショボく抑えちゃいました♪ テヘペロ」とは、
> やはり申し上げる事はできません。
> こうしたPC等のテクノロジーは、かなりの速度で高機能化 / 安価化が進むものです。そんな中で、
> 後ろを見ていては、面白い事はできないものです。
> 「世の中が後から付いてくるさ!」と生意気な事を申し上げるつもりは毛頭ございませんが、
> よろしくお願いいたします。
ttp://www.minori.ph/lineup/sppl/lineintro.html でもこんなこと言ってもそれに付いてこられるユーザーなんて極めて限られるから
結局Direct3D使ったあまりマシンパワーに依存しない(それでもCore2Quad以上くらいを想定)バイナリを
テストしてたりするのが現実だけど。先行のファンディスク(すぴぱら NICE TO MEET YOU!)用で。
GPU系だと↓こんな必須条件の新エンジンを投入してきた「この大空に、翼をひろげて (PULLTOP)」
> ・最大テクスチャサイズが4096×4096以上である。
> ・ピクセルシェーダー2.0が利用できる。
> ・2のべき乗以外のサイズのテクスチャーが利用できる。
ttp://konosora.jp/blog/download/1222/ こっちも結局「軽量版を検討」とか言ってるけど。
ネトゲだと推奨環境満たす為にPC買い替えとかしてくれるのに、 このてのゲームだとアナウンス丸無視で信じられないようなスペックでサポートに迷い込むよな。 Win95マシンやネットブックで起動しようとしたり。いじめかよって思う。 週アスとかは今時のギャルゲの為のPCスペックはこんなもんって記事を書くべき。
>>684 なんてこった、俺の思ってる以上に世界はとんでもないことになってんだなw
そこまでいくと本当に必要なのか、代替手段がなかったのか?って感じだな。
minoriは気にしちゃいけない。 会社コンセプト自体がアレだし(いい意味も含む)
演出関係でがんばってるメーカーは延期問題で燃えてるとこが多すぎ
KKDE2はもうバージョンアップ無いんですかねえ
サイト見たら何か新しいの作ろうとしてるようだった 忘れられてなかった
理想的なエディタってどんなん?
エロゲにハイスペック求められても。ってのはユーザー側としてもあるんだろうが、 メーカー側も、WIN95とか2M以下のメモリとかは諦めてくれって感じだろうね
メモリ2MB以下とかどう見てもDOSマシンだろ
>吉里吉里ガシガシ作ってたときはロングストレートロングスカートが好きだった 俺もうDeeたんのこと信じられなくなりそう……
Deeたんマジ小物wwwwww
>692 英語版95でさえも4MiBは要求してたような。
まほよプレイしてたらDeeたんへの賄賂みたいなキャラが出てきたんですけど
む ネタバレの気配 俺は帰らせてもらうぞ
>>684 すぴぱらはあれはやってることの割には重すぎると思う
701 :
名前は開発中のものです。 :2012/04/15(日) 22:16:39.19 ID:VRJpc/tk
ユーザーがしょぼい環境で居座り続けるのは業界としてどうなんだろうな
程度問題かと Fate発売のときに重いと感じるユーザーがいたのは、当時の環境考えると 仕方がないレベルだっただろうし
>>701 ユーザーって主にエロゲを嗜むユーザーのこと?
これまで作ったものをCeleron700Mhz、WinMeの環境で動作テストしてたんだけど 動画を再生させようとするとさすがにきつくなってきたわぁ
>>693 分かってると思うけど2Gの間違いね。
>>701 一部除いて大半のエロゲは、市場のPCの9割で動くんじゃね。
ぶっちゃけ、2Gのメモリがどうのと言ったけど、実質2Gのメモリ積んでる様なPCなら
今年発売のエロゲの9割は問題なくうごくっしょ。
かぐや姫studeioを使っている俺は少数派なのか
MBとGB間違った上に、以下と未満を間違えるのはやめろw
あ〜ほんとだ、アホですまん
俺はハイエンドゲーとロースペックゲーがガラパゴスのように混在してる業界が一番健全だと思うなあ。 作りたいもの作ってそれを嗜んでくれる人がいるっていうのは幸せだよ。 ハイエンド作りたい人にとってはハイクラスの環境が増えてくれる方がいいんだろうけど、 日本限定で展開する場合、ゲーマーではなく普通の人が使ってるPCのシェアを思うと、 全体ではロースペックに配慮してる方が市場的に可能性があると思う。
そのガラパゴスの使い方は正しいのか?……
日本のPC市場は9割がエロゲで、その内の9割がノベルって感じの市場だし。
ユーザーのPCスペックに悩んでるメーカーのが少ないじゃないかな。
>>661 この手の信仰はオタ界隈に異常に多いよね。
製作板のC++信仰とか。
なぜかTYPE-MOONはFate出したときもまほよ出したときも悩んでるみたいだけどねw まほよはエロゲじゃないが
>僕は最近吉里吉里スレみとらんけどちゃんと まほろさんはいまでもケツにいれた指の臭い嗅いでるかな。初期の頃はあれ僕がかきこんでたんだけど (^ω^;)⊃ アウアウ!! ⊂ミ⊃ ) / ヽ
>>712 俺もまさに今それを見てツッコミを入れようかとw
今にして思うと、DeeたんのTwitterのキチガイっぷりと同じ系統の書き込みだったな
>吉里吉里スレが初めて立ったのを知ったときは仲間と一緒に荒らしにいきました。なぜ荒らしたかというと、まあ2chって荒らされてるのが当然のところで、 >荒らされてないと荒らされてしまう。なので当たり障りのない荒らし方でまず荒らしておいた。のでしばらく平和でした。 そりゃあツインテニーソも嫁にきませんわ
ちくしょうw
アレって作者が書いてたのかよ・・・ずっと下品でイヤだったんだぞ
スルースキルを高めないとネットは大変だお
Deeたんはネットやらオタクやらの平均値をだいぶ超えたガイキチだからなw それなのにたまに鬱ってるしw
最近、吉里吉里使った有名なゲームでメンヘラのツインテキャラを見かけたんだ……
下品なのはいけないと思います。 あれ、まほろだったのか。最近AT-Xで配信しだしたから個人的にタイムリーなネタだわ。 しょうもない知識がまた増えてしまった……
吉里吉里の開発者ってかなりの変態なんだなw Nスクの開発者は知らんが まあ吉里吉里は使えるから開発者が変態のキチガイでも別にかまわんwwww
NスクはNスクでアスペっぽい政治オタ
kwidget どうよ
>>723 はさサで異様に嫌われてたり2xhにアンチスレ立ってたりするな
あの作者が何か発言するたびに内容と関係なく
粘着がバッシングしてる感じで気持ち悪い
>>725 でも実際内容がぶっとんでることも多いからw
>>726 あれ見ててフェミ関係者の印象が一気に悪くなったわー
まあスレ違いすぎる話題なのでおいといて、ひょっとしてこの調子だと
YU-RISの作者も強烈な個性の持ち主だったりするんだろうかw
クリエイターとか歪んでるもんだろw 吉里吉里にしろNscにしろあのくらいのプログラマなんてかわいいもんだよ グラフィックデザイナもおかしいけど、特にシナリオとか頭おかしいのばっかじゃん
>>727 Twitterの個人アカ見る限りでは人の良い感じ
しかしそのアイコンは吉里吉里採用作品のヒロインだが
それは良いのだろうかw
>僕はこのままではまずいと思う人には価値観押しつけまくりです、結果よく嫌われたりストーカー扱いされました Deeたんもみんなの忠告きいたほうがいいとおもうよ!
Deeさんに限った話じゃ無いけど、どうして皆こうも自己主張したがるのかねえ それもおかしな方向にばかり 作った物と作った人を100%分けて見られる人ってそんなにいないよ
>>731 僕は吉里吉里を作ってくれなかった良識人よりも
吉里吉里を作ってくれた変態Deeたんのほうが好きです
>>706 よう俺 自分用のKAGマクロ定義を追加しつつ現役
KKDEとどっちが良いかは知らない
開発終了だし工夫しないと入手できないしで
ユーザーが増える事は無いと思う
>自分の言いたいことは相手に伝わっているのかが不安でならない。確認しないと気が済まない。そんな性格が災いしていることがおおすぎて鬱。 >それは正しいようにもみえるけど、直さないといけないようにも見えてわからない。 Deeたんマジメンヘラw
けどわかるわーこれ 飲み会の後で「あの人にあんな冗談言ったけど悪くとられてないかな」とか 寝る前にふとんの中でいろいろもやもや考えちゃう
おい レスしてから気づいたけど吉里吉里関係ねえぞ
[cm]
質問なのですが、addFontプラグインの使い方が書かれたページはありますでしょうか。 吉里吉里+addFontで検索しても出てこないので…。 addFontに限らず、ほとんどのプラグインはリファレンス的なものがないようですが、 皆さんはどのように使い方を調べているのでしょうか?
デバッガでアセンブラ眺める
>>738 レポジトリに manual.tjs あるぞ
ここの作者面白いね!
>>740 リポジトリのsrc以下でreadme発見出来ました!
ありがとうございます。
変態の作ったツールで変態作品を制作するなんて・・・あぁん
見たところそのぶっ飛んだライセンスはGPLと互換してるみたいだし さらに言うとKAG部分はさらに緩いライセンスを定義してるみたいだからいいんじゃないか
WTFPL - Do What The Fuck You Want To Public License WTFPL−あなたが市民に望むまぬけが許可することをしてください
KAG2.x互換モードってもう少数派なんだな わざと改行させたい時にr使わずに視覚的に分かりやすいからそっち使ってるけど 今時の公開されてるプラグインとかスクリプトとか、みんなKAG3モードだから 改行とか自分で直すのめんどくさい
全部の行末に自分で\付けるよりは楽か
Deeたんが女に絡んでるw
ずいぶん余裕だな 吉里吉里3完成したの?
>>753 吉里吉里3の開発アシスタントをしてもらうニーソ少女を捕まえるための触手メカを製作中
>よし、触手の USB-シリアルブリッヂうごいた。
全然よくわかっていないTwitterができるより昔 よくわからないけど吉里吉里って硬派だな よくわからないけど作者も硬派で真面目な職人系プログラマーなんだろうな と思っていました。
信じて採用した吉里吉里作者がツインテニーソの3次女にドハマリしてオヤジ臭丸出しの下ネタをTweetするなんて……
吉里吉里3作ってないならもう作ってないって明言して欲しいんだけどな
>>759 着実に前進してるじゃん
まだメカ触手の段階だけど
前はこの触手を作るためのレーザー作ってたんじゃなかったっけ
USBで動くオモチャの名前が吉里吉里3なのか。
出来てからでいいじゃない。いくらでも選択肢がある時代に何を期待してるんだおまいら
一度吉里吉里に慣れて自分に都合のいい環境を整えると 他エンジンへの移住は難しくなってしまうという恐ろしいワナ
自分でも作ればいいじゃない
吉里吉里で作ったもので、別エンジンに移行しても生かせるような資産ってあんまない気がする モバイル移植くらいか?
吉里吉里で作ってあるゲームであればスマホに簡単に移植できますっていう会社にリソース一式渡したが、 ばりばりのtjsで書いてあったので涙目らしい
KAGってことだったのかw
>>766 ひょっとしてそれ去年くらいの話?
うちにも移植させてくれまませんかソースくださいっていうメールきたけど、
まさかtjs対応できてないとかねえわw
どうせTJS使って複雑な動きや演出したり凝ったUIにしたりのゲームは 今のスマフォじゃクソ重いorタッチじゃ操作しにくいわけで、バッサリ切った シンプルな移植のほうがいいのかもしれんなあ SLGとかを「簡単に移植できます」って言って「バリバリTJSじゃないですかー やだー」とか言ってるならキチガイだけどw
>>768 送ったのは去年です。
>>769 kagexとはいわないけど、演出やUIは殆どシステムとデータでやらせているので、
ksファイルだけみるとシンプルなタグしか残ってない。
挙動だけ追って移植すれば、スマホ向けなシンプルな移植になるかもしれないね。
「完全移植を目指してます」とか言ってたなぁ・・・営業の人。
>>770 たぶん同じ会社だなw
自分のソース汚いから恥ずかしくて無視してたんだけど、結果オーライだったかも
吉里吉里Javaもメモリ不足に苦しんでるみたいだし、 しばらくはまだ吉里吉里とスマフォの関係は 微妙な状態なのかも 3年くらいしたら変わるかな
なんでdalvik・ネイティブ共に8Mも使えて16M制限超えられる富豪環境でOOMだすんだ
日本語でおk
画面サイズと許可されてるメモリ量のバランスが全体的に微妙よね>あんどろ
>>775 ad[es]以降のZERO3も現行のandroidと同じ画面サイズでヒープがjava/native共通で6Mだったぞ。
それでもKAGでいうビデオ再生とかのH/W使わないと出来ないこと以外実装して
まだヒープ余るからメモリにリソースファイル置くためにzipデコーダ書いたくらいだよ。
他にリソース置く場所ないし。
>>771 うちにも似たメール来てたな。
怪しいと思ってスルーしちまったけど。
>>769 吉里吉里のSLGって、基本的に育成ゲームとかじゃね?
戦闘とかも無いのが殆どだろうし、スマフォで十分出来ると思う。
>>777 十分できるだろうけど、「ばりばりのtjsで書いてあったので涙目らしい」っていうからさw
779 :
名前は開発中のものです。 :2012/04/27(金) 21:24:27.60 ID:WounaLaP
吉里吉里製タワーディフェンスとかあったしあの類じゃないですかね?
まあその手の業者がナメてかかって涙目になったであろうことはわかるw
>>779 調べてみたら結構あったわ。
そのタワーディフェンス以外だと、巣作りドラゴンの元メーカーの人が作った
メイド育成ゲームは戦闘があるらしいし、戦略シミュレーションが最近同人出てるっぽいな。
改めて、吉里吉里って結構汎用性あるのな。
つか、同人の奴、しゅみれーしょんになってるのは間違いなのか、わざとなのか悩むw
> 触手は、三カ所に加速度センサーをつけるための準備中。 > これがつくと姿勢制御出来そうなものだがところがどっこい、 > 触手はヘナヘナで決定的な制御はかなり難しい。 > 機械学習でヒューリスティックにやりたいが、それにしても課題が山積である。 この調子だと完成はまだ先かのう
触手ができたら吉里吉里3が作成されると思っているならまだまだ甘い
つか、吉里吉里3を心配してる女が、ツインテニーソになって、Deeたん手伝いに 行けば、明日からでも吉里吉里3プロジェクトが動くんだから、誰か人柱になってくれw
最近のDeeたん女に絡みすぎワロタ
迷走なのか?、爆走なのか?……w
> ツインテニーソ娘紹介してください RT @ai_aisuke: RisseとTJSって何が違うのん? グッドコミュニケーション
また女に絡んでるw
お前ら学校や会社でガチで引かれるタイプヲチってたのしいか?
Deeたんは面白いのでアリ
開発者補正抜いても嫌いじゃない面白さ
野郎には好かれて、女子には引かれる。そういうタイプ。 隠すところは隠さないと。
野郎も離れて行ってるだろ
触手に好かれるから問題ないと思う
; ハート字マクロ定義------------------- @macro name=heart ;赤色の文字へ---------- [resetfont] @font color="0xFF0000" size="25" ;赤文字ここまで----------------------------- @ch text="&$0x2665" [resetfont] @endmacro ;ハートマクロ定義ここまで---------------- これでハート打ってるんだけど ハートサイズが小さくなるので見た目のハートの大きさを デフォルトの文字の大きさと同じにするとサイズ40になる しかもハートが上段に半分ずれて出ちゃう・・ どっか治すべき所とか 同じ症状の人がいたら対処法をplz orz
[graph]みたいなものをつかうのが一番確実じゃね 高さとかはフォントや文字サイズ等々にも依存するから、 仮に丁寧に調節して自分のパソコンできれいに見えるようになったとしても ユーザのパソコンでもきれいに見えるかどうかはわからないよ
>796 さっそくgraphでやってみました 今のところ不具合なく表示されてます ありがとうございました
今見たら説明書にある[graph]の使用例がずばりハートマークだな
吉里吉里で音ゲーとか、そういうユーザーからの入力を シビアに受け取って展開を変えていくゲームって作れるんでしょうか? 調べてみましたがいまいち実装方法が分からず、質問させて頂きました。 できるorできない、できないこともない などの回答でも結構です。 勿論詳しい情報を教えて頂ければ非常にありがたいです。
>>799 俺もそんなに玄人なわけではないが、吉里吉里でやるようなことでもないような気がする。
ふつーのアクションだシューティングだを作るならいけると思うけど 音ゲーまでいくと厳しい気もするなあ
吉里吉里製の音ゲーどっかで見た ContinuosハンドラでポーリングしながらsamplePosition見て判定してればいいんじゃね
音に合わせてが可能かは分からんが、移動する◎に合わせてボタン押したら 判定するとかなら楽勝。
音楽ファイルにループチューナでラベル仕込んでやれば楽勝? あれなら音屋さんでも編集できるし (どれぐらいの精度で作動するかは計った事ないけど) なおKAGオンリーでやるのは無理す
805 :
804 :2012/05/02(水) 08:11:23.10 ID:BTGb7d52
ごめん訂正。単純にそれだけだと'未来'に対する処理ができないや
向こうから打点グラフィックが飛んでくるとか、早く押しちゃった判定とか
ループチューナで作成した.sliファイルを用いて
>>802 かなあ
(で結局音ゲー作るの?)
stepmaniaがオープンソースだったと思う。
皆様沢山の回答有難うございました。
実のところ、音ゲーを作りたくて聞いた訳ではなく、
吉里吉里を用いたミニゲームの一つとして音ゲーのシステムを利用したものを
作成しようと思ってお聞きしました。
実際に作ろうとしているものは
>>803 さんのようなものです。
誤解を招くような例えをしてしまって申し訳ありませんでした。
皆様の回答を参考にもう少し調べてみます。有難うございました。
面白そう
わーいContinuousHandlerとかいう変なのをつかって透明度を周期的に変更させるスクリプトが作れたよー あとはマクロ化するだけだ……けどこれも結構修羅の道っぽいぞー 「ノベルゲームなんてkagだけで作れるしtjsイラネ」とか言ってた頃が懐かしい
>>809 KAGアニメーションからタイマー借りれば楽だよ
具体的には asd ファイル内で opacity 変更
>>810 その手があったか!とおもったけど、
asdの使用は最低限にしておきたいなあと思ってるので
ご指摘ありがとう。
loadで復帰したらどうなるかとか、裏表とか、気にしなくてもいい仕組みがあればいいんだがな
tjsに挑戦を見ながらプラグイン作ってるんだけど なんやこれスクリプトやのうてプログラムやないかい
スクリプトは「簡単」って意味じゃないのよ
tjsに挑戦見ても クロージャとコンテキストとincontextofがイマイチよく分からない
javascriptのFunction.prototype.call(thisObj[,argN...])と一緒
クロージャとincontextofはwindowzoom.ks見てちょっと理解した気がした
TJSでは関数を変数に代入することができるけど その場合、変数には関数の動作の内容(式とか文とかで書かれたもの) だけが保存されるのではなくて、 「その関数においてthisが何であるか」という情報も保存される たとえばlはLayerのインスタンスだとして var f = l.fillRect; ってすれば あとで別の場所でf(0,0,100,100,0xff0000)とかってするとlに色がつく これは変数fに、fillRectの関数の動作の内容だけでなく、 thisが何であるか(この場合はl)の情報も保存されているため こういうふうにthisが何であるかも保存していることがクロージャーで、 コンテキストっていうのはその保存されているthisのことで、 関数の動作の内容はそのままでコンテキストだけ差し替えるときに 使うのがincontextof だと思う
>>818 this はその実行時のコンテキストを指すためのものだから、
「this を保存」ってのはちょっと表現が微妙かも
「コンテキスト」はTJSでは実行時に変数を参照する場所のこと。
global/this/ローカル変数以外の名前はコンテキストから探して参照される
global はグローバル空間を指し示す名前で、this ってのはコンテキストそのものを指す名前
「クロージャ」は広義では「なにかしら付加情報をもった関数」ってことだけど、TJSの場合は、
関数が常にコンテキストを保持してるので、一種のクロージャになってる
incontextof は、指定した関数のコンテキストを書き換えた新しい関数を作って返す演算子で、
たとえばこういうことができる
var a=1, b=2;
var t = %[a:4, b:5];
function f() { return a+b; }; // 関数
f(); // グローバルの a と b が参照されて3を返す
(f incontextof t)(); // t の中の a と b が参照されて 9 を返す
TJSのオブジェクトは、生成時に、メンバ関数にそのオブジェクト自身をコンテキストとして差し替えたものを
保持するようになっているので、生成後のオブジェクトからメンバ関数を別の変数にひっぱりだしてきて
それを単体で呼び出しても、正しく元のオブジェクトの情報を参照して動くことができる
逆に、オブジェクトに新しいメソッドを差し込む場合は、obj.func = function() { ... } incontextof obj; と明示的に
コンテキストを指定しておかないとはまることが多い。
多くの言語では a.func() ってのは、「func をコンテキストa で呼び出す」という意味だけど、
tjsは「a.func を呼び出す」という意味しかなく、あくまで a.func にあらかじめ割り当てられてるコンテキストで動作するので、
a のメソッドとして登録したいのなら、a をコンテキストとして渡しておく必要がある
以下関連余談 ・コンテキストがオブジェクトの場合、変数が見つからなかったらグローバルから探して、それでも見つからなければエラーを返す ・コンテキストが辞書の場合、変数が見つからないと void を返す。グローバルを参照したい場合は global と明示指定が必要 ・名前指定なしの関数をそのまま、または incontextof null で明示的にコンテキストを null にすると、 「呼び出したコンテキスト」で動作するようになり、呼び出し元の中身をのぞき込むような関数を作ることができる squirrel という言語がTJS と概念が良く似てて、関数に任意のコンテキスト(squirrel 用語では「環境」) を割り当て(bind)できる。 ただし、tjs は標準でコンテキストを持つけど squirrel は標準では持たないという差がある TJS: メンバ関数はオブジェクトをコンテキストとして初期化され、メンバ関数呼び出し時もそのコンテキストのみで動作する squirrel: メンバ関数を内部から呼び出すときは this が、外部から呼び出すときは対象オブジェクトが環境として渡される。 ただし、関数に事前に bind されている場合はそちらの環境が優先で使われる
基本的にはプラグインとか「クラスの設計をあとでよそのファイルからいじる」 みたいなときに重要な機能ってことでいいかな
Deeたんはあんまゲームとかアニメとか見まくるタイプではなさそうだけど、 性格は漫画に出てきそうなキモオタを地で行ってるなあ
>>821 典型的な使い方の一つですね>クラスの設計をあとからいじる
あとは、C言語で「関数ポインタ」を使うような処理を再現しようとすると必要になってきます
ただ、TJSは、関数のコンテキストの差し替えはできても、今何が関数のコンテキストに設定されているかを
参照する口が無いので、必要ならネイティブプラグインを書いて口を増やす必要があります。
ScriptsEx プラグインの getObjectContext() がその用途だったり
え?冷笑だろw
俺もツインテニーソ欲しい
えろにゃん ? @ero_nyan
https://twitter.com/#!/ero_nyan @_w_dee の人物像は吉里吉里スレの認識で概ね間違いないように思う
@_w_dee 荒らしに来たら良いじゃないかwww
@_w_dee 降臨しないのか(´・ω・`)
@_w_dee の吉里吉里スレでの扱いはもはやネタの域だから大丈夫w
@_w_dee ツイート拾って笑ってるレベル 吉里吉里開発する気がないのはわかってるw
そして
>>824 に続く、と
吉里吉里開発する気がないのはみんなわかってるよ。 Androidがいつ死ぬのかとiPhoneはいつまで生き残るかとwindows phoneとwindows8がどこへ行くのかでまだあんまり動きたくないんだよ。
@buttonを作って ボタン押したら背景イメージ(イメージレイヤー)を切り替える方法ってどうしたら良いかな? @@button でボタン作る Aテキストは流れたまま進行@l@ しながらストーリー展開 B出来ればイメージ3つほどを押すたびにロータリー方式で表示したい・・ 画像1>画像2>画像3>画像1へ ぶっちゃけると 普通にテキスト進行しながら着せ替を行う感じ・・ @buttonじゃできないのかしら・・
吉里吉里3作ってないようだし吉里吉里に関するネタもなくなれば人も離れていくだろうよ
>>830 ユーザの気分次第で制服私服裸、とかやりたいわけね
シナリオの進行(KAG)と干渉させたくなかったら
(右クリックサブルーチンとか絡むとめんどくせーしな)
着せ替えルーチンをTJSで書くのが手っ取り早い
<first.ksあたりで>
@iscript
function kisekae()
{略}
@endscript
<シナリオファイル>
@button exp="kisekae()" その他略
kisekae()の中身は
Layer.loadImagesメソッドで画像を読み込むとか
服装の数だけレイヤを用意し、うちひとつだけをLayer.visibleプロパティで可視にするとか
着衣状態をシステム変数に記録すれば、ゲームを終了しても保存される
あとは吉里吉里2リファレンスとググりで何とか
類友という素晴らしい言葉があってだな TS系健全派魔法少女ナノメ☆るみぃ ? @lummy_ts しゅどくんと吉里吉里作者さんが手を組んだらすごいことになりそう。どっちもニーソ好きだし TS系健全派魔法少女ナノメ☆るみぃ ? @lummy_ts @_w_dee とりあえずニーソニーソ言っててニーソ教の教祖名乗ってたりとかニーソ同人誌とか目論んでたりとかとにかくニーソへの情熱がすごいひとだよ でぃー子@動く猫しっぽ制作中 ? @_w_dee 情熱だけならだれでも持てる。結果はなんだ、成果はどこだ。 RT @lummy_ts: @_w_dee とりあえずニーソニーソ言っててニーソ教の教祖名乗ってたりとか ニーソ同人誌とか目論んでたりとかとにかくニーソへの情熱がすごいひとだよ 京 秋人 ? @aki_kar @_w_dee なんだかミョーな人につかまりましたね…
正直作者の吉里吉里と関係ないツイート転載はわりとどうながい
835 :
名前は開発中のものです。 :2012/05/07(月) 21:34:56.43 ID:a98l30wC
黒画面からmpegムービーをフェードインさせたく 以下のように記述しているのですが中々上手くいきません。 [image storage="black.png" layer=0 page=fore left=0 top=0 visible=true] [backlay] [videolayer slot=0 channel=1 page=back layer=0] [video slot=0 visible=true loop=true mode=layer] [openvideo slot=0 storage="movie_01.mpg"] [preparevideo slot=0] [wp slot=0] [playvideo slot=0] [trans layer=0 method=crossfade time=800] [wt] 最初の画を白画像で試したところ、transタグは機能しているようで 白画像が表示された後、徐々に黒画面にフェードしていき (要は何も表示されてない状態になって) 動画が出てきてくれません。 何故かフェードアウトは上手くいくのですが・・・・・ 過去にほぼ同じ内容の質問のやり取りを見つけたのですが サンプルファイル付きで回答されていらっしゃるものの 大分前のやり取りなのでサンプルにもアクセスできず 行き詰まってしまいました。 どなたかご教示いただけるとありがたいです。 よろしくお願い致します。
スイマセン、上げてしまいましたorz
>> 836 トランジションのタグに selfupdate 追加 [trans layer=0 method=crossfade time=800 selfupdate=true]
[trans method=crossfade time=800] ではどうだろう。なんとなく。
835です。
>>837 >>838 お二方ともありがとうございます!
早速試してみたところ、まだ何か自分の理解が足りないのでしょう
上手くいきませんでした・・・・・。
背景か前景レイヤーを絡めてどうにか出来ないかとも思って色々試しているのですが
動画を絡めると変な事になり、中々思うようにいきません。
もう少し足掻いてみようと思います。
ありがとうございました!
動画は環境依存喰らうこともあるし、あまり演出に凝らないほうがいい気はする
気分でいわれてもなあ
とりあえずWMVの再生ではハードウェアアクセラレーション切らないと ちゃんと再生されない現象とか報告されて困ったことがあったなあ
Windows XPとか未だに使ってる馬鹿ユーザーいるから困るよなあ
女と見れば話しかけ絡みまくってセクハラトーク ……Deeたん昭和の男上司なんです?
アイコンが女だから女と言うわけじゃないと思うぞ そんなに女に絡んでるか?
いろんなところのサンプルの一部を書き換えてコピペしながらおっかなびっくり吉里吉里をいじってる程度の初心者なんてすが、もしよろしければ助けてください。 『吉里吉里プラグインとかごった煮的配布場所』さんの「どこでもセーブプラグイン改良版」を付けたかったんですが、エラーが出て動きません。 エラー内容↓ ファイル:first.ks 行:4 タグ:不明(←エラーの発生した前後のタグを示している場合もあります) メンバ”pop”が見つかりません first.ks4行目の記述↓ [call storage="SaveAnyWhere.ks"] 調べた結果、callしているファイル名を間違えていると上のようなエラーが出ることがある、というようなものを見かけたのですが、名前は間違っていませんでした。 『吉里吉里プラグインとかごった煮的配布場所』さんのところにあるきちんとプラグインが機能しているサンプルのスクリプトと何度も間違い探しのように見比べたのですが、どうしても自力ではなぜ機能しないのか、エラーがでるのかが分かりませんでした。 もしよろしければ、お力をお貸しください。
pop の実装は 吉里吉里2.29-dev.20070113 からなのでこれより古いと動かない。 最新版を使っているなら知らん
ありがとうございます。 やや古い本を教本としていたため、そこに付属していた吉里吉里をそのまま使っていました。 どうやらそのせいで動かなかったようです。
846です。 何度もすみません。 上の問題が解決したあとすぐに エラーが発生しました ファイル:01.ks 行:26 タグlabel(←エラーの発生した前後のタグを示している場合もあります) タグ/マクロ”label”は存在しません というエラーがでました。 勘違いでなければ、labelというタグは別のksの中で定義しており、 そのやり方も間違っていない……と思ったのですが、どうしても上手くいきません。 なにが原因なのか、分かりそうな方はいらっしゃるでしょうか。 (ちなみに取り付けようとしているのは『吉里吉里プラグインとかごった煮的配布場所』さんの「どこでもセーブプラグイン改良版」です)
SaveAnyWhere.ks内にlabelってマクロ定義があるけどそれと競合してるんじゃね
競合というよりマクロを読み込む前にマクロを呼び出してるんでは?
852 :
名前は開発中のものです。 :2012/05/09(水) 11:03:28.66 ID:+yrSH6ug
質問です。 二つのトランシジョンを同時に実行させることってできますか? たとえば、 1秒でルールを適用しながら、 そのうち0.5秒でクロスフェードする みたいなことです。
同じレイヤに対してなら原理的にできるわけない 別のレイヤならそれぞれトランジションを別に進行させることは可
854 :
名前は開発中のものです。 :2012/05/09(水) 11:23:09.66 ID:+yrSH6ug
ですよね ありがとうございました
あ、子レイヤをトランジションさせながら、親レイヤを別のトランジション、はできるはずだよ
856 :
名前は開発中のものです。 :2012/05/09(水) 11:55:12.67 ID:+yrSH6ug
子レイヤ! あんまり使ったことないからよくわからないけど、調べてきます! ちょっと光が見えてきました! ありがとうございます!
849です。 >競合というよりマクロを読み込む前にマクロを呼び出してるんでは? この助言でもしやと思い、first.ksで呼びだしていたマクロをシナリオ本編の冒頭へ移動させてみたところ、上手くいきました。 助言ありがとうございました。 ひとりで画面と何時間も睨めっこしていても、全然解決策が見つからなかったので、本当に助かりました。 ただ、上記の問題が解決して「どこでもセーブ」が機能したのはいいのですが、今度は一度「タイトルへ戻る」とまた、 エラーが発生しました ファイル:01.ks 行:26 タグlabel(←エラーの発生した前後のタグを示している場合もあります) タグ/マクロ”label”は存在しません というエラーが出てしまいました。 「タイトルへ戻る」は一度title.ksへ戻してから、再度「はじめから」を押して本編の(01.)ksへ飛んでいます。 現在、labelを定義しているマクロを呼び出すタグは01.ksの冒頭に記述してあるため、一度title.ksへ戻ってももう一度指示を受けてる……はずですよね。 このエラーはなぜ出てしまうのでしょうか。 そして質問ばかりで本当に申し訳ありません。 もう少しお力を貸していただけると幸いです。
呼び出しはfirst.ksでいいとおもう。タイトル画面(スタートアンカー)より前。本編冒頭だと起動→タイトル画面からロードした時にそこを通らないからエラーでるよ。 *start ;KAGプラグイン読み込み *title|タイトル @startanchor ;ゲーム変数初期化 ;タイトル画面描写 @s これでいいはずだけどなぁ。
>>857 のエラーはおそらく何度も再定義してしまわないようにプラグインが自前でフラグ立ててるからだとおもう。
面倒だからそのプラグイン読んでないけど。
config.ksでマクロ定義をセーブデータに含めるとしていると仮定。
起動→タイトル→01.ks
↓ マクロ定義。フラグが立つ
タイトルに戻る
↓ タイトルに戻るは専用のセーブデータなのでマクロ定義がタイトル画面の時点にロールバックされる
01.ks
フラグが立っているのでマクロ定義がスキップされる
[label]タグが未定義なためエラー
ってとこじゃないかな。
というかまずマクロ名の重複やめたほうがいい
>>858 >本編冒頭だと起動→タイトル画面からロードした時にそこを通らないからエラーでるよ。
このご指摘になるほど、と思い、下のスクリプトになるたけ似せてもう一度first.ksに呼び出しを置いてみました。
そうすると、今度はエラーが出ませんでした。
前回から変わった点と言えば、プラグインの読み込み前に*startがあるかないかくらいなのですが、first.ksの冒頭に*startがあるかないかで、そこまで変わってくるのでしょう……か?
>>859 全部理解はしていないのですが、なんとなくなるほど、と思う説明でした。
ただ、なぜか呼び出し位置をfirst.ksに戻したらエラーがでなくなりました。
>>860 マクロ名の重複、はたぶんしてないと思います。
ただ自分が「マクロ名」の意味を理解しきってない可能性もあるので、なにか変な勘違いをしていたらすみません。
個別のシーン定義をしてシーンを遷移させるシステムならこういうミスは起こらないな。 スクリプト書く人間にも状態と遷移を意識させることは必要か。 他のジャンルだと普通の設計だけどADVエンジンでこういう設計って何があったっけ?
なんというか初歩的なところで躓いた・・・ KAGEXでのメッセージ履歴表示、左右のマージン設定が出来ない。 MyHistoryLayer.tjsで、marginLとR指定するだけじゃダメなんでしょうか?
865 :
861 :2012/05/10(木) 01:42:20.81 ID:A+1ONJPo
色々自分で見つけられなくて恐縮です。 ご指摘の通りいじっていたらたまたまセーブ可能ラベルの前にプラグインを配置できただけで、 プラグインはセーブ可能ラベルの前に置いてはいけない、ときちんと理解していませんでした。 今のうちに頭に叩き込んでおきます。
866 :
861 :2012/05/10(木) 01:53:44.38 ID:A+1ONJPo
あまり質問ばかりしていると、ここはお前の面倒を見る場所じゃないと怒られてしまいそうなんですが、 また自分ひとりでは原因が皆目見当がつかない現象が起きてしまいました。 みなさんのお陰でセーブ&ロードができるようになったのですが、 そのロード画面の調子がよくありません。 ロード画面はタイトル画面からと、右クリックで呼び出せるようにしてあるのですが、 右クリックからロード画面を呼び出すとロードした日時と、ラベル名が読みとれるように表示されるのですが、 タイトル画面からロード画面を呼び出すと、その二つが読みとれません。 ただ、どうやらセーブデータ自体はそこにあるらしく、 なにもないところをクリックすると、ロード自体はできます。 呼びだしている場所は同じなのに、呼びだす起点が変わると見た目が変わってしまうのか。 素人の自分にはなにが起きているのか半日いじってもまったく分かりませんでした。 なにが起こっているのか、分かる方はいらっしゃるでしょうか?
どういう実装かわからんからエスパーするしかないけど 日付とラベル名表示してるレイヤが非表示になってるとか・・・?
>>866 どうやって実装してるかソースみせてくんないと何とも言えん
つか、もう誰かのソースをコピペさせてもらったら?
一晩も粘らずに泣きついてたら腕あがんないよ。
自分のソース眺めるだけじゃなく関連ドキュメントや他人のソース読ませてもらったり、できることは色々あるでしょが。
初心者のうちは一つの問題に三日は悩むべき。
カッコイイこと言ってんじゃねー
悩むべきっていうか、三日頭抱えないと分かんないわ、割とガチで。 ここ一ヶ月設定と冒頭のシナリオを何十回とタグ書き換えてる。早くシナリオ詰めに専念したいわ…。
>>866 余計なプラグインとかエフェクトとか全部とっぱらったロード機能を作り、問題を絞り込もう
どこでもセーブでトラブってた時のセーブデータを使ってた場合は削除しよう
どこでもセーブは、使わないのもテだよ。ユーザーにはメリット見えないし
3日悩むよりは手作業でも1日でラベル入れたほうがマシかもね
873 :
861 :2012/05/10(木) 10:43:30.83 ID:A+1ONJPo
(ロード画面の一部) *load_menu ; ロード画面でマウス右クリックされたら、「戻る」と同じ動作をさせる [rclick jump=true target="*load_return" storage="rclick_load.ks" enabled=true] ; メモリ上の栞1に現在の状態を保存 [tempsave place=1] ; ロード画面を表示するメッセージレイヤ名 [eval exp="tf.load_message = 'message1'"] ; メッセージレイヤの属性を設定;セーブデータの一覧を描画する [position layer="&tf.load_message" page=fore left=0 top=0 width="&kag.scWidth" height="&kag.scHeight" frame="loadmode_bg_normal.png" marginl=0 margint=0 marginr=0 marginb=0 draggable=false visible=true] ; メッセージレイヤのクリア [er] ; フォントを変更 [font size=22 face="MS ゴシック" color=0xffffff italic=false rubysize=10 rubyoffset=0 shadow=false edge=false edgecolor=0x000000 shadowcolor=0x000000 bold=false]
874 :
861 :2012/05/10(木) 10:47:05.97 ID:A+1ONJPo
title.ksの一部) *つづきから ; 「右クリックサブルーチンを作ろう」で紹介したロード画面を呼び出す [call storage="rclick_load.ks" target=*load_menu] ; マウス右クリックされたときの動作を元に戻す(rclick_load.ks内でマウス右クリックの設定が変わっているため) [rclick enabled=false] [jump target=*title_menu_loop] [s] (右クリックサブルーチンの一部) *rclick_load ; ロード画面へ [call storage="rclick_load.ks" target=*load_menu] ; マウス右クリックされたときの動作を元に戻す(rclick_load.ks内でマウス右クリックの設定が変わっているため) [rclick jump=true target="*rclick_return" storage="rclick.ks" enabled=true] [jump target=*rclick_menu_loop]
875 :
861 :2012/05/10(木) 10:48:41.36 ID:A+1ONJPo
こんな感じで書いてあるんですが、タイトルから行くにも右クリックから行くにも、基本違うことはしていないと思うんですが、 なぜかゲーム画面に映してみると、タイトルから飛んだときだけラベル名が表示されません。 たぶんレイアに関係するミスだとは思うんですが、そこから先が画面とにらめっこしてもさっぱりでした。
876 :
861 :2012/05/10(木) 10:51:23.72 ID:A+1ONJPo
>>871 >余計なプラグインとかエフェクトとか全部とっぱらったロード機能を作り、問題を絞り込もう
ちょっとやってみます。
877 :
861 :2012/05/10(木) 11:42:47.35 ID:A+1ONJPo
もしかしたら対策が見えてきたかもしれないんですが、 手前にある(数字の大きい)メッセージレイアが画面から見えなくなることってありますか? もしある場合、どういう指示を出せば画面の中に入ってくれますか?
ここだけ見る限り問題はなさそうだけど
日付やラベル名を表示させてるレイヤがmessage1なの?
もし他のレイヤ使ってるならそいつの挙動は追いかけてみた?
>>877 非表示になってる、座標がウィンドウ外にある、サイズが極端に小さい、etc
どれもタグ一個でできるようなことだから自分でなんとかしなさい
レイヤに背景色つけてレイアウトや可視状態を確認するのはデバッグの基本
あとはshift+F12でレイヤダンプとるとか、そういうテクを覚えていかないと
いつまでたっても自力解決できるようにならんよ
879 :
861 :2012/05/10(木) 13:59:49.38 ID:A+1ONJPo
日付やラベル名を表示させてるレイヤがmessage1なんですが、message1だと 「右クリックから」→問題なく見れる 「タイトルから」→なぜか日付&ラベル名見えず これを試しにmessage0にしてみると 「右クリックから」→右クリック時に表示している画面の一部がロード画面にも被さって表示される(が、一応日付&ラベルも見える) 「タイトルから」→問題なく見れる 問題になっているのは、たぶんなぜタイトル画面からロード画面へ飛ぶとmessage1が見えなくなってしまうのか、というところなんだと思います。 いろいろヒントをいただいたので、もうちょっとがんばってみようと思います。
カレントメッセージレイヤが違うというオチと見た @current layer="&tf.load_message" page=fore
881 :
名前は開発中のものです。 :2012/05/10(木) 23:41:41.08 ID:1nYW6rn7
吉里吉里3がいつになっても音沙汰ないんですけお・・・
882 :
861 :2012/05/11(金) 02:17:51.40 ID:NQQS4OXz
できたああああああああああ!!!!!!!! タイトルからロード画面、が問題なくなったあと、今度はそのロード画面から帰るとタイトル画面がおかしくなってた時はどうしようかと思ったけど、なんとかなった!!! ちなみに↓ [layopt layer=message1 page=fore visible=true] [current layer=message1 page=fore] & [layopt layer=message1 visible=false] [current layer=message0 page=fore] このスクリプトって、どこか無駄なところありますか? なんか非常に無駄なことしてそうなんですが、今はとりあえず文句なく動いてる現状を破壊するのが怖くて手がつけられません……。
KAGEXのenvinitについて質問いいでしょうか。 キャラクター定義のdefaultDressを変数によって変えたりする事は可能なんでしょうか? 「"defaultDress" => "f.hoge"」にしても「"defaultDress" => "&f.hoge"」にしても失敗してしまいました。 よろしければ解決法をお願いします。
defaultDress を参照してるところをさがして eval 処理するようになおせばいいんじゃね?
動画ってwmvは非公式なの?
吉里吉里3はハッタリ
>>887 そうなんですか
レスありがとうございます
なんだか難しそうなんでレイヤーモードを使うことにします。
吉里吉里で動画を使う場合、一番トラブルが少ない無難な形式・コーデックって何なんだろう
Flash使ってたけど、232r2に上げてみたら再生できなくなって、結局230に戻した (230なら今まで通り再生できる) 当初はdllがおかしかったみたいだけど、今配布しているものもらってきてもダメ
失礼いたします。 時間制限有の小話を作りたいと思い カウントダウンのタイマーを作成したのですが メッセージレイヤーでタイマーを表示、作動させながら 別レイヤーで話を展開させていく方法で詰まってしまいました。 同時に2つ以上のメッセージレイヤーを進行させることは可能でしょうか……? 初歩的な質問で申し訳ありません。
できないから普通にTJSでTimer使って自作することになるんじゃないか TJSをそれなりにいじるのがムリそうならアキラメロン
>>893 回答ありがとうございました。
TJS式を色々調べてみましたが、どうも自分は初歩の初歩からやりなおさないといけないようです。
もう少し弄って、難しそうなら見送ることに致します。
結局一番使い勝手がいいエディタってなんなの?
オレはKKDEだけど人によっちゃ違う。 結局は使い慣れたエディタ。
秀丸とsakura使ってる
タグ打ちはKKDE ライターさんから上がってきたシナリオをサクラエディタの正規表現で整形?してる
やっぱり人によるか kkdeは元々入ってる吉里吉里のバージョンが古いけど 最新版にしても特に問題は無いかな?
KAGEX使ってるから元からタグのは気にしていないな。 ほとんどデバッグとファイル管理(?)のために使ってるようなもんだし。 >KKDE
\nみたいな改行を別の文字に置き換えられるテキストエディタ使ってるわぁ
KKDEはgrepが残念
>>892 System.getTickCount()を使えば
KAGシナリオ内で時間が計れるけど、
時計カチコチとかタイムアップで何かするとかはTimer組まないとムズいか
タイマーを画像で作って asd で処理、とかすればわりとなんとかなりそうな
しかしdeeたんは多趣味やのう 俺ももうちょっと気合入れていろいろ勉強しよう
908 :
名前は開発中のものです。 :2012/05/14(月) 19:09:31.52 ID:nDCR8F/7
次の選択肢/未読まで進むを実行中にinputタグに到達してダイアログが呼ばれると、 OKボタンを押した後に一瞬フリーズした後、処理がすっとんでしまうのですが、何か解決方法はないでしょうか? 同様にスペースキーでスキップ中にinputタグに到達し、決定すると処理が若干飛ばされてしまいます
質問なんですが、前景レイヤと履歴レイヤのabsoluteっていくつなのでしょうか? 調べてみたのですが、具体的な数値が分からなくて困っています。
Mainwindow.tjsを[function reorderLayers()]で検索した下のところを見る限り メッセージレイヤが1000000から始まって一枚増えるごとに+1000 履歴レイヤが2000000
>910 ありがとう御座います
>>908 どこでもセーブプラグインを外せ、と適当ぶっこいてみる
昔そんな症状があった(今の本体・プラグインのバージョンでは分からない)
KAGEXを使うメリットとは?
自分で同等のシステム作らなくて済む
大規模なゲーム作るときに面倒が少なくなるってのがメインだと思う メリットがわからんうちはむりに使わなくてもいいのでは
なるほど ありがとうございました
スプライト的な使い方でレイヤを多数(80枚程度)扱うゲームを考えています。 メモリの消費量が気になるのですが、レイヤサイズを64×64のような小さいものにした場合、 画面全体の大きさのレイヤに比べてメモリ消費量は小さくて済むでしょうか?
>>917 レイヤの面積に応じてメモリ消費するから小さいレイヤのがメモリ消費は小さい
あと、画面全体サイズだと、合成処理も時間がかかってしまう。
吉里吉里側で領域の最適化計算はされるけどはじめから小さいにこしたことはない
ただ、吉里吉里の場合は、「画像サイズ」と「表示サイズ」は別だからそこの差は区別して話したほうがいい
前者はメモリ消費の大小に影響して、後者は合成時間の大小に影響する。
素材の持ち方としてテクスチャのように全部結合した状態で持つのか、あるいは個別データとして持つのかという話だと、
合計面積が同じなら、メモリ消費は大差ないけれども(個別だと管理用の情報分余分だが実データからすると誤差の範囲)
ディスクアクセスの特性上、ファイルのロードは、そのファイル数に比例して余分に時間がかかるので、
1枚だと一瞬でも、100枚ぐらいの画像を順次ロードするとかなり気になるレベルで遅延がでるようになる
結論としてはスプライト的なデータを吉里吉里で扱う時に総合的に効率が良いのは以下の形になる
・データ自体は連結して1枚にたばねて一括ロードする
・管理的には個別のレイヤにする。読み込んだ画像を切り出しコピーするのではなく、
Layer.assignImages で画像を共有して、imageLeft, imageTop, width, height で目的の箇所を
切り出して表示するようにする
3D系でテクスチャと頂点でデータを管理するのと概念的には同じ
>・管理的には個別のレイヤにする。読み込んだ画像を切り出しコピーするのではなく、 >Layer.assignImages で画像を共有して、imageLeft, imageTop, width, height で目的の箇所を >切り出して表示するようにする なるほどなあ Layer.assignImagesにそんな使い方があったのか
920 :
917 :2012/05/19(土) 15:30:11.87 ID:w7sjBQzQ
詳しいご説明をありがとうございました。 個々のレイヤで画像の切替も行いたいので、 ご教示頂いた方法を参考にしたいと思います。
RPGツクールとかウディタなんかのマップチップなんかもそうだよな>>一枚にまとめてロード
スマホに対応されませんかね?
KKDEのPORING SOFT .NETって閉鎖したのか? アクセスできなくなってる
人 (・ω・) ポリーン
さっきなんか重かったな
つながったのか。 レスした時まったく繋がらんかったからてっきり閉鎖したのかと思ってた。
>アポのとり方なんか簡単だよ。あさから晩まで電話かけまくるんだよ。そのうち向こうがキレて >貴様のところどうなってんだ、って上司のところにかかってくるから土産持って謝りにいけ。 >ほら、簡単だろ? Deeたんこわいです(><)
無料?
ちょっと今、iPhoneで落とせないから良く分からん 無料だとは思う PC版のDL場所ってないよな?
俺もPC版落としたいんだけど、わかんね・・・・ スマホももってないし。 データとか丸見えなのか知りたい。
ラベルをロードした時に履歴レイヤに読み込んだラベル以前のシナリオを表示したいんですが どういった処理にすればいいですか?
データは丸見えだろうね でもデータ隠す意味ないでしょ 無断で使ったら犯罪なんだし
tjsで何か実用的なソフト作った人っている?
> 生と死です。日本料理で盛り付ける時に魚を並べる向きも、 > 生き人に対してと死者に対してでは向きが違います。 > RT @tohka383: 吉里吉里の魚の二匹が目あけてるのと閉じてるのは、 > なんかを意味してるとか読んだ記憶があるけど、なんだっけ。 > 心中とかに書かれてたインタビュー記事? マジかー
実用性考えたらどうしてもC++選んじゃうなあ TJSはKAG中心に作ったゲーム等の、かゆいところに手を届かせる類のものという認識
>>935 (KAGとは全く別物の)アドベンチャーゲームフレームワークは実用的なソフトに含まれますか?
>>938 そのフレームワークがkagより使えるなら実用的かと
>>935 は「ユーティリティソフト」って言いたかったんだろw
このところsakanoさんが作ってる改造版KAGEXとドキュメントのセットが頒布されるのが楽しみで仕方ない
ごった煮さんのプラグイン履歴レイヤ拡張プラグイン使おうと試してみたんですけど RenameKAGTag.ksでkag.tagHandlers.fontがkag.tagHandlers.font_orgにしないと使えなくなるみたいで 何か上手い方法ないでしょうか?
>>942 ごめん言ってることがわからない。
確かにfontタグをfont_orgに変更して、代わりに自前のルーチンを
呼んでいるようだけど、それで何か不都合があるの?
>>943 TJSの部分でちょこちょこ使ってたんで、少し面倒でも置き換えれば普通に動くので不都合というほどでもないのですが……
最初に メンバ"font"が見つかりません というエラーが出て不安だったので質問してしまいました。
945 :
名前は開発中のものです。 :2012/05/26(土) 23:20:34.97 ID:QwrKHVzH
マウスがクリックされた座標をスクリプト側で参照する方法を教えてください first.ks @iscript kag.onMouseDown=function(x,y,button,shift) {return ?} @endscript マウスをクリックしてください @p クリックした座標は X= @emb exp="?" Y= @emb exp="?" です
@macro name=bo @layopt layer="massege1" visible="true" [locate x=0 y=0] [button graphic="recb" exp="kag.fore.layers[1].loadImages(%[storage:'画像名',visible:true])"] @endmacro こんな風にボタンを押すとレイヤー1に画像表示みたいなやり方は把握できたんだけど ボタンを押すとanimstartしてくれるexp以下の書式ってどうやるのかしら? 教えてエロイヒト!
>>945 マウスをクリックしてください
@p
@eval exp="f.mousex=kag.fore.base.cursorX"
@eval exp="f.mousey=kag.fore.base.cursorY"
クリックした座標は
X=
@emb exp="f.mousex"
Y=
@emb exp="f.mousey"
です
とかでどうよ、ベースレイヤが持ってるカーソル位置を貰ってきてるだけだが
>>929 エイシスって今ゲオの子会社だったのか。
プレリリース見つけたけどサイトに書いてあることしか書いてなかったわ。
HTML5とあるからWebGLとjavascriptでKAGのシナリオファイルを外部DSLとして実装してるんだろうけど動作は軽いんだろうか。
>>929 誰か試した?って、まだ出てないじゃん
開発中だってよ
無料で使えるのかな?
ページの左にAppStoreとかへのリンクあるぞ 俺スマホ持ってないから試せないがもう落とせるくさい
動作は軽いけど、エフェクトがない(文字送り一瞬、画面切り替えのフェードなし)。 プレイ開始してすぐに気付く不具合がある。 システムがしょぼい(設定がない)。 とりあえず、今のところ最低限の機能だけ実装しているっぽい。 現時点では評価できないかな。
952 :
名前は開発中のものです。 :2012/05/31(木) 00:12:18.55 ID:VKvWjc0z
何年か前の古いバージョンの吉里吉里/KAGで作ったゲームってウィンドウズ7でも動く? 俺まだXPの原始人なんだ・・・。
バージョンいくつの?
問題ない
955 :
名前は開発中のものです。 :2012/05/31(木) 00:24:58.50 ID:VKvWjc0z
>953
version 2.30 みたいです。
>>954 お答えありがとうございます。
>>951 動くレベルまで開発したら公開して宣伝しながら開発してるんじゃね?
ぶっちゃけapkから抜けば中見れると思うがwebkitベースのただのHTMLアプリケーションだと思う。
958 :
名前は開発中のものです。 :2012/05/31(木) 16:08:36.42 ID:VKvWjc0z
俺なんてWindows 2000だぜ
960 :
名前は開発中のものです。 :2012/05/31(木) 18:38:09.90 ID:EkOEL7fv
Windows2000はもうネットに繋いじゃダメだろwwwww 逆にGDI+が入ってない関係で新しいVerのLayerExDrawプラグインが動かないって事があったな2000
VMなら俺も98SEからXPまで入れてあるな
>>952 Videoは、overlayモードだと上下さかさまになる機種がある。 mixerモードにしておけばOK。
964 :
名前は開発中のものです。 :2012/06/02(土) 04:42:29.16 ID:az+PI9H0
メッセージレイヤだけを揺らしたいですが 自前でプラグイン書いた方がいいですかね?
PNG画像があるとき、それが通常のものかltAddAlpha形式に変換されたものか 判断する方法ってあります?
ファイルヘッダ調べたらわかりそうだね。どう書いたらいいかは誰かエロいひとー ファイルのアドレス0x00000022が01だとそれっぽい。
968 :
名前は開発中のものです。 :2012/06/05(火) 18:14:55.89 ID:S16wq8fn
tjsのみでドラッグ可能レイヤ作るのって難しいの? 参考サイトとか見てもKAG使ってるところしか無いんだけど
そりゃKAGで出来るからKAGで済ましているだけの話
むぅ そうか わざわざtjsでやる意味が無いということか
「TJSに挑戦」にドラック出来るレイヤあったぞ
>>971 あれKAGじゃなかった?(´・ω・`)
メッセージレイヤがKAGでドラッグ出来て 前景レイヤがTJSじゃないの?
KAGでできてTJSでできないことなんて無い
過去ログ検索したんだが、解決方法が見つからなかったので質問させてくれ KAGEXでクリッカブルマップを使おうとすると領域画像ファイルは読み込んでくれてるみたいなんだけど動作してくれない KAG3に移して実行すると動作するからKAGEXの拡張部分がどこか引っかかってると思うんだけど… クリッカブルマップさえ使えれば他の機能も便利だからKAGEXを使い続けたい だれか同じ問題にぶち当たって解決した人いますか?
977 :
名前は開発中のものです。 :2012/06/06(水) 16:10:56.32 ID:w4N6wVSI
こっちでは普通に動作してる
うろ覚えだけどstorageで一括指定するんじゃなくて 明示的にmapimageとmapaction指定したらいけた気がする
979 :
975 :2012/06/06(水) 17:02:49.78 ID:IxHRn7s0
>>976-978 ありがとう、できました!
>>976 に貼ってもらった所の修正全部やっても上手くいかなくて頭を捻ってたんだが、
>>978 の言った通り直接指定したらちゃんと動作した。ありがとう!
まだまだ検索力不足だと思い知ったわ
>>979 AffineLayer.tjs の class AffineLayer に下のような関数を追記するとstorage一括指定でも動くかもしれない。試してないので動かなかったら分かんね。
function getProvincePixel(x, y)
{
return _image.getProvincePixel(...);
}
たとえこれで動いたとしても領域画像とアフィン変換は同時に使用できないので注意。
解説本でおすすめある?
どういう解説を欲しているのかにもよるが、
gutchie氏の「吉里吉里/KAGノベルゲーム制作入門」「吉里吉里/TJSノベルゲーム開発ガイド」が網羅的でオススメ
あと
>>1-5 の各サイト
KAGのほうどこにも売ってないねorz
すいません、質問です。 サイトで配布しているtjsのプラグインをDLして systemフォルダ内に置いたんですが、 使用できるようになるはずのタグが使用出来ません。 first.ksで、[loadplugin]タグやScripts.execStorage()なんかで読み込めばいいのかと思い試したんですが ダメでした。 色々質問サイトなども見たんですが、 初歩的すぎる事なのか、解決策が見つけられませんでした
987 :
名前は開発中のものです。 :2012/06/10(日) 02:23:31.11 ID:7ncY7ZBV
ところで何のプラグイン?
モーションブラープラグインっていうものです
そのサイトの掲示板か何かに質問した方が早いんじゃないかな
ここだと一瞬で解決したりするかなぁと思ったんですが、 確かに、おっしゃる通りなので、サイトの掲示板で質問することにします。 ありがとうございました
>ここだと一瞬で解決したりするかなぁと思ったんですが、 その発想はマジあやういからやめろー
992 :
名前は開発中のものです。 :2012/06/10(日) 04:16:27.48 ID:17SzOxmk
もう少し時間帯が良かったらすぐに解決したかもわからんね
それか、一瞬で袋叩きに合うかw
よし 俺アクションゲーム作るわ
995 :
名前は開発中のものです。 :
2012/06/10(日) 07:34:57.67 ID:AY9F7rfh