ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/ 吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/ ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。
必要に応じて
>>3-5 の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その22
http://hibari.2ch.net/test/read.cgi/gamedev/1285897465/
8 :
名前は開発中のものです。 :2011/02/03(木) 13:28:22 ID:v2AsiGLx
!,-/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ, 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 ~
>>990 強引な方法で無理矢理解決しました^^;
がやっぱりkag.〜系はどこに書いてあるんだろうと必死に検索中orz
>前スレ1000 すまんGREPのtypoだった GREPってのは簡単に言うと複数のファイルからの単語検索機能 まともなエディタにはほぼ必ずついてる機能なんで使ってみて
>>10 わかりました。
やはりそれが一番早いっぽいですね。
久しぶりにやろうとしたがどうも、。で自動にクリック待ちをかける命令はないらしい。 Nスクとごっちゃになってたかな…
14 :
名前は開発中のものです。 :2011/02/04(金) 00:23:26 ID:auJOGj/M
>>13 プラグインで小一時間で実現できると思うけど、読むテンポが落ちてゴミ箱行きになる確率が上がると思いますよー
間を取る意味で句読点を使う事は勿論あるけど、単純に読みやすさの為だけって時もあるし
自動にクリックとか うちと真逆だな・・・・・ 文章1行ごとにメッセージを制御するマクロを入れてるよ・・・・・・
>>13 テンポ以前に、それをやるならマウスの買い替え代を考慮した価格設定にしないとな。
フリーソフトなら金を払って遊んでもらう形。
句読点ごとにクリックを要求するとか、何の権利があってマウスの寿命を縮めるのかと問い詰めたくなる。
>>16 いくらなんでもそれは無い
そう言う頭のおかしいクレーム来ても、オートモード実装してますで済む話し
Nスクは知らんが、Nスクに存在する機能である以上、誰かしらは使ってるんじゃねーかな。 テンポ悪そうだが。 流石にクリックによるマウスの消耗とかキモイクレーム来たらスルーするわw
エンターキー押せよで済む話
>>19 エンターキーが凹んで戻らなくなった!
謝罪と賠償をry
あの、ふつー 。 でクリック待ちにしませんか? 有名なノベルゲームはみんなそうだと思うんですが・・・ みなさんはページあるいはセリフ窓に一斉に表示する派なんですか?
>>21 の言う「有名なノベルゲーム」ってのが何を指しているかは知らないが
少なくとも「常に 。 でクリック待ち」はしないな
参考までに書くと、商業かつ吉里吉里ベースで恐らくいちばん数が出たであろう
「Fate」でも、「常に 。 でクリック待ち」なんてことはしてない
1行ずつ表示止めるか、数行纏めるかと言うのは個人の感性の問題だから一概にどっちが正しいとは言えない。 ただ言えるのは所詮エロゲライターの書いた物をスタンダードと思ってるようじゃそれ以前にダメなんじゃないか?
皆さんは結構文章に芸術性を認めてるんですね。尊敬しなおしました。
吉里吉里は文字関係は画像関係に比べて若干弱い
27 :
名前は開発中のものです。 :2011/02/05(土) 01:21:41 ID:XXg6hwsi
弱いなら強化すればいい
両端ぞろえとかのきれいな組版が標準で使えれば最強
文字と動画と7関連最強になった吉里吉里を出せば英雄じゃん
初心者なんだが、質問。 ある場所であるBGM鳴らそうとするとエラーがでる。 「問題が発生したため、TVP(KIRIKIRI) 2 core / Scripting Platform for Win32 を終了します」 ↑ってのが。 ある場所っていうか、あるシナリオファイルでかな。 他のシナリオファイルでは問題なく鳴るから、 多分そのBGMが悪いんじゃないと思う。 問題のシナリオファイルで、別のBGMを鳴らすことはできるんだけど あるBGMだけが鳴らせないんだ。 まったくもってのお手上げ侍なんだけど助けて。 何が悪いのか全然わからない。 文章わかりにくくてごめんなさい。 ちなみにBGMはmp3で、プラグインは「wump3.dll」使ってる。
>>31 mp3はもう対応してないんじゃなかったっけ……。
最新版吉里吉里とは相性が悪いとかそういうことじゃないかい?
未対応 oggに変換したほうがいい
oggだとダメなのか というか吉里吉里ってもうmp3サポートしてなくね そのプラグインはいつのやつ?
wump3.dll ってのは吉里吉里1の頃のプラグインだな確か 最新の吉里吉里2ではそもそも使えない(例外が起きる) てか初心者ってのは何で講座にも載ってないようなブツ拾ってきて自爆するのか
わあ出来た! 変換したら問題なく再生できたよ!! どうもありがとう!
ごった煮さんの雪プラグインの改良マダァ?(・∀・ )っ/凵⌒☆チンチン やっぱ難しいのかな
>>31 なんだけどさ、
ゲーム中に音楽が早送りになったり、キーが違って聞こえてたのは
もしかして全部mp3だったせいなのかな。
幽霊の仕業なんじゃないかと一人で怖がってて損した。
mp3の亡霊か。 確かにmp3はMPEG1が死しても尚、世に蔓延ってる強力な亡霊だなぁ。 「mp3プレイヤー」で普通に通じるしね。 唯、mp3からogg(vorbis)にしたのなら、二重の劣化が発生するので、 元ソースがあるのなら元ソースから変換した方が良い。 いや、多分そうしてるだろうけどね。
普通wavか百歩譲ってogg mp3で鳴らすメリットってあるのか? ツールでもいちいち波形弄るのに直接弄れなかったり劣化したりするのに、普通はwavでいい 俺に言わせると、なぜDVDに焼くのに非可逆圧縮のoggにするのかすら意味わからん 元データをwavで持ってないといけないわけで、いちいちoggに変換する手間とか考えるとwavのままでいいじゃんと思う
CGはjpgの劣化すらこだわってpngが基本なのに、音にこだわらない人が多いのが謎
そりゃ効果音ならwavでもいいんですけどね
単に容量の問題だろ。技術的に問題がある mp3 はともかく、wav か ogg かは誰も強制してないんだから好きにすればいい話
>>40 つまり、どういうことだってばよ
DLした時からmp3だったんだけど
とりあえず、どっかの変換ソフト使えばいいのか?初心者で悪いね
>>41 フリーの音楽素材がmp3だったからのまま使ってたわ
プラグインありゃどーともなるだろとか思ってたから
とりあえず変換しとけ 実際の組み込みをoggかwavのどっちにするかは個人の判断としても、元データはwavで持っとけ oggもmp3も変換するたびに必ず劣化する wavは同じサンプリング・レートなら何度上書きしてもツールにもよるが(ほぼ)劣化しない
なるほど理解した じゃあちょっくらwavに変換してくるわ ところでwavとoggはどっちも同じようなものなの? たいして変わらないならそのままwanで組み込もうかな
wavはbmpのような感じ oggはjpgのような感じだよ
>>45 容量の問題で、通信回線を通す場合(ダウンロードさせる場合)、
サイズを減らす為に「不可逆圧縮」を音データに掛けるのが普通。
その圧縮の仕方によって、mp3とかoggとかaacとかac3とかに分けられる。
で、「不可逆」なのでサイズは相当縮む。
且つ、ヒトの聴覚を元に「劣化」が分かり難い様に圧縮するので、案外聞いても差が分かんない。
但し、配布前の段階ならば加工も間々行うだろうから、PCM(wav)で持つのが鉄則。
画像もそうで、劣化の発生するjpgとかで加工してるクリエイターはまず居ない。
jpgにするのは配布段階のみであって、通常は、ツールにもよるけどpsdやpngで持ってる。
>>47 「不可逆圧縮」を行った後、それをwavに変換した所で、音質は「不可逆」の儘。
元データがmp3ならば、それをwavにした所で中身はmp3と同じ、って事。
だから、加工を行わないのであれば、配布段階でmp3を同程度のクオリティ、若しくはビットレートの
oggに変換するだけで良い。
加工を行うのなら、元データをwavで持って、加工の度、同一サンプリングレート(〜Hzの部分)、
同一ビット数(〜bitの部分)、同一チャンネル数(ステレオ、モノラル〜等)のwavで出力するのが基本。
画像もそうで、psd→psd、png→png等が鉄則だ。
後、wav(PCM)だとサイズが、oggの10倍程度にはなるんだぜ。
これはネットで配布するには、些か問題。
DVDとかなら問題は無い筈。 まあ、インストールの際の「音データインストール」の確認が要るかもだけど。
うおお、詳しく書いてくれてありがとう つまり加工するならwavで、ネット配布するならoggってことだよな でさ何度も聞いて悪いんだけど、元データをwavで持つってどうすればいいの? 元がmp3のなんだけど、変換してwavにしたって意味ないんだよな?
ブランデーが頭を侵してるので、上手く書けてるか分からん。
>>50 元データは元々、サウンドクリエイターさんからwavの形で貰う事になるのかな。
で、そのデータでGOが出れば、それを配布時の形式(oggとか)にすれば良い。
されども、無論の事、元データがwavで無い場合も有る。 (ネットフリー配布とか)
なので、その場合は、吉里吉里に合わせてoggにする事になるんだけど、それを加工するのであれば、
ソフトウェアでwav形式に変換する事になる。
そういうソフトウェアって、沢山有るんだよ。
音を加工するソフト自体が、mp3とかなら大体デコード出来るし。
で、wavにした所で音質的に変わらないのはその通り。
しかしながら、何なら、そのデータをイコライザとかディレイとかピッチシフトとか、はたまたプラグインとかで
ベース音をブーストして見たりとかマキシマイズとかとか、そういう事が出来るので、
「加工」の観点からすればwavになる事は有る。
唯、貴方の現状からすると、「加工」が行われそうではないので、
「元のmp3データは残しておいて、吉里吉里で使う文はoggに変換」がベターだと思う。
その、加工したくなった時は、mp3を元に加工して、再びoggにすれば良い、って奴ね。
…流石に寝る。
良い感じに酔っ払ってるこれは快眠だわ…。
このまま完成品として出すと言うならそのままでもいいと思うが、フリー素材の場合冒頭の無音が長いものとかあるからその辺りはカットしたり尻をフェードアウトしたり、ノイズ軽減させたりと加工したりする。 レートを下げたりチャンネルも変えたりするから音源はwavで持つのは基本 というかmp3はダメだって言ってるのにどうしてmp3にこだわるのか・・・・・ 自分の環境でたまたま上手く動いてるってだけで、未対応の過去の仕様でずっとやろうとする意味がわからん あとpngは劣化しないから、png→psdでもぜんぜん問題無いと言うか、png素材を使ってpsd作る事が結構多い ところでpngでレイヤーの透明じゃなく他のアルファでチャンネル持たせるにはどうするんだろう? 稀にそう言うのがあるんだが、あれの場合吉里吉里だと誤動作しないのかわからんから、自分で検証してみたいんだけど作り方がわからん
たとえば、冒頭1秒無音があるとして、それをカットするとする mp3>頭1秒カット>wav……劣化無し mp3>頭1秒カット>mp3……劣化有り つまりこう言う事 さらにこのまま尻を1秒削るとする mp3>頭1秒カット>wav>尻1秒カット>wav……劣化無し mp3>頭1秒カット>mp3>尻1秒カット>mp3……2回劣化有り 2回劣化した物は正直商品に使えるかどうか判断難しい
なんと、FLACが起き上がりなかまになりたそうにこちらを見ている!
四文字ってだけで多くの日本人がドン引きしてると思う。
実は mp3 も ogg も、カットと音量(ゲイン)調整だけは実は劣化ゼロで作業できるんだけど、対応してるツールは全然ないね
とりあえず oggvorbis についてる標準ツール vcut.exe でカットできるんだけどこれは指定1箇所なのでさすがに不便 検索したらけっこうあったよ。"ogg 無劣化 カット"でごろごろでてくる。 音量のほうは、吉里吉里はリプレイゲイン(アルバムゲインまたはトラックゲイン)に 対応してるので、リプレイゲイン用のツールを使えば無劣化で音量調整できる
もしもし。 巷の講座を参考にに、システムボタンからのスキップ機能を実装したんだけど、 いざボタンを押すと、ところどころブツ切りなスキップになるのね。 文字がダダダダッって流れていくスムーズなスキップにしたいんだけど、 どうしたらいいのかなあ。 Shiftキー押しながらのスキップはダダダダッって感じだから、 システムボタン押したら、Shiftキー押してる設定にすればいいのかな。 やり方分からないけど。 教えて凄い人><
情報いっぱいで頭パンクしそうだわ もしmp3を加工するなら、劣化が起きないwavに変換してからすればいいのかな あとwavは色んなことできるから音源として保管しとけばおk? そっからゲームに使う分はoggにするなりしろってことですよね そしてoggもカットだけするなら劣化しないソフトがあるんだね とりあえず、mp3は良いとこなしってことだね 今までmp3使ってた私涙目
フォローするとmp3のwavに対する利点は軽さ mp3のoggに対する利点は対応ソフトの多さだな 後者は吉里吉里だけ使っているなら関係ないけど
mp3 はライセンスの問題があるので使わない方が(ry
waveはピクチャで言うとbmp 高品質だけど容量が大きい oggはピクチャで言うとpng そこそこ品質良くて容量が小さい あれ?ogg大勝利じゃね・・・
吉里吉里のテキストボックス?(文字を表示させる部分)の画像、1つしか設定する場所がありませんが、 これは、複数のテキストボックスの画像を使用したい場合、どのようにすればいいのでしょうか? お知恵をお貸しください。
吉里吉里用に、フリーの変換ツールでmp3→oggにしてるが、 音質は満足できるレベルだな
何度も雑談をぶった切ってすみません。
>>59 です。
あれから挑戦し続けてたんですが、
全然それっぽいコードが拾えません。
skipKeyRepressed←このあたりが必要なのかと思って
粘ってみたのですが、やっぱり動いてくれません。
ヒントだけ貰えたらあとは頑張るので、
ヒントをください、お願いします。
>>66 59の書き込みの意味がたぶんみんな理解出来てないと思う。
そもそもスキップはPCスペックで出来るだけ最速で流そうとするからメッセージすらろくすっぽ見えない事もあるし重い演出だと若干カクカクと動く事もある。
それとは別にオートモードと言うのがあって、そっちもダダダダと(スピードによっては)流れる。
どっちも感覚的なものだから、ぶつ切りと言うのがわかりづらいけど。
もしかして、[P]とかで止まってる事を言ってるのかな?
skipmodeは弄ってる?
68 :
>>59 :2011/02/08(火) 21:13:56 ID:/yCrp/56
>>67 >たぶんみんな理解出来てないと思う。
すみません。笑いました。初心者でごめんなさいwww
>skipmode
弄るといっていいのかは分からないのですが、
使った方がいいと講座で見たので、
kag.skipMode<=1の時には効果音やトランジションを省いてあります。
やりたいのは、
スペースキーを押し続けた時に文字や絵がダダダダッと流れていくスキップ
↓
キーを押すのをやめればそのまま止まる
を
ウィンドウ脇のシステムボタンを押すと文字や絵がダダダダッと流れていくスキップ
↓
画面クリックで止まる
にすることです。
現在は吉里吉里デフォルトの[次の選択肢まで]?でスキップさせているので、
ところどころ止まったりして(恐らくPCのスペックによる)見栄えが悪いのです。
吉里吉里なら何でも出来ると踏んで挑戦を始めたのですが、
この様です。どうにかしたいです。
>>63 なんでoggがpngなんだyp!
pngは仕様的には32bitBMPの完全上位と言っても良い 可逆圧縮だから劣化なんかしない
むしろpngがあるのにあらゆる面で下位なbmpをなぜ使うのかと小一時間・・・・
>>68 省いてると言う事はちゃんと処理してると思うのだが、商品レベルのゲームでちゃんとスキップが機能してるものは、condなどで音声や動画やトランスなどの処理を止めるように地道にタグを打ち込んである。
参考にしたいゲームを復号して覗いて見ると良いよ。
それとskipmodeの数字の意味を調べておくと吉
pngはどっちかというとgifの代替みたいに使ってたな
ループチューナーめっちゃええわー。 こういうループ再生に特化した再生ソフトがあればいいのに。
正直言って 早送りが多少カクカクしてたって困るユーザーは一人も居ないと思うんだが、それは言っちゃだめか^^
>>63 たとえが不適切。oggに対応するのはjpeg
>>60 実は bmp は png よりロード時のCPU負荷が圧倒的に軽くて読み込みも速いというメリットがあったりする
xp3 へのパック時に圧縮するようにすると、CPU負荷はややかかるけど、それでもまだPNGより軽い。サイズはそこそこ
>>71 一応gifの後継仕様だからな
ただ本来のgifの使われ方からするとMNGとかAPNGとかの方が正しい後継なんだが、片方は不採用にしてしまうし、もう片方はサブマリン特許にはめられてて身動き取れないし、なんだかなーって感じだな
76 :
>>59 :2011/02/08(火) 21:59:51 ID:/yCrp/56
確実に俺の書き方が悪いせいなんだけど、
やりたいことがやっぱり分かってもらえないwww
>>70 シフトキーでのスキップは、
問題なく文字と画像が早送りって感じで流れるのね。
それこそ商業ゲーみたいに。
これを、キーじゃなくて画面上のスキップボタンでやりたいんだ。
あと、復号なんて高度な技出来ない><
skipmodeの意味は勉強したよ。必要なのは4……なのだろうか。
>>73 場面を止めたいところで止められないから不便。
文字と画像は見えた方がいい。
って、言いたいことが伝わってないせいだと思うんだけどw
>>76 それは単純にその該当部分をコピペするだけじゃダメなのか?
たぶん公開されてるスキップモード関連はどこのも多少TJSの知識があればいじれるレベルでつくってあったはず
78 :
>>59 :2011/02/08(火) 22:19:18 ID:/yCrp/56
>>77 巷の講座やプラグインのスキップ関連は
kag.onSkipToNextStopMenuItemClick();
って大抵はなってるんですけど、
>該当部分をコピペする
って乏しいTJSの知識でも何とかなりますかね?
初心者でシステムの方を弄るのは恐いのですが。
俺もそんなにtjsは出来るわけじゃないがあのくらいは読むのに苦労するレベルじゃなかったはず。 実際に実行してるコアの部分はすぐわかるだろうし、とりあえずバックアップして移植してみろ。 ダメだったら戻せば良い。
80 :
>>59 :2011/02/08(火) 23:20:35 ID:/yCrp/56
MainWindow.tjsを見てみて、「kag.skipToStop2();」あたりの動作をさせればいいのでは? って思ったんだけど、そのままkag.skipToStop2();を実行させると、 クリックで止められないし、文字と画像の移り変わりがが超速になる。 そこで、 スキップボタン押した後=シフトキー押しっぱなしの状態 止めたいところで画面クリック=シフトキー離した後 にしなきゃ分からないと気づいんだけど、その一致のさせ方が分からない。 変数使いますか?どういう風に使えばいいですか? 誰か分かりやすいヒントください><
それはたぶん押してるキーをfunctionでチェックして条件を満たしていた場合(つまり押してる間だけ)のみ動作させるように設定してあると思う
mainwindow.tjsの当該部分を検索して読む
自分の手に負えないなら やらない という選択がなぜ出てこない('A`)
最低限は実現してるわけだから、細かいところは目を瞑ると言う選択肢は有りだと思う
最近はskipToStop2()なんて関数あんのか。ひさしぶりにソース読んでみるかな。 だが2はやめろよ。
86 :
>>59 :2011/02/09(水) 01:25:23 ID:VGAHWutI
頑張ったら、何となくイメージしてた動作が出来たぞ! 前略、スキップボタンの中身です。 if(tf.skippp==1) { kag.skipKeyRepressed = true; kag.skipMode = 4; kag.actualChSpeed = 10; kag.onPrimaryClickByKey(); if(sg(VK_RETURN) || sg(kag.supportReadingKey) || sg(VK_LBUTTON)) { kag.cancelSkip(); tf.autoMode=0; } return true; } 後略 ほら見ろ!m9(`・ω・´) 簡単に諦めろなんて言うもんじゃねぇ! とりあえず徹夜せずに済んでよかった。 これだとこういうエラー起きるよって分かる優しい人がいたら、教えてください。 おやすみ。
87 :
>>59 :2011/02/09(水) 01:29:00 ID:VGAHWutI
あ、tf.autoModeはtf.skipppです。(´・ω・`)
>>64 OKwaveにもポストしてるかな
「テキストボックス」「テキストレイヤー」という単語を使わず
吉里吉里の用語を使って質問を書き直してくれい
positionおよびlayoptコマンドで
メッセージレイヤを2つ以上(message0, message1,…)用意するってーのはだめかい
config.tjsはとりあえず放っておく(上で代用できます)
>>88 回答ありがとうございます。
テキストボックスじゃないんですね・・・(メッセージボックスだと、ダイアログとかぶるから避けてこれにしたのですが・・・)
吉里吉里用語・・・また少しずつですが覚えていきたいと思います。
[position layer=message0 page=back frame="" opacity=0]
のframeの値でしょうか?
これをいじっていけばいい感じですかね。
後で試してみます。
>>86 単にお前のレスの書き方がウザがられてただけじゃね?
でも良かったな
>>89 質問が
「メッセージレイヤのフレーム画像を途中で切り替えたい」ならば
frameの値(ファイル名)を変えていけばOK
リファレンスとテンプレの講座あたりは目を通して、頻出する単語を押さえておくべし
どこで聞いていいかわからないから質問させて TJSで画像をうにょうにょと歪む画像を作りたいと思って、あっちこっちのサイトでJSとかの関数を探してるんだけどなかなか見つからない。 作りたい効果は空間が熱の変化でかげろうみたいに微かに揺らめく感じが欲しいんです。 ラスター処理だと一定な動きになるし、ある座標を中心に水の表面がすこし盛り上がるような表現をすれば作れると思うのだけど、そう言う関数を探してます。 その手の良いサイトは無いものでしょうか?
メッセージレイヤってのを複数立ち上げれば 画面上に三人同時に会話するシーンを作成出来るってこと? Nスクなんて使ってる場合じゃねえ!
そういや複数のメッセージレイヤーに 同時にテキスト流すって出来ないな
KAGからは出来ないね。lやpタグ打ち込まなければ『連続して』テキストを流すのはできるけど 同時並行ってワケじゃないからね。 やるなら各メッセージレイヤのdrawTextメソッドをTJSから直接呼び出してやるくらいか
>>93 NスクもNスクで優れたエンジンだぜ
まあ俺はどっぷり吉里吉里にハマってるんで乗り換えはできないけど
>>95 出来ないのか…
同時は無理、でも交互表示すれば共存は可能?
所謂立ち絵を流用するのではなく、カットごとにカメラを変えるようにしたいんだ
その上で、各キャラの側にテキストが出る様にしたい
つまりこれ→
http://gamecs.jp/usr/kazuyuna/DSC00359.JPG スクリプト数も減って、行数上頻繁に改ページしても滑らかな会話が可能になるし
立ち絵の種類を増やさなくても、その場その場で描けば良くなるから
細やかな感情表現が出来るのだ!っていう発想
Nスクで頑張ってたんだけど、奴はテキストを二つ同時に出して置けない
仕方なくスプライトでやってみたものの、バックログが残らないことに気づいた
吉里吉里さんなら何とか出来そうだと聞いて来ました
>>97 それは可能
ちょっと前に上下で男と女の会話を分けてるの見たことある。
例えば、キャラの文字色とかで判断させてマクロ組むと多少楽。
「2個以上のメッセージ枠に文字を表示させること」は可能だよ。それが出来なかったら吉里吉里製ゲームの半数は 台詞と名前を同時に表示すること出来なくなってるんじゃないかな。モノによっては名前枠と台詞枠別にしてる所もあるし。 同時に出来ないってのはあくまで「2個以上のメッセージ枠に同時(マイクロレベルで同一時間)に文字を書き込む」ということ。 まあそれも、KAGじゃなくてTJS使えば実現はできるんだが、いささかメンドくさいのであまりやらないっつう話。 layoptタグとcurrentタグ、あとlaycountタグ辺りを併用すれば 要望の「各キャラの側にテキストが出る様にしたい」は実現できるよ。マクロ組んだ方が楽だけどね
そう言いえば、TJS使わないとRPGによくある吹出しセリフとか表情のアイコン出せないよな。
誰かすごい人 複数のメッセージレイヤーに同じタイミングでテキスト流すプラグインお願いします
履歴レイヤーを拡張するとかすれば出来るんじゃない?
同ウィンドウだけど、あやえもさんのサンプル内に、ボイス同時再生があった気がする。 つまり文章も同時に表示されるハズだから、あれば参考にはなるんじゃない? たぶん。 不確かな情報でごめん。
じゃあどんなやつだよw こういう話題って個人個人で単語に対してのイメージぜんぜん違うから面白いな
うーん getlayerで kag.getLayerFromElm(%['layer'=>'3', 'page' => 'fore']).colorize(32, 128, 1.0); だとうごくのに、なぜ var xxx=3; kag.getLayerFromElm(%['layer'=>'xxx', 'page' => 'fore']).colorize(32, 128, 1.0); これだとうごかないんだろう? 何か俺書式間違ってる?
動かないというか、レイヤー0が動く 回避策は無いのかな?
'layer'の部分の指定がおかしい 'xxx'('や"で囲う)というのは「'xxx'という文字列」を指定するために用いるのであって 「xxxという変数」を指定するときは囲っちゃいけない
>>98 っっっっっっっっっっっっっっっしゃあああ!
マクロってのが何だかサッパリ分からんが、とにかく頑張ってみるぜ!
サブルーチンとは違うもんなのかね?
うっひゃあ初心者に逆戻りでい!
>>109 一応そう思ってここに書き込む前にためしたんだけど、例外エラーがなぜかおきる
'3'でも一応動くしmainwindow.tjsを見ると+layerにしてるからそれでも動くのは動くみたいなんだけど、
むしろ厳密にint xxx;として 'layer'=>xxxとするとスクリプトエディタが起動してエラーが起きるの
これって不具合なのかな?
ググッても一応
>>109 の言う''無しでの書式で動くと書いてあるんだけど。
ちなみに232r2
原因はわからないけど、なぜか kag.getLayerFromElm(%['layer'=>string(xxx), 'page' => 'fore']).colorize(32, 128, 1.0); とするとまともに動く 力押しでみっともないけど、とりあえずこれでいいやorz
>>112 getLayerPageFromElm の中で
if(layer[0] == 'm') { ... }
としてメッセージレイヤ指定かどうか判定してるので引数としてわたされる辞書の中の layer は文字列でないとエラーになるという
あたりまえの話。
つか、例外に行番号とかでてるだろ。それみれば一発でわかる話
そこの意味が微妙にわからなかったorz やっぱりmessageの頭文字を判定してたのか。 ありがとう。
ふと思ったんだが var c = bbb.count; for(var i=0;i<c;i++) aaa[i]=bbb[i]; と aaa.assign(bbb); って処理速度は同じ?
後者のが速い
117 :
115 :2011/02/10(木) 21:59:50 ID:j2WDw41X
ありがとうございました。 assign使うことにします。
俺だと for(var i = 0; i < bbb.count; i++) って書いちゃうな。 負荷としてはこっちの方が高いのかも知んないけど。
早い云々より前者と後者では使い道変わってこないか?
数千数万個の中身のある配列ならまだしも、数個十数個の中身の配列だったら 毎度毎度countで個数取ってもさほど変り無いと思うよ。そりゃ確かに一度だけcount取った方が 早くなったり負荷が下がるのは確かだけど、ミリ秒単位の差異を隠蔽せにゃならんほど複雑な処理を書くケースってそんなに有るかね? 無論、これが千や万になるっつったら毎度count叩くのは残念すぎるけど
121 :
115 :2011/02/11(金) 12:25:27 ID:iQutSKcF
>>118 >>119 >>120 参考になります。
配列の大きさはたいしたことないです。
ただ、タイマー処理の一部分なので、少しでも早くしたほうが良いのかなぁと思い
前者のように組んでいました。
で、後からassign思い出したっていう。
>>92 とちょっと質問似てますが、画像に新しい効果を加えるtjsを作りたいと思います。
効果の関数部分は出来てるのですが、具体的にそれをどう反映させれば良いのかその方法がわかりません。
画像を直接弄って変化させるdllは見つかるのですが、1から画像に手を加える参考に出来るtjsファイルが見当尽きませんでした。
これを参考にすれば良いと言うのはあるでしょうか?
>>122 Layeにある getなんたらPixel/setなんたらPixel
で一応なんでもできる。使い方は吉里吉里リファレンス参照。
ただし機能的には問題ないけど速度的にはオーバーヘッドが大きすぎて
効果用の処理には厳しいよ。素直にCで書いて組み込むほうが良い。
>>123 やっぱりCで組むしか無いのですね。
さすがにCまではやってないです。
また勉強しないといけないんですね・・・・
一応、RGBα全部の数値を弄れるから、画像を好きな形に変える事は出来るんだけど、
全ピクセルに処理を施してsetして、それを複数枚…とかやったら、レスポンスが返って来なくなったw
リアルタイムとか先ず無理で、バッチ的に処理するにしても、とても実用に耐えるレベルじゃない。
>>123 が言う様に、素直に下位レイヤー叩いた方が良いねぇ。
後、tjsで関数作ってるレベルなら、ポインタの概念とライブラリの中身さえ分かってしまえば、
そんなに難しいモンでもないから、そんなに気負う事もないかと。
127 :
122 :2011/02/11(金) 21:04:37 ID:gz2Pwne0
>>125 試しにテストしてみましたが、やはり恐ろしく重たいですね・・・・・
確かにちょっと実用的とは言えませんでした。
他の手段を考えないと。
>>126 実は今丁度そのlayerExRasterが同じような処理をしてるようだったので見てたのですが、AsObjectNoAddRefなど重要そうな単語の意味がわからず、
さらにmainImageBufferPitchやmainImageBufferForWrite等の見慣れないプロパティをリファレンスで参照してさらに頭を抱えてました。
あとlayerExRasterを試しにコンパイルしてみようとしたのですが、何か足りないのかエラーでコンパイル出来なくてやはり初歩的な知識くらい無いとダメなのかと思いました。
(xp3filterなどいくつかはコンパイル出来たのでなにか足りないんじゃないかと思いますが )
吉里吉里やtjs組むにはやっぱり秀丸がいいのかなぁ ずっとmifesなんだが。。。。
自分はEmEditorの無料版だなあ 自分に合ったヤツが一番だと思うよ
秀丸とかの吉里吉里用セッティング?使ってる人使い勝手とかどうなんだろ
質問です KAGのボタンを後からTJSで非表示にしてみたら クリックは出来ないのにキーボードからは選択できちゃうんだよね 確認してみたらfocusableはちゃんとfalseになってるし どうしたらいいでしょうか? MessageLayer.tjsを弄る必要があればどこら辺とか教えて貰えると助かります
132 :
冒険の書【Lv=1,xxxP】 :2011/02/13(日) 00:40:19 ID:Nddze20W
慣れてしまったエディタが一番だと思う。 秀丸派だけれど、フリーソフト最強ならsakura editor。 広いカスタマイズができる。 mifesはiniファイルを直接弄れるので好きだったけれど、 最近のはムリっぽいね。 秀丸なら吉里吉里用のマクロも幾つかアップされているのがいい。 ”秀丸でgrep”というツール(というかinfインストール)を入れることもお勧め。
ずっとサクラ使ってるなぁ。 設定でそこそこの使い勝手は得られるので、替える動機付けに乏しくなる。
KKDE2のバージョンアップまだー
135 :
131 :2011/02/13(日) 02:26:33 ID:SiQe8osp
MessageLayer.tjs弄ってたらできたわ 失礼した
彼氏が秀丸使ってた、別れたい
初心者な質問ですみません。 タイトルをランダムに表示されるようにしたいのですが、 @eval exp="tf.title=intrandom(1,3) [if exp="tf.title=1"] [image storage="title1" layer=base page=fore] [if exp="tf.title=2"] [image storage="title2" layer=base page=fore] [if exp="tf.title=3"] [image storage="title3" layer=base page=fore] これですると何度やっても3の画像しか出てきません。 対処法はありますか?
等しいかどうかの判定をするときは=ではなくて==を使わないといけないよ =だと代入になってしまうので 「3と等しいか判定する」つもりなのだろうけれど「3を代入する」という意味になってる あと、いろいろ閉じてないような気がするけど。"とか[endif]とか
あ、修正前の方貼っちゃった… ありがとうございます。=の使い方を勘違いしてました。
>>137 今日は暇だから俺がもう少し飛びにくいように書き直してやる
*titke_change
[eval exp="tf.title = intrandom(1,3)"]
[if exp="tf.title == 1"]
[image storage="title1" layer=base page=fore]
[jump target=*titke_change_end]
[endif]
[if exp="tf.title == 2"]
[image storage="title2" layer=base page=fore]
[jump target=*titke_change_end]
[endif]
[if exp="tf.title == 3"]
[image storage="title3" layer=base page=fore]
[jump target=*titke_change_end]
[endif]
[image storage="title1" layer=base page=fore]
[jump target=*titke_change_end]
*titke_change_end
ドヤ顔で出すほどのもんじゃないけどこれで最低限どんな値が返ってきてもとりあえずどれかは表示される。
いや、その値はintrandomで自分で生成してるんだから 気にするんだったらそこじゃないだろ… 気にするなら、なんかの事情でtitle1.jpg等が存在しない場合とかだろ その場合は存在するもののうちからどれかをかわりに表示するみたいな
それが案外そうでも無い。 ランダムで表示する画像が増減する事は結構あるし、そのときにintrandomの数値を間違って設定する事とか結構あるよ。 あと > < などでやってると、案外=が抜けてたり。 まぁ今回はintrandomの数値だけど、似たような状況はいくらでもあるから、飛びにくく作っておくのは大事。 存在しないものはTJS使わないと吉里吉里タグだけじゃ無理だからさすがに初心者にそれは難解過ぎ。
うーん、 バグ防止のために「一致してなきゃならないもの」が存在するのを嫌うのは 非常にもっともなことなのだけれど、 セーフティネットというのはバグの温床(見逃してしまう)でもあるので その最後のcase defaultに相当するところはcond="!debugmode" とかをつけたいような まあ思想の問題かと思いますが というか、バグ防止のためにということであれば、今回については ファイル名の一覧を ["title1", "title2", "title3"] のような配列で与えることにして intrandomの範囲も「1,3」などと手動で直接書くのではなく その配列の要素の数から自動的に取るようにするとかかね
else タグと elsif タグの存在も思い出してあげてください
ちょww 「そうかelseやelsifってなかったのか、最近離れてたから記憶があいまいになったな」 って思ってた
>>143 たしかにバグの温床にはなりやすいよね。
この条件なら飛ぶはずなのになんで飛ばずに動き続けてるんだろう?とか小一時間ミス探す事が時々ある。
.addで配列に組み込むのが理想だね。
.countで数は取得出来るし、便利なのよね。
ただ、駆け出しの頃は配列は俺にはとても難解だった。
一番使わなくても支障のない物だけど、使えるのと使えないじゃ格段の差が出るのよね。
あと吉里吉里はとてもシステムとして安定してるから関係無いんだけど、ずっといろんなプログラマーのオリジナル言語でやってたから、ついコマンドが返す数値を100%信用しない変なクセがついてしまってるのよ。 特にランダム系は経験上かなり不安定な事が多かったせいでついね。
質問です。 inputタグで表示される画面を吉里吉里画面の中央に表示させることはできるでしょうか? 今現在、ディスプレイ中央に表示されてます。
え? >今現在、ディスプレイ中央に表示されてます。 どうしてこうなった!?
想像してワロタww
>>148 kagやtjsだけでは無理。
自分も質問です。
hiddenMethodに渡す引数と戻り値を教えてください。
すみません、初心者でいくつか理解出来ない事があって質問です。 音を鳴らす関数のサンプルとしてこう言うのを貰いました。 function Hist_sound( sound,buf ) { return "kag.se[buf].stop(), kag.se[buf].play(%[ storage : '" + sound + "'])"; } まず'" + sound + "'と言うのはどう言う事をやってるのでしょうか? storage名をstringで持とうとしてるのかと思いますが、前後の+の意味と2回括ってる意味がわかりません。 次にreturnの後の""で全体を括ってる意味もわかりませんし、中で""を使ってるのになぜ使えるのかもわかりません。 またこれは中身を見る限り単に音を鳴らしてるだけのようなので、 function Hist_sound( sound,buf ) { kag.se[buf].stop(); kag.se[buf].play(%[ storage : '" + sound + "']); } これではダメなのでしょうか?
その関数は「音を鳴らす関数」ではなくて「音を鳴らすためのコマンド文字列を作る関数」です
>>153 hactに組み込まれていた部分なのでまさにその通りだと思うのですけど、1つは上で書いた疑問は他のところを読んでも出て来ると思いましたので質問だったのですが、
コマンド文字列を作る関数と言うことは、これを呼ばれると一体何をどのように返すのでしょうか? ""等の読み方が分からずどう言う事をしてるのかぼんやりとしか分からないのです。
初歩的で申し訳ありません。
少し検証してわかったのですが、"'"'テスト'"'"みたいな入れ子だと""の中の''の中の""は使えるのでしょうか? とすると+ sound +と言うのは、soundと言う引数では無く、単に+ sound +と言う文字列を返してるだけなのでしょうか? すると受け取ったsoundと言う引数はどこに?と言う事になるので、たぶん違うとおもうのですけど。
まずは TJS のリファレンスを一通り眺めるくらいはしましょう。 "" は文字列をしめすくくりです。TJSでは便宜のため '' と "" いずれも文字列の記述につかえて、 また、' は "" の中でエスケープせずにつかえて、" は '' の中でエスケープせずに使えます。 詳細は「文字列即値」でリファレンスを検索してください。 そして、その関数は、 "kag.se[buf].stop(), kag.se[buf].play(%[ storage : '" sound (変数。中身は文字列) "'])" の3つの文字列をつなぎあわせようとしています。結果返されるのは kag.se[buf].stop(), kag.se[buf].play(%[ storage : '渡されたファイル名']) という文字列です。 なお単にならすだけなら kag.se[buf].play(%[ storage :sound]); で良いです 余談ですがこれバグってますよね。buf が展開されてません。そのままだとたぶんエラーでしょう。もしかしたら たまたま buf という変数があって鳴ってるかもしれませんが……。その関数くれた人とやらに確認したほうがよいです もう一つ余談ですが、文字列への変数展開はTJSでは次のように書くことができます。詳細は @ でTJSリファレンスを検索のこと。 return @"kag.se[${buf}].stop(), kag.se[${buf}].play(%[ storage : '${sound}'])";
>>156 細かい説明と指摘本当にありがとうございます。
おっしゃる通りに、貰った物がこちらでは鳴らなくて、どこが悪いんだろうかと探してる時にこの関数を見つけて読み方が分からずこのスレに泣きついてしまいました。
相手側の方ではこれで鳴ってるそうなので、違う物を渡されたのか、それとも何か勘違いしてる可能性が高そうです。
本当に助かりました。
これからもう一度相手側に確認取ってみます。
ありがとうございました。
"kag.se[" + buf + "].stop(), kag.se[" + buf + "].play(%[ storage : '" + sound + "'])" これから試すつもりですけど、たぶんこうじゃないとダメぽいですね。 returnの後の”に対応する”が;の前の奴だと勘違いしたまま+の前の奴が対応してた"だと思いもしなかった自分のバカバカ。
evalするより関数渡したほうがオーバーヘッドも少ないしセキュアだと思うんだが。 簡単に乗っ取れるよね、それ。
質問させてください。 縁取り文字使用時、連続ダッシュ(――)で字間に縁の色が入ってしまうのですが これを綺麗に繋ぐようにする方法ってないでしょうか? 字間を調整してみても、後ろ側の縁に塗りつぶされてしまうようなのです。
罫線とか三点リーダが連続するときはパーサ側で1文字づつchに分解するのをヤメて一度スタックに積んでもいいと前に思ったことがあるなぁ。 それに、いちいちばらすと文字列のサイズとか前進幅とか狂うしさ。
文字関連の弱さに定評のある吉里吉里
>>160 有り難うございます。
お陰様で理想通りの表次になりました。
質問よろしくお願いします。 複数の選択肢の中から2つ選ぶと次に進むという構成で 1つ目の選択肢を選んで選択肢群に戻ってきた時に その選んだ選択肢を再度選べないようにするにはどうしたらよいでしょうか? タグリファレンスを見ながらなんとかやって来たのですが 本当に分からなくなってしまいました ご教授よろしくお願いします。
>>166 「選択肢を選んだ」という変数で分岐させなさい
[link target=*select1 cond=f.flag[1]==0]選択肢1[endlink][r] [link target=*select2 cond=f.flag[2]==0]選択肢2[endlink][r] [link target=*select3 cond=f.flag[3]==0]選択肢3[endlink][r] *select1 [eval exp="f.flag[1]=1"] *select2 [eval exp="f.flag[2]=1"]
>>166 情報が少なすぎて何ともいえないけど、選択肢を出すタグ群をif文で制御して、
その選択肢に飛んだ場合、if文の条件が否定される様にするのが一番簡単かと思う。
イメージとしてはこんな感じ
*ここから
@if exp="tf.sentaku1==void"
<選択肢1を出すマクロなりタグ>
@endif
@if exp="tf.sentaku2==void"
<選択肢2を出すマクロなりタグ>
@endif
*sentaku1
<飛び先>
@eval exp="tf.sentaku1=1"
<“*ここから”に戻るマクロなりタグ>
[s]
この方法で出なくは出来るけど、表示上はおいしくない。
出さない選択肢の部分を灰色にするとか、消すとかによって
色々処理を追加する必要があるとは思う。
>>167 さん
>>168 さん
>>169 さん
素早い返答本当にありがとうございました。
教えて頂いたことで試行錯誤していきたいと思います。
ありがとうございました。
マクロをTJSで動かす方法は無いのかな? conducterの配列に収納されてるみたいだけど上手い方法が見つからない。 出来たところで、全部のタグに対応するわけじゃないけど。。。。
>>171 マクロをTJS……って具体的にどういう役割を想定してるの?
1. 今現在TJSで何かスクリプトを書いていて、その中でKAGのマクロ/タグを機能させたい
2. 今組んでいるマクロの中でTJSスクリプトを使いたい(evalタグ毎度毎度打ち込むのがめんどい)
3. その他
とか、一つの文面でいくらかの解釈が有るんだが……
御助言のおかげで大元の骨格が完成しました。 本当にありがとうございました。
>>173 特に想定は無いんだけど時々iscriptでtjsパート書いたりしてるとこっちで書くよりマクロで組んで呼び出した方が処理スピードはともかく楽に書けるよなとか思う時があったりするけどそのたびにendscriptして呼び出して戻るとか格好悪いなと。
あと全体をTJSで組んでると、movie関係とか思ったよりTJSで組むのが面倒な場合があったりするからそんな時に楽かなと。
マクロを作っておいて呼び出せば、複雑なタグ群でも一行で済んじゃうから。
概ね楽するための方法として。
マクロの方がバグ見つけるの楽だしね。
>>174 なんか使えそうな感じのレスだね。
ちょっと詳しく読んでみる。
>>176 本末転倒やね
TJSを使う時は必ず「タグを作成する」という形で行うようにして、iscript はスクリプト中では使わない、ってほうが結果的には奇麗になると思うよ
>>177 実際そうだと思う。
たまーに急ぎの時とか、TJSで書くよりタグで書いた方が早いんだけど、でもここは絶対TJSじゃないと無理だしまあいいや、とりあえずendscriptして外に出して・・・とかやったりしちゃうのよね。
マクロの中身が百行とかなるとさすがにそれを一々TJSで同じ事やらせようとするときつい。。。。
タグは拡張性がTJSより低い代わりに、簡略化されてて楽に扱えると言うメリットはやっぱり捨てきれない。
俺ってダメダメ。
179 :
168 :2011/02/15(火) 18:45:01 ID:FQniGo0m
;
>>166 ごめん、リファレンスチラ見で知ったかで書いた。今は反省している。
; 例: 複数の選択肢の中から2つ選ぶと次に進むという構成で、一度選んだ選択肢は再度選べないようにする
@wait time=200
*start|スタート
[cm]
@eval exp="tf.flags = [], tf.flags[1] = 0, tf.flags[2] = 0, tf.flags[3] = 0, tf.cnt = 0"
*bunki
[cm]
[if exp="2 <= tf.cnt"]選択肢が[emb exp="tf.cnt"]回選ばれました[l][r][jump target=*start][endif]
[if exp="tf.flags[1]==0"][link target=*select1]選択肢1[endlink][r][endif]
[if exp="tf.flags[2]==0"][link target=*select2]選択肢2[endlink][r][endif]
[if exp="tf.flags[3]==0"][link target=*select3]選択肢3[endlink][r][endif]
[s]
*select1
[cm]
選択肢1が選ばれました[l][r]
[eval exp="tf.flags[1]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
*select2
[cm]
選択肢2が選ばれました[l][r]
[eval exp="tf.flags[2]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
*select3
[cm]
選択肢3が選ばれました[l][r]
[eval exp="tf.flags[3]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
2つ選ぶと次に進むと言うのは、選択肢に戻った先で、選択肢を表示する前にifで飛ばせば良いよ。
一つ目と二つ目のメッセージの最後にカウンターかなにかでtf.count++とかしておいて、戻った先で選択肢の前に if(tf.cout>=2)とかすればいい。
一度読んだ選択肢を表示させないのはそれもフラグで管理して
>>168 みたいにcondで制御すればいい。
昔からいろんな言語で1ファイルに多言語混在させるなと言われてきたのになんでiscriptなんてあるんだろうか。 スクリプトなのに低レベルな制御文しかなかったり文字列処理やバッチ処理に弱かったりDeeタンはドMだよね。
>昔からいろんな言語で1ファイルに多言語混在させるなと言われてきたのに 聞いたこと無いなぁ。本当?
CのマクロだとかHTMLの中にCSSやJS埋込みだとかXMLにDTDだとかいくらでもあるだろ
PHPさんがアップをはじめました
TJSが低レベルなのはDeeタンの好みなんでしょ 電子工作が趣味だったりするみたいだし 吉里吉里のソースコード見てもやたらと低レベルな一行一行コードがダラダラと続く感じだし
何が低レベルなのかさっぱり分からん こやつ、狂いか
いやならやめてもいいんじゃぞ
高級言語とか低レベルとか誤解を招くから改称し手板抱きたい
低レベル、はまさに能力が低いっていう意味で広く使われる言葉だから、 せめて低級とかって言って欲しいところではある。
受ける印象同じだよそれ
どう見ても
>>186 は低級言語の意味ではなくレベルが低いという意味でレスしてると思う
193 :
186 :2011/02/16(水) 14:27:49 ID:auVMvR/S
抽象度が低いという意味で言った すまんね
「低レベル」でググるとゲームの攻略サイトとか日記ばっか出てくるけど、
「低級」でググると言語関係のページが出てくる、くらいには差がある。
>>193 多少でも知ってる人間ならまず間違わずに読み取れる書き方だったとは思うけど、
この流れだとスクリプターには誤解されても仕方ない。実にやっかいな用語だ。
俺も低級って言われるとやっぱり低レベルとイコールなイメージが強いな。
ところでそんなプログラマーさんたちにちょっと初歩過ぎる質問なんだけど、
上の方で紹介されてる
ttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/ のLayerExなんちゃら系をC++でコンパイルしようとしたんだけど何か足りなくてエラーが起きる
layerExImage/の中身とlayerEx/の中身とtp_stub.cppとtp_stub.hを1つのフォルダーに突っ込んで処理しようとしたけどコンパイルされない
dllをDLすれば早いけど、今後の勉強のために覚えようと思って試したんだけどうまくいかなかった
ほかに何が足りないんだろうか?
いや、なんてエラーが出たかぐらいかこうよ。 まあ、だいたい想像はつくけど。ncbind とかが無いとかどーとかいわれたんだろ。 pluginフォルダから下は全部そのままチェックアウトしような。 必要なファイルは全部プロジェクトファイル中でパス指定されてるんだから勝手にコピーして動くわけがない。
あっ、たぶんそれかも いくつかエラー吐き出したけど、tp_stub.cppとか無いとか言うエラーがあって、入ってるのになんでダメなんだ?と思ったけど パスの指定がされてないって事なのかな
いや、相対パスで上のフォルダから参照されてるから、上のフォルダごともってこないと駄目だよって話
コンパイル出来た、ありがとう でもちゃんとdllにするように設定したのにexeになってるorz サイズも違う もうちょっと勉強してみる
拡張子が違うだけじゃない?
そうなのかな? サイズがあからさまに違うし、拡張子をdllに変えてもうごかなかったorz いくつか試したけど、Exrasterなんか倍くらいサイズ違った・・・・
むしろどうやったんだよ kirikiri2以下エクスポートしてslnひらいてコンパイル押すだけだろうが
I ・layerExフォルダ I ・layerExImageフォルダ I ・tp_stub.cpp I ・tp_stub.cpp BCC Developer>新規作成>プロジェクトで適当にプロジェクト名を作って。 出来たプロジェクトに上の4つをそのままドラッグで放り込んで一応デフォルトプロジェクトの編集でターゲットがdllにセットされてるのを確認してメイク。 これで一応exeが出来るんだけどdllに書き換えてもなぜか動かない
意味わかってないなら、素直に Visual Studio 入手してこい。Express ならただだ
意味が分かってないからそうしてみる。 本当に悪い、C++は触った事一切無くてチンプンカンプン。
質問お願いします。 書籍などにはonMouseMove等は新しいウィンドウで動作させるサンプルはいくつかあるのですが、ゲーム上と言うかKag上ではどのように書けば良いのでしょうか? 例えば、サンプルに良くあるのですが、captionにどう反映させるのか方法がわかりません。 function action(ez){ if(ez.target == primaryLayer){ if(ez.type=="onMouseMove"){ mess1="マウスカーソルの位置:(" + ez.x + "),(" + ez.y + "),(" + ez.shift + ")"; caption =mess1; } else if(ez.type == "onMouseLeave"){ mess1="マウスカーソルはプライマリレイヤの外にあります"; caption = mess1; } } } これを反映させたいのです。 また同じようにこれをイベントハンドラで反映させるにはどうしたら良いのでしょうか?
>>206 結局ゲームとして何をやりたいのか?
サンプルとやらを見せられて、余計混乱しているとお見受けします
スマートじゃないけど、MainWindow.tjsの中に直接
function onMouseMove(x, y, shift)を記述、挿入してはいかが
x,yにマウスカーソルの位置が入ってくるから
リファレンスのWindowクラス参考ね
>>207 だいぶ不要と思う所を削りましたが、サンプルとかだと書籍とかネットとかだとだいたいこんな感じに書かれてまして
class mywin extends Window{
var timer;
function mywin(){
super.Window();
setInnerSize(800, 600);
add(new Layer (this,null));
with(primaryLayer){
.loadImages("双子N_02A.bmp");
.setSize(innerWidth,innerHeight);}
visible=true;}
function finalize(){super.finalize();}
function action(ev){
if(ev.target == primaryLayer&&ev.type=="onMouseMove")caption = "マウスカーソルの位置:(" + ev.x + "),(" + ev.y + "),(" + ev.shift + ")";}
}
var win = new mywin();
これだとちゃんとマウス座標をしっかりとactionで受け取れてうのですけど、この手のサンプルはいつも必ずと言っていいほど新しいwindowを作成してそこで動かしてますので、
これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。
これ自体をゲームに組み込むと言う事では無く、勉強で例えばこれをkagで組み込めれば他のactionメソッドも同じように組み込めるように理解出来ればと思っての事なのですが・・・・
いつも別窓ではそれなりにうまくいくのですけど、いざこれをkagにもってこようとするとエラー連発で1つの大きな壁になってしまってるのです。
座標を取るだけなら、過去ログを探して kag.superOnMouseMove = kag.onMouseMove; var mess1; kag.onMouseMove = function(x,y,shift){ if(!kag.fullScreened){ superOnMouseMove(...); mess1="マウスカーソルの位置:(" + x + "),(" + y + "),(" + shift + ")"; caption = mess1; if(kag.menu.visible){ kag.menu.visible=false; }else if(y<=10){ kag.menu.visible=true; } kag.innerHeight=600; } }; 少し手直ししてこれで動かせてるのですが、例えばkag.onMouseMove = function(x,y,shift)で関数式としてやってるらしいと言う事はなんとなくネットで調べてわかったのですが、 これを普通の書式に出来ないのか?とかなぜこの書式じゃないとダメなのかとか、この書式は最後に;をつける以外に違いはなさそうなのに普通の書式にするとなぜエラーが出るのだろうか?とかわからない事だらけなのです。 またkag.superOnMouseMove = kag.onMouseMove2 = kag.onMouseMove;とかしてkag.onMouseMove2をもう1つ作って同時に動かしてみようとして失敗したり、なんで出来ないんだろうと色々試しては挫折し続けてます。
>>208 > これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。
Initialize.tjs内で
global.kag = new mywin() if typeof global.kag == "undefined";
Override.tjsで
class mywin extends KAGWindow
以下略
こんなのが希望の答すか(ウチはこんなんで動いてますが正道かは知りません)
で結局何がしたいのさw
イチから組み直すほどシステムにオリジナリティが無ければ、
そっちからアプローチしたほうが早くないかな
勉強っつーなら、勝手に複雑にして勝手に悩めと思ってしまうが
ありがとうございます。 良く読んで試してみます。 今でもタグだけでも吉里吉里は十分良いツールなのですが、やれる幅をもっと増やしたいのです。 例えばマウス関係を覚えればインターフェースの改善が出来ますし、現状でも色々な方のプラグインとか自作分とかでそれなりには組み上がってはいるのですが、 エフェクト関係や本体スクリプトまわりに比べてUIがほとんど手つかずで、それで改善しようとアクションメソッド勉強してたら完全にはまってしまいました。 これがうまく行けば、一気に壁が越えられると思います。 本当にありがとうございます。
>>206 VSで通るようになったんだ。
前はBCBないとコンパイル出来なかったのに。
>>210 試してみましたが、ウィンドが二枚出てしまいました。
理想としては今のシステムの中で・・・やりたかったのですが、不勉強なせいだと思いますので、もう少し勉強します。
命令の意味がもう少し理解出来ればそこからうまくやれるかと思います。
ところで、最初の方の質問のものを、簡単にクラス化して試してみたのですが・・・・・
class test_tempLayer{
var test_tempLayer;
function test_tempLayer(){
kag.add(test_tempLayer = new Layer(kag, kag.fore.base));
with(test_tempLayer){
.loadImages("glay.png");
.setSizeToImageSize(.width, .height);
.setSize(kag.innerWidth,kag.innerHeight);
.visible=true;}
}
function action(ev){
if(ev.target == test_tempLayer&&ev.type=="onMouseMove")
{
caption="マウスカーソルの位置:(" + ev.x + "),(" + ev.y + "),(" + ev.shift + ")";}
else if(ev.target == test_tempLayer&&ev.type == "onMouseLeave"){
caption="マウスカーソルはプライマリレイヤの外にあります";}
}
function finalize(){}
}
var test_tempLayerx = new test_tempLayer();
最初これならいけるかとおもったのですが、飛ばないのですがactionが動いてません。
どうしてなのか教えて頂きたいです。
214 :
名前は開発中のものです。 :2011/02/17(木) 23:06:11 ID:3XtPmN9m
>>212 プラグインの話でしょ
吉里吉里2本体はBCBないと無理だと思われ
>>213 actionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈(吉里吉里2リファレンス参照)だけど、
その構築分じゃtest_tempLayerクラスの中にactionメソッド定義してないか?
で、今のウィンドウの中でやりたいっていうのなら、単にAfterInit.tjsの中で
kag.action = function(ev){
switch(ev.type){
case "onMouseMove":
this.caption = "X:"+ev.x + "," + "Y:"+ev.y;
break;
case "onMouseLeave":
this.caption = "Bye.";
break;
}
};
みたいに書けばそれで済む話じゃね?
んで
>>209 で「なぜ関数式じゃないとダメなのか」って事を言ってたけど、
オレのうろ覚えじゃなければ、TJSでは別々のファイルで同一のクラスを分割定義する事は出来ない
(例えばMainwindow2.tjsというファイルを作り、その中で
class KAGWindow extends Window(以下略)
とか書いても動かない)
っつう仕様が有った筈なので、後から機能を足すなら普通の書式はあんまりよろしくない。
というか、一度読み込んでしまったクラスに後から機能を追加するなんて事出来たっけ?
だから通常は、「KAGWindowクラスそのもの」じゃなくて、「KAGWindowクラスから生成されたkagというオブジェクト」みたいに
既に生成済みのオブジェクトに対して
kag.onMouseMove = function(以下略); といった形で組むことが多い。というかそれが普通?
>>215 layerクラスのイベントにonMouse〜系があるのでそれでいけるものだと思ったのですが、それではダメなのですね。
関数オブジェクト?でしたか。やはりこの書式しか無いのですね。
この書式まったく使った事が無くて、漠然としか意味が分からず必死に普通の書式を試していたのですが・・・
ありがとうございます。もうちょっと勉強してまたわからなかったらお願いします。m(__)m
>>216 それが普通なのですか。
とすると参考書にはそう言う感じには書かれてなくて普通の書式ばかりなので、ゲーム制作用の機能拡張には向いてないのですね。
いや、普通の書式を使う事を否定してる訳じゃないよ。
>>215 の動作だって、コレはあくまでAfterInit.tjs等の別ファイルに書くことを前提にしてるけど、
Mainwindow.tjsの中に直接
function action(ev){
switch(以下略)
}
って書く事も出来るし、そういう形でコード追加してる人も多く居る。
ただ後々コードを修正する時になって、「アレ、俺どのファイルに追加コード書いたっけ?」っていう事になって混乱する可能性があり得るので
AfterInit.tjsみたいな単一のファイルの中に
kag.action = function(ev){ 略 };
kag.foo = function(){};
abc.bar = function(){};
みたいな具合に追加コードをどっさり書き連ねる手法も有るよっつう話。どっちが拡張に向くか向かないかってのはちょっと違う。
>>216 確認しちゃったじゃないか。多重定義はあと優先だよ
あれ、そうだっけ。ごめん間違えた。 あらやだ私ったら恥ずかしい
AfterInit.tjs自体ほとんど使ってなかったのですが、そっちに書いてしまった方が確かにいいですね。 Mainwindow.tjsはバージョンアップの度に書き換えなくちゃいけなくなるので、なるべくなら触りたくないんです。 AfterInit.tjsならその心配もありませんし、tjs式はわざわざ他のksファイルにiscriptで書いてたので、それに書き直してみます。 今回頂いたのは正直まだfunction()を完全に理解していないので、次は画面内全部じゃなく.hitThresholdに対応するように考えて見ます。
横からスマン
>>215 でactionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈と言うことだし実際試したら動かないわけなんだけど、じゃぁlayerクラスのonなんちゃら系って言うのは使えないの?
windowクラスを作る事前提なら、KAG上では無理って事?
俺も初心者に毛が生えた程度でスマン
吉里吉里リファレンスの「イベントシステムについて」を上から下まで一通りよんで考えればおのずとわかることでしょう
>>224 Windowクラスのactionメソッドは「自分の中(windowの中)で何かイベントが起きた(各レイヤにマウスが載ったetc)かどうか」を検知するもんであって
各レイヤが各々に「自分の中(そのレイヤクラス自身)で何かイベントが起きたかどうか」を検知するのは別の話だよ。
kag.primaryLayer.onMouseMove = function(略) と書いても機能的には同じことが果たせる。
書き方が違うってだけのことよー
actionって名前が悪いんだよな。 observeにしとけば読んで字の如くなのに。 コード的にも function observer(ev){ //foo } kag.observe = observer; で意味が通じるのに。
228 :
名前は開発中のものです。 :2011/02/18(金) 21:05:39 ID:AX8UzFm1
お初にこのスレに来ました者です。 質問なのですが、ゲーム起動画面の「栞をはさむ」を「セーブする」という文字にするにはどうすればいいのでしょうか。 調べた結果、MainWindow.tjsを編集すればいいという結果だったのですが、どこをいじればいいのかわかりません。 自分なりに以下のように編集してみたのですが、変更されません・・・。 // 保存するファイル名を得る var selectdata = %[ title:"セーブする", filter: [saveThumbnail ? "サムネイル画像付き栞データ(*.bmp)|*.bmp" : "栞データ(*.kdt)|*.kdt"],
Menus.tjs110行目近辺に求める答えがあると思うよ
ちょっと雑談というか質問というか意見を聞きたいんだが みんな吉里吉里製のゲームを世に出すときに 解析対策してる? フリーゲーム見ると結構やってる人いるみたいなんだけど 簡単にできるもんなの?
そう言うことは、解析したくなるほど良いゲームを作ってから考えような
>>231 こう返す奴がいつもいるのは知ってるけどさ 煽るだけの意見は求めてないよ
「解析したくなるほど良いゲームを作っていない」という根拠がどこにあるんだ
というか論点はそこじゃない 分かれ
マジレスするなら、力量さえあれば解析対策なんていくらでもできると思うぞ 後はどこまでやるかコストとか期間とかの問題だけ 個人的にはそんなことにパワー割きたくないから大したことはやらない
234 :
名前は開発中のものです。 :2011/02/18(金) 23:02:19 ID:AX8UzFm1
>>229 できました!!
どうもありがとうございました。本当に助かりました。
またお世話になるかもしれませんが、そのときもよろしくお願いします。
俺は同業者対策にtjsと自分で作ったマクロだけ吉里吉里の暗号かけてる 一応コメント全部抜いて すぐに解かれる物だけど、すぐに解くレベルの人なら俺が作ったのより良い物をつくれるだろうし、誰かに手伝って貰って解くレベルの人は読んでもわからんだろうしと考えてる
dllをビルドできる環境があるなら簡単にできる xp3enc.dllとxp3dec.dllを自作すればいいだけ ただし同程度の知識を持っている人間なら簡単に破れる その程度で良ければ
>>225-227 おおおなんか出来た!
なんでうまくいかんのだろうと放置してたけどあっさり解決したよorz
thank you!!
暗号かぁ
テキストか何かでキーを任意で変えられるとかなりいいかなと思う
fateのあのキーはちょっと笑えるけど読めてしまうあれは果たして正しいのか?とか思ってしまう今日この頃
解析にキーなんて関係ないけどな
239 :
名前は開発中のものです。 :2011/02/19(土) 07:24:38 ID:ptgwOnoc
よく吉里吉里で作ったゲームでいつでもセーブできるものがありますけど、それってラベルを大量に作ってるんですか? それともラベルをたくさん作る以外に何か方法があるんでしょうか?
「吉里吉里 どこでもセーブ」でググれ
いい加減にマルチポストするのやめれ('A`)
242 :
名前は開発中のものです。 :2011/02/19(土) 12:26:26 ID:ptgwOnoc
>>240 どこでもセーブプラグインとやらを見つけました。
使い方にも載っていたようにやはりセーブポイントには[np]をつけなくてはいけないんですね。
>>241 すいません、過去ログに載っていましたか?
たしか毎行に*|を入れると出来たと思いますけど、手間かかるしプラグインの誤動作で画面崩れるの怖いので自分で確実なところでセーブ出来るようにしてます。 ところで一昨日からアドバイス頂いて色々試しているのですが、式中関数の中では他のメソッドを呼び出せないのですね。 クラスのなかでtimerを呼びに行こうとして色々試したのですがダメでした。結局式中関数に直接書いてしまいましたが見た目がブサイクになってしまったのですけど、仕方無いかなと・・・・
ヒント: incontextof
自前のレイヤをaddContinuousHandlerで移動させる時に、 例えば80ピクセルの幅を移動するのと同時に表示をフェードインさせたいんですが、 移動開始時はopacity=0で、移動終了時に丁度255になるようにしたいんですけど、上手くいきません (初めから完全に表示されていたり、半透明で移動した後最後に突然opacity=255になる) 何か良い方法は無いですか?
移動中の描画のタイミングで段階的にopacityを弄るとうまくいくと思います。
レイヤのtop・leftを書き換えるところでopacityも変化するように、 255を移動ピクセルで割って、その数を描画のタイミングで加算してみたりしたんですが たった数十ピクセル移動する間にopacityが10000とかまで加算されたりして、 255に収まるようにすると、上記の()内のような事になってしまいます
>>247 間違ってるからでしょ
コードだしてもらわんと誰もわからんよ
解析対策なんてデバッガかけるか実行中のメモリから抜かれるとどうにでもされるからやってないな。 とくに吉里吉里はxp3filterが標準で用意されてるから楽だし。
移動は%で場所指定してるのに透明度はHandler呼ばれるたびに加算してるとか そんなところだろうと予想
TextLayer.opacity = 0; startTime = System.getTickCount(); System.addContinuousHandler(handler); - 以下handler内 dist = (tickCount - startTime) * speed \ 1000; if (TextLayer.top > moveH) { TextLayer.top = it - dist; } ※moveH=最終的な到着点の座標 レイヤを下から上へ移動させる時、大体こんな感じで記述しています で、opacityをどこで加算していけば、moveタグみたいに滑らかに移動してくれるのかと・・・
252 :
名前は開発中のものです。 :2011/02/19(土) 17:12:35 ID:6HEBXbJG
横からですまん、ちょっと質問 タイトル画面でロードをするために右クリックサブルーチンを表示させたいんだけど下のソースで実行してクリックしても無反応なんだ 誰か助けてくれ [link exp="kag.restoreBookMark()"]ロードする[endlink]
色々と興味深い意見が聞けてよかったです
コメント改行全部抜くとか、流用はやーめーてーねーという意思表示をするくらいが丁度いいんですかね
参考になりました。ありがとう
>>252 それじゃ右クリックサブルーチン呼び出せないよ・・・
サブルーチンの意味をお勉強すると手っ取り早いよ
254 :
名前は開発中のものです。 :2011/02/19(土) 17:43:12 ID:6HEBXbJG
>>253 意味調べてみたんだが・・・
エンドリンクを抜いたりカッコを抜いたりしてみたんだけど駄目だったorz
無知な俺に答えを教えてくれ!
KAG System リファレンスの中に 右クリックサブルーチンにてセーブロードするサンプルが載ってるんだが…見た? 良い機会だからクレクレせず探してみー
256 :
名前は開発中のものです。 :2011/02/19(土) 18:36:57 ID:6HEBXbJG
>>255 一通り見たハズなんだが答えが見えないんだ・・・
ちょっとkwsk頼む
>>251 「毎秒speedドットだけ動かす」ルーチンなら
総移動時間を計算して、経過時間との%取って透明度変化
移動時間指定にしたら1ルーチンで上下に動かせるようになるしこっちのが良いと思う
time = 1000 (1000msで移動完了)
firstT = TextLayer.Top moveT = 最終的な到達点
firstO = 0 moveO = 255
-handler内
per = (tickCount - startTime)/time
TextLayer.top = firstT+( (moveT-firstT) * per );
TextLayer.opacity = firstO+( (moveO-firstO) * per );
>>256 ホントに探して読んだ?そのサンプルソース程度は理解できないと後々辛いよ
>>252 それだと栞の何番を読むかが指定されてないよ
259 :
名前は開発中のものです。 :2011/02/19(土) 19:29:09 ID:6HEBXbJG
>>258 正確には一通り探したけどどこだかわからなかったんだ…
追記なんだが、右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ
そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい
>>257 おおお、ありがとうございます!
上も下も表示出すのも消すのもバッチリです、スクリプトが随分すっきりしました
>>259 うう…結局付属のrclick_tjs.ksの使い方が分からないと?
[link exp="rclickconfig_object.show()"]ロードする[endlink]
的にやればいいんじゃないの?
(トリガを待ったりするし、これだけでは完全には動かないが)
言ってるサンプルはここね
KAG System リファレンス>右クリックサブルーチンについて>難しい例
まずはKAGオンリーで作ってみないか?あなたのスキルに添って
「サブルーチン」という概念が分かれば上のrclick_tjs.ksも難なく使いこなせるよ
262 :
名前は開発中のものです。 :2011/02/19(土) 20:48:41.53 ID:6HEBXbJG
>>261 ソースありがとう!
あとは直接サムネイル画面に移動する方法だけだわ
リファレンスは今見たところ
見逃してたぜ・・・
それでKAGオンリーで作るってどういうこと?
今現在もKAGオンリーだと思うんだけど・・・
カグロイドのソース公開してくれんかな・・・。
>>244 incontextofわかったようなわからないようなです。
これは数をこなして覚えないと覚えられないタイプのコマンドみたいでとりあえず色々やってみます。
全然別の話しなのですが、メッセージレイヤーを出したままコンフィグ画面を作ろうとしてはたと困ったのですが、履歴書き出しを停止してもそのまま画面をクリックするとメッセージがどんどん進んでしまって。
kag.tempsave(0);でもメッセージは戻らなくて、MessageLayer.tjsのクリックを受け付ける所にフラグで禁則かけても見た目は止まったように見えても解除するとクリック分テキストが進んでいて。
結局無理矢理メッセージレイヤーの上に透明のレイヤーを被せてクリック出来ないようにしたのですが、どうにもスマートじゃなくて。
メッセージレイヤーを表示したまま一時的に、クリック出来なくする方法は無いのでしょうか?
消すのはたぶんinvisibleByUserあたりを実行すれば良いと思うのですが・・・
れいや.enable = false
難しく考えてたのですが、初歩的過ぎました・・・ ありがとうございました。
>>265 数種類試してみたのですが、.enable = falseはメッセージレイヤにはなさそうでした・・・
>>267 できるよ
試しにクリックできる状態のところに [eval exp="kag.current.enabled = false"] とでも挿し込んでみ
(ちなみにenable=falseしてても新たにリンク/ボタンをつくると操作できるようになるので注意)
269 :
名前は開発中のものです。 :2011/02/20(日) 11:23:11.41 ID:9jbrQ7SM
昨日の続きの質問なんだが、今タイトル画面からセーブ・ロード画面を呼び出したいんだ 右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい 以下のソースだと本編で右クリックを押した状態じゃん? 直で右クリック⇒ロードへ持っていきたいんだけどどう記述すればいいのか教えてくれ [link exp="rclickconfig_object.show()"]ロードする[endlink]
show()内RClickConfigLayerを自前のRClickSaveLoadLayerにでも変えてやれば動くのだろう KAGもTJSもよく分かっていない状態で改造に手を出すと、続出するバグがトラウマの原因となってしまうと思う
>>268 うーん、試してみたら何事もなかったかのように動くので、まっさらな232r2でも試したのですが、やはり動くようです。
272 :
名前は開発中のものです。 :2011/02/20(日) 11:52:04.53 ID:9jbrQ7SM
>>270 よくわからんが、改造をしないとその操作は無理ってことか?
>>271 ごめん見直してみたらリンクを無効化とかじゃなくてコンフィグ中にメッセージ送りを止めたいって話なのね
それってコンフィグを別のレイヤにしてそっちにcurrent移すだけでいいんじゃないの?
あとhistoryのoutputにメッセージ送りを止めるような機能はない
質問させてください [macro name="macroA"] [image storage="&'kag.' + mp.page + '.base.Anim_loadParams.storage'" 以下略] [endmacro] というようなマクロを書いたのですが、[macroA page=fore] と指定しても kag.fore.base.Anim_loadParams.storage を読み込んでくれずエラーが出てしまいます どのように書けば動作するのでしょうか
>>273 やっぱりそうなんですね。 止められないとすると上に被せて止めるのが一番手っ取り早いみたいですね。
コンフィグ画面もずりずりとメッセージ枠の下に引っ張り出してますので、現在処理開始と同時にメッセージ枠の上に透明マスクして、ずりずりコンフィグをひっぱりつつマスクの上にボタン画像を貼ったレイヤーを同時に動かしてます。
現実的にはやはりこれが一番よさそうですね。
>>276 レスありがとうございます
というかよくソース見てみたら単なるtypoでした……あああ
教えていただいたサイト勉強になります
>>276 モーダルですね。
たしかにタイミングをうまくやればうまくいきそうです。
さっそく試してみます。
たびたびで申し訳ありません。 式中関数をずっとやってたのですが、クラスの中に以下のfanctionを書いてさらに式中関数を書きました。 それでクラスの外にbase_x base_yを設定すると以下の関数がクラスの中でも動くのですが、これをクラスの中に入れるとエラーがおきてしまいます。 switchも同様です。 クラスの中に変数を入れて、式中関数にも反映や変更は出来ないのでしょうか? ネットで相当調べたのですが、式中関数自体の情報が少なくて・・・・・ セッターをセットするかしないとダメなのでしょうか? コンテキストもまだぼんやりとしかわからなくて申し訳ありません。 function mouse_xy(){ kag.primaryLayer.onMouseMove = function(x, y, shift){ if (x > base_x &&y < base_y){ switch = true;} else{ switch = false;} } };
switch = true; これがおかしい
そこは式中関数の中なので、問題無いと思うのですが・・・ 一応switchをコメントアウトしてもやはりエラーが出ます。(base_xの段階ですでにエラーが出ます) 変数を受け取れないみたいで、function mouse_xy(){の直下で base_xの中身を調べると間違いなく変数の中身は入ってました。 なぜ受け取らないのか、どうやったら受け取るのか色々試してみたのですが・・・
incontextof this; つけとけば多分動くよ function mouse_xy(){ kag.primaryLayer.onMouseMove = function(x, y, shift){ if (x > base_x &&y < base_y){ switch = true;} else{ switch = false;} } incontextof this; };
ごめんなさい こちらに書く時に;の位置を間違えました。 function mouse_xy(){ kag.primaryLayer.onMouseMove = function(x, y, shift){ if (x > base_x &&y < base_y){ switch = true;} else{ switch = false;} }; } これでうごきません
>>282 の解説をすると、
式中関数のコンテキストは null だから、中から関数外の変数を参照する場合は
その変数が見えるコンテキスト(この場合は this)を設定してやる必要がある。
あと、switch は予約語だからやめとけ。
コンテキストがやっぱり関係してたのですね。 他がちょっとひっかかったのですが、何となく動きが変わりました。 switchの変数名は実際は違うのですが、確かにswitchと書いてたらもっとはまってたと思います。 完全に忘れてました。 ありがとうございます。
primaryLayer.onMouseMove をのっとるのは kag のクラス構成を調べないと危険
そういうときはデフォルトの onMouseMove をとっておいてオーバーライドするメソッド内で呼べばいい。
>>286 のように危険な行為だと認識して
>>287 な行動が出来ないからこそスレに質問投下してるわけで
初心者は最低限、KAG本体に手を出すのは地雷であり最終手段って認識が必要だと思う
危ないんですね。 とすると、適当にプライマリレイヤの上に何か作ってそこでやらせた方が良いと言うことでしょうか? 一応そう言う形にしてはいるんですが・・・・ ところで、これは全画面だと誤動作起きますね また新たな問題がorz
全画面のときは拡大率を踏まえた操作が必要だから YesNoDialog.tjs47行目〜に拡大率云々のコードがあるから、参考になるかも 難しいなら全画面禁止にするのもアリ
だいたいやり方はわかったのですが、根本から作り直さないといけないみたいです。 とりあえずフルスクリーン使えないように禁則かけました。
フルスクリーン、分かってるつもりでやはりまったくわかっていませんでした。
そもそもYESNOは新しくwindowを作るわけなので必要だと思うのですが、メイン画面が拡大するわけなので中は自動でサイズが変わるものだとばかり思っていたのですが・・・
自分で作ったレイヤーも追従すると思ったので、問題はたぶん.onMouseMoveが機能してないような気がします。
ゲーム中に通常画面>フルスクリーンにすると少し怪しいところもあるのですがたぶんちゃんと動いてるようなのですが、最初からフルスクリーンで起動させると自作の部分だけマウスが機能してないようです。
拡大に追従してないだけだろうかと思ったのですが、
>>283 のように”ここから右側で反応”とかしても動いてないのでどうしてだろうと色々試して原因を探してます。
原因が分かりました。 yesnoの意味も良く解りましたが、これは起動時のみのチェックでいいのでしょうか? 動作中に画面サイズを変更した場合、内部的に勝手に拡大 起動時に画面サイズが違う場合、こちらで拡大率を計算 と言う事なのでしょうか? 起動中に、なんらかの動作で拡大率の計算が必要になるケースはあるのでしょうか?
全部観て激しく後悔してる俺が通りますよ。 全13話のうち必要な話しは90話くらいに収まる。後は全部つまらんテンドンでお茶を濁して尺稼ぎ。 手法として「こうだよ!」>>ウソぴょん>>「こうだろ!」>>はぁ?違うわよ知らなかったの?>>「じゃぁこれが正しいのか?」>>最初っから何もなかったのよ!と言う感じで物語の提示仕方が最悪。 伏線とか厨丸出しの設定とか辻褄合わせとか一切ぶん投げて、結局どうやったら自殺教団の教祖様が身勝手で我が儘で偽善者全開で他人をどうやって自殺させようかと言う訳の分からん展開。 エロゲライターの質と人間性の悪さをモロに露呈してくれちゃった感じ。
誤爆ってる。。。。
どこのABスレだよ
Turbo C++ Explorerの新規ライセンス発行終わってんのか。 デバッガ使ってみようと思った俺涙目だ。 BCCしかねぇ。VCLわかんね。VCL依存排除はまだかね?
まだかねって誰がそんなことやってるの?
お見せした方が添削早いと思うのですが、色々デバッグ用のコードとか、テストコードとか、素人丸出しのソースで1000行くらいあってとても恥ずかしくて見せられませんorz
聞くは一時の恥聞かぬは一生の恥という諺があってだな
他人に添削されるのはすっごい勉強になるし 他人の添削をするのもすっごい勉強になる 特にこのスレには化け物じみた上級者も巣くってるのだから、添削されて悪いことは無い って自称中級者の我輩が言ってみるテスト
まぁ好い加減 情報小出しで 分からない分からないと一人芝居ばかり続けていると そのうち誰かがキレると思うよ
超初心者で申し訳ありませんが、 出鼻を挫かれたので質問させて下さい。 クリッカブルマップの動作確認をしようと思い、 KKDEの「デバッグ開始」を実行してみたのですが、うんともすんともいいません。 元画像は表示されるんですが…。 ですが、KKDE付属のものでなく、 吉里吉里から直接DLしたもので起動させると、 正常に動作をします。 これは一体どういう事でしょうか…。
>>304 書いてることがイミフだぞ。
判断に必要なことがまるで書かれてない。
>>304 簡単なクリッカブルマップのコードを別に用意し、それを使っても同じような症状なら
KKDEのせいなのかな。俺使ってないから分かんないけども
だがそれ以前にfirst.ksで打ち間違いがあるとか、
導入した怪しげなプラグイン等がエラーを起こしてるとか
そんな気がしないでもないです
>>305 ごめんなさい、判断して頂くための必要事項が分かりません。
よければ教えて下さい。
KKEDで「デバッグ開始」から起動させるのと、そうでないのとで、
違いがあるのかをお聞きしたかったのです。
>>306 そういえば1パターンしか試してなかったので、
別のコードでも試してみます。
打ち間違いですか…
KKDEからの起動以外だと正常に動作したので、
その可能性は無いだろー、と思い込んでましたが、
ちょっと見直してきますね…。
あ、プラグインはまだ何も導入していないので、違うと思います!
お返事ありがとうございました!
308 :
300 :2011/02/23(水) 21:37:05.73 ID:yCtHH5+S
ちょっと仕事立て込んできましたので、後日見せられるくらいに整えてコア部分を切り出してどっかにアップしてみます。 まだ拡大とかには対応してないのですが・・・・・
309 :
名前は開発中のものです。 :2011/02/23(水) 23:11:12.86 ID:RWhklJCu
少し質問させてください。 以下のソースで… [call storage="SaveAnywhere.ks"] ; 改ページマクロ[np]。セーブポイントにもなる。 [macro name="np"] [p][er][label][er] [endmacro] マクロを使い、[np]でセーブポイントを作っていて、セーブするときに『栞1を「」にはさみますか』と 表示されるのですが、この文字を変えたく、「セーブしますか」にしたいです。 (「栞をたどる」も同様に変えたいです) どこをいじればいいのかわからないので回答よろしくお願いします。
313 :
309 :2011/02/24(木) 10:25:49.52 ID:+D5oy41z
>>310 関連性のあるページは一通り読んだつもりなのですが見つからなかったので質問させていただきました。
ママ来たボタンはあると便利なんだけど、実際はママ来たらぱにくって押すのを忘れてモニターの電源に手が行く罠
316 :
309 :2011/02/24(木) 13:32:17.61 ID:+D5oy41z
>>314 「■吉里吉里/KAG/TJS雑談質問スレ■」の過去スレのログでしょうか?
317 :
309 :2011/02/24(木) 13:42:31.83 ID:+D5oy41z
>>309 ですが、MainWindow.tjsをいじったらできました。
ご迷惑をおかけしました。
318 :
名前は開発中のものです。 :2011/02/24(木) 17:12:33.16 ID:qtUka4E2
ママ来たセンサ マイクデバイスを戸に設置し 普段サンプリングした音を元に監音から足音など異音を拾ったら エロゲの方にDANGER表示して音量を下げてくれる どうすか?
いいんじゃね でもおまいさんが実装するんだぞ
雪プラグインだの桜吹雪だのみてるとパーティクルが欲しくなってくるじゃねーか。JK(実装の手間考えて)
321 :
名前は開発中のものです。 :2011/02/25(金) 00:53:58.97 ID:0YYEeebz
KAGEXにあった気がする ただし使い方理解するのもめんどい
パーティクルは相当マシンパワー無いときついっしょ。 動画で重ねた方がさすがに早いし軽いって。
あるいはどうしてもエンジン側で処理したいっつうのなら OpenGLなりDirectXなりを経由してGPU弄れるようなプラグインを用意して、 処理をGPUに投げるかって所だな。 全部CPUでやったらi7でも潰れっちまうお……
動画で違和感ないループってどうやって作ってんだろ
APimageプラグインを使わせてもらってるんですが 追加したイメージ部分のクリッカブルマップが無効になってしまうんですが これの解決方法ってないですかね?
なんで制作者に聞かないの?
プライマリレイヤはトランスすると裏になるんだがプライマリに対になるレイヤは無いの? 初期時から裏になるレイヤを設定したいわけなんだが。
やっぱ適当に作ってpage=backで設定するしか無いのか 一枚しか無いと言う設定はわかるんだが、個人的には最初から裏に設定されてる対になってるレイヤ欲しいな。
KAG のプライマリレイヤは kag.fore.base で、kag.back.base と対になってて、常にその名前で参照できるように制御されてるわけだが…
>>332 それだとプライマリの画像領域を変更した場合はkag.back.baseも追従してしまうから、対じゃなくて親子と思ってしまうんだな。個人的には。
まあプライマリに子供二枚作れば済む話しなんだけど、なんか時々対になるレイヤーがあると構文の見栄えが良いなと思ってしまった。
>>330-331 え 任意でそんなに簡単に裏表変えられるの??
kag.fore.baseが表でkag.back.baseが裏でどっちから作るかで表裏決まるんじゃないの??
snowplus.ksとか前読んで勉強した時にそうやって作られてたからそんなものだと思ってたけど。。。
>>327 クリッカブルマップを別のレイヤで使えば良いのでは
>>327 追加してるレイヤの、hitThresholdを0にしたらどうだろうか。
337 :
名前は開発中のものです。 :2011/02/26(土) 03:20:01.45 ID:m+7cPohm
>>337 うちのPCそこそこ早いからわかんないけど、これ1G程度のマシンだと快適に動く?
動くならかなりいけるって事だと思うけど。
これってどれだよ 3Dパーティクルなら使い物にならない
>>337 Core2Duo 1.8GHz でそこそこ動かすと25〜30%くらいCPUを食う。
似たようなのを前に作ったけれど、アフィン変換しながら画像を
コピーしたレイヤを多数表示するのは結構重くて、使いどころを
選ぶよね。
何でもできるわけじゃないけれど、TJSでも結構できるのは
敷居が低くて助かるよ。
>>327 hitThreshold = 256 で直ってたよ
>>338 定格の1050TでCPU7%止まりだったが多分一度GCが動き出してからずっと24~30辺りをふらふらして27で落ち着いた。
CPUよりメモリが貧弱だと足引っ張って辛いだろうな。
344 :
名前は開発中のものです。 :2011/02/27(日) 02:16:05.02 ID:aGPT5nfm
いい加減うざい
ソコのイチだけど、次このスレに貼ったら削除依頼だします。私も動かないとね。
多分gutchieさんのとこだったと思うんだが 吉里吉里で削除や移動などファイル操作できるようにする プラグインってもうなくなちゃったんだろうか?
すまん間違えた Los Dos Pescadosさんとこにありました 失礼ました
画像ファイルの有無をチェックする関数なんかは無いでしょうか
>>349 ほい
Storages.isExistentStorage(path)
詳しくはリファ参照
>>350 無事に問題解決できました
すばやい回答どうもありがとうございました
ruleファイルに入っているjpgのファイル名一覧を配列で欲しいんですが そういうことはできないんでしょうか?
ここで聞いてるあいだに、地道に配列に入れた方が早い
ファイルをDBで管理してsqlite3.dllで取り出す ・・・よりも地道が一番だと思うよ
フォルダの中身をテキストで出力するソフト使って 置換で拡張子消して、コピペしてCSVに貼り付けてそれ読めばいい
コマンドプロンプトで cd /d "c:\フォルダのパス" dir|findstr .jpg>jpgリスト.txt
そういうんじゃなくって、ユーザの操作やら何やらによって ruleフォルダの内容が増減できるようにするんじゃないの? で、その時々の環境に応じた動作をするためにフォルダ内容の取得が必要と
dirlist.dll使えばいいよ
>>356 他所で聞けと言われそうだけど、詳しそうだから教えて欲しいんだが
DOSプロンプトで全角が扱えない時と8文字以上は~になるケースはどう言う風に打ち込めばいいんだろう?
パスでそんなケースあるし、今回のrule画像のファイルも文章になってる長いファイル名あるだろ?
>>359 ファイル名一覧がとれればいいのか?
エクスプローラでファイルを選択して、シフトキーを押しながら右クリック。
「パスのコピー」でクリップボードにファイル名一覧がコピーされるので、エディタでペースト。
windows 7ではできるが、xpや2000はついてるかわからない。
>>360 そうするしかないのか。
以前winが飛んだ時とかdosプロンプトからブッコ抜いて待避させようとして、全角とか8文字制限で結局一部しかぶっこ抜けなかったから。
コピペ前提だと、この場合は無理か。。。
ありがとう。
8文字ってISO準拠モードか? 生憎、そんな状況に陥った事は無いので詳細は解らないが、 全角に関しては、conimeが動いてなかったとか言う落ちじゃないか? アレが無いと、cmdさんは日本語理解してくれないぞ。
…ああ、「winが飛んだ時」って事は、レスキューか何かか。 その場合だと、機能が制限されてるそういうcmdさんになるのかな。 winが飛んでも、HDDが逝ってなければ、外付けのHDDとして認識させれば 大抵データは復旧出来るぞ。
外付けとして吸えるんだな なんかそう言う事書いてあった気もするが・・・・ まえは結局バラしてHDDだけをケースに入れて吸い出してたけど、今のモニター一体型だからバラスのも困難そうでかなり飛ぶの怖かったりする バックアップは豆にね!って事なんだと思うけど、テラサイズをBUはさすがにな^^; なんにしてもスレチで申し訳なかった ありがとう
マクロの中で [locate x=0 y="&mp.top"] だとちゃんと表示されるのに [locate x=0 y="&(mp.top + 10)"] だとおかしくなるのは何故なんでしょうか?
>>365 mp.topが数値じゃなくて文字になっちゃうから
mp.topが"100"のときには"100"+10で"10010"になる
単項+演算子使って数値に変換すればおk
[locate x=0 y="&(+mp.top + 10)"]
>>366 ちゃんと表示されるようになりました
ありがとう!
>>364 一応補足しておくと、「windowsの領域」や「ブートローダーの領域」がバッドセクタ化して読めなくなった等であれば、
そのHDDの他のファイルを読み込む事は出来るのだけど、「MFTの領域」がミラー共々逝っていたとしたら、
単純に外付けHDDとして認識させても、中のファイルは読み込めない。
こういう場合、専用のアプリケーション等を用いて、MFTを復旧させなきゃいけない。
これにはリスクが伴うので、大抵は、linux等でHDDのバックアップを取り、その後にMFTの復旧やファイルの捜査等を行う感じになる。
唯、適切な処置を施せば、復旧率は悪くない。
最悪なのが、HDDを認識しないパターン。
接続周りを見直す+置き換えたとしても、HDDが認識出来ないのなら、恐らく物理的に逝ってる蓋然性が高い。
こうなれば、最早専門業者行きパターン。 20万円になります ^ ^ レベル。
さて置き、ディスク全てのバックアップはせずとも、重要なファイル等に関しては、バックアップを強くお勧めする。
ここには、吉里吉里をお仕事として触ってる方々も居るだろうけれど、仮に作業中のデータが全て逝ったとすると、
対外的信頼も含めた損害額は馬鹿にならないからね。
エロ動画とかはまた集めるとして、重要なデータのバックアップは本当お願いします。
顧客にそれやられて、死にそうになった事があるので…。
369 :
300 :2011/03/03(木) 13:58:02.20 ID:maXIQwoK
一週間ほどお待たせ致しました。
ttp://www.dotup.org/uploda/www.dotup.org1391998.zip.html 不必要な物はカットして整理した物をアップしました。
別途適当な画像を一枚準備して頂いて50行のファイルネームの書き換えをお願いします。
右上をポイントすると画面がじわっと出て来てopacity=255になるとそれで一時固定し、255以前だと自然とまたじわっと消えていきます。
一旦固定したら画面左上側をポインタするとじわっと消えていきます。
内部的にはonMouseMoveを四つ(fore二つ back二つ)動かして、動き始めたらpp_cg_fore.hitThreshold=256にしてそっちに作業を移してメッセージ枠の上に被せてメッセージが進まないようにしてあります。
現状でほぼできあがってるのですが、一つ問題点があります。
フルスクリーン起動には対応したのですが、今度は逆にフルスクリーン起動>通常サイズへ移行した時に拡大率がそのままで画像の一部だけが表示される状態になってしまいました。
何かスクリーンサイズが変わった時に呼び出されるメソッドがあるのでしょうか?
Window.fullScreen を触らないかぎりかわらないんだから、それを操作するところ全部に判定処理をいれればいいんじゃね
>>370 なるほど。
例外ぽい書き方でちょっとみっともないですが、それが一番良いやり方かもしれませんね。
倍率はやはりこちらで計算するしかないのでしょうか?
内部的には、ちゃんと倍率を計算してるようなので、どこかにその値があるのでしょうか?
kag.setZoomでセットしてある値を直接取り出す方法が分からず、結局計算式に同様の式例えばzoom=int(kag.innerHeight/ kag.scHeight)
を書いて取り出すしか無いのかな?と思ったのですが。
edgeExtentとかedgeEmphasisみたいに影を薄くしたりぼかしたりする方法ってありますか? あと、メッセージ履歴のフォントって太字は設定できるけど縁取りとか影って無理なんですかね
すみません、ちょっと理解出来ない部分があって質問させてください。 メッセージ関係で、例えば前景レイヤーのindexを1500000としてメッセージの手前に持って来ても画面クリックするとメッセージが進みます。 kag.fore.layers[0].hitThreshold=0;としても同様でした。 一方プライマリレイヤーに新しくtemplayerを作って.absolute=1500000;とすると.hitThreshold=256;としてもメッセージは進まなくなってしまいました。 どうしてこうなるのでしょう? また、自前で作ったレイヤをメッセージより前に表示させつつメッセージを進めるとか出来ないのでしょうか?
>>373 >どうしてこうなるのでしょう?
BaseLayer.internalOnMouseDownでonPrimaryClickが呼ばれなくなるから(isPrimaryで呼ぶか判別してる)
>また、自前で作ったレイヤをメッセージより前に表示させつつメッセージを進めるとか出来ないのでしょうか?
onPrimaryClick呼ばれるように直さないと駄目
さっそくお返事ありがとうございます。 その差を理解出来ました。 大変ありがとうでした。早速手をつけてみます。
376 :
名前は開発中のものです。 :2011/03/04(金) 18:25:33.81 ID:KVqwIY3B
ごった煮さんのSnowPlusBeta 「ほうらコレがいいんでしょこれが!」 くそぉ、その通りだyp! なんか悔しい・・・・
>>369 違ってたらごめんなさい、単純に84〜99行目あたりのzoomの
処理を除くだけじゃダメなんでしょうか。こっちではそれで
問題なく動いているように見えます。
本当ですねorz 偶然直ってたのを逆にバグの元にしてました。 実は書き換える前はポインタの座標はinnerWidthで取っていたのですが、scWidthにすれば自動的に変換されるのですね。 書き換える前は、innerWidth-50;とかしていまして、 するとフルスクリーンのまま起動すると見た目は800*600を拡大したまま表示しているのに、マウス座標は拡大したサイズになってしまって。 結果画像は800*600のドットピッチに対してマウス座標が適応されてしまって拡大した分(仮に横1200だったとして400ドット分)ずれてしまってどうしようかと思って墓穴掘ってましたorz ありがとうございます。
ゆずソフトののーぶる☆わーくすに M2 CheeseWare Motion Library(motionplayer.dll) というプラグインが入ってたのですが ググったところ 専用ツールで作ったモーションファイルをwmtnタグで AffineLayerに描画するKAGEXのプラグインらしいってことはわかったんですが その専用ツールで一般的にどんなモーションを作るのか教えてください フェイスモーションとかリップシンク的なものなのかなぁと勝手に予想はしているんですが 上記の作中にそのようなモーション見受けられないんで気になって眠れません
KAGEXのソース嫁
>>381 これは具体的にはただ2Dから動画を作るツールですか?
それともリアルタイムに演算させてるのでしょうか?
う、最新のポストで丁度取り上げてたのか、気づかなかったorz ありがとでしたすっきりしました M2Motionでググると結構ヒットしたのでいろいろみてみます
>>381 Dirty Regionを再描画管理クラスで見張ってガリガリ回すよりシーンベースにしたほうが楽じゃないか?
とか誰かさんに言ってみる。
まあ、motionplayer.dllの詳細が分からんから憶測だが。
吉里吉里の通常描画系の場合、がりがり回す以外の方法が無いお
[macro name=debug] [eval exp="dm('DEBUG:' + %name)"] [endmacro] [debug name="test"] で、コンソールにDEBUG:testって表示させたいが、うまくいかない。 ""内の%はマクロによる置換対象にならないようなのですが、 どうにかする方法はあるでしょうか?
[eval exp="dm('DEBUG:' + mp.name)"] マクロの時はmpね。
>>387 [eval exp=...] の中ではマクロ引数は mp.xxx で参照する。
だから、
[macro name=debug]
[eval exp="dm('DEBUG:' + mp.name)"]
[endmacro]
だよね。
390 :
387 :2011/03/06(日) 11:25:03.99 ID:zn8ZUsc9
>>388 >>389 mpで参照できる旨、ちゃんとリファレンスに同様の例で書いてありますね……。
もう一度きちんとリファレンス読み直します。
どうもありがとうございました。
M2Motionってとりあえずインストールしてみようとしたらエラー起きてダメだったy 日本語解説してくれてるとことかさすがになさそうだな
日本語解説って……そもそも一般公開されてないブツをどうやってインストールするんだ?
393 :
名前は開発中のものです。 :2011/03/06(日) 14:05:59.91 ID:56dmx9Wy
すみません質問ですが宜しいでしょうか? 現在、同人ゲームを製作中なのですが、 テキストの横(左側)に別枠でキャラの表情差分を入れようかと思うのですが 吉里吉里の公式参考書(茶色のカバーの本)を読んでも載ってないので ご教授くださいませ 簡単に説明すると、キャラの立ち絵は一種で、 別途、正方形の枠に描いた表情の差分をテキストの左側に入れたいという事です。
pimage もしくは前景レイヤに表示させてメッセージレイヤへ重ねる
>>392 サンプルっぽいのDLしたんだが違うのか
俺の語学力練習相手になりませんだな
>>393 普通ならimageでindexをメッセージレイヤの手前にセットするのが初心者にはいいけど、たぶんその知識も無いだろうからまずは本を全部熟読した方が早い
396 :
名前は開発中のものです。 :2011/03/06(日) 19:08:14.31 ID:56dmx9Wy
>>394 >>395 ありがとうございます。何となく仕組みは分かりました
立ち絵やテキストを貼るのと同じ要領で、左隅にスペースを設ければ良いのでしょうか?
本をよく読んでみる事にします
とりあえずindexの意味が分かれば最低限は出来る 出来るけど・・・結構面倒ではある
一回マクロ化しちゃえば後は楽だよ
それよりM2ってまだ生きてたのか
ゲーム業界には (株)M2 と (有)M2 がそれぞれ無関係にあるんだぜ
Yahoo!とYahoo! Japanみたいなややこしいこと言わないでっ!
切り替え時に音なんて鳴ったっけ? Alt+Enterに他のアプリが反応しているとか
質問です。 文字を履歴だけに表示したいのですがどうすればいいでしょうか? どこかでマクロ?を見た気がするんですが、いざ使おうと言う時にどこで見たか忘れてしまいました。 どうぞよろしくお願いします。
>>403 7なんすけど、鳴るんです。
onFullScreenMenuItemClick自体は鳴らないから、keyDownHookかなとおもったんだけど・・・・
鳴らないと言われてまっさらな232-r2で試してみたんすが、なんでか鳴りますね。 Alt+なにかのキーを押すと鳴るっぽい。 書き換えてClt+Retにすると鳴らないんだけど、Altキーとの組み合わせが何かに反応してwinの警告音を鳴らしてるっぽい。 他のアプリではAlt+なにかのキーでは鳴らないんだけど、何に反応してるんだろう?
Altは、Windows のコマンドショートカット処理用のキーなので、対応するコマンドが定義されてないとエラーで音がなる仕様。 ためしに Alt+A とか適当に定義されてなさそうなのをおしてみればわかるかと。 メニューに Alt-Enter のショートカット指定が入った項目を足すとそれが処理を受けてくれるのでならなくなる。 すなおにそれ経由で処理するようにするか、あるいは、visible=false にしたダミーのエントリつくっておけばいい
なるほどそれで鳴るのか。 鳴らない人は、ちゃんとメニューと合わせてあるのかな?うちはそっちは外してたから鳴ったのか・・・ ありがとう、さっそくダミーの形で組み直してみる。
詳細な仕様的としては、メニュー側で処理されない Alt+なんたらを押すと、WM_MENUCHAR メッセージが来て、
そこで MNC_IGNORE を返すとビープ音がなる。デフォルトのプロシージャは これを返してる模様。
ttp://msdn.microsoft.com/en-us/library/ms646349 (v=vs.85).aspx
吉里吉里のソースにはこのメッセージを処理してるところは見当たらないので、たぶんそのままデフォルトの動作になってる。
メッセージ処理をよこどりするプラグインを書いて MNC_CLOSE を返すようにすればすれば一括しての抑制が可能だとは思われます
さすがにそこまでの知識はないっすから、ヘタに弄って大元のwindowsの方に影響出ると怖いんで(一応製品なんで)、メニューの書き換えでやってみます。 ありがとうです。
うーん・・・ ぜひADVゲームを作ってみたくて落してみたんですが難しい・・・ 通常のADVゲームにある機能(セーブやロード、音声ボリューム調整など) が、すでに備わった状態のADV製作者むけ吉里吉里って配布されていますか? もしごぞんじのかたいましたら、教えてください
確か、templateフォルダっていうのが便利じゃなかったか?
413 :
名前は開発中のものです。 :2011/03/08(火) 19:07:16.40 ID:ksvMV7sW
セーブ/ロード画面とかオプション画面とかギャラリーとか全部自分で作らないと駄目じゃん 誰か公開すればいいのにってずっと前から言われてるよね
>>411 templeteを単にコピーしたとして
セーブロード>プルダウンメニューで可能
ボリューム>kag3pluginフォルダのgvolumeプラグインを使う
gvolume.txtを参考に導入する
何で吉里吉里を使おうと思ったのか分からないけど、この程度の勉強は必須
それも難しいと言うなら、別のノベルツールを使うというのもアリじゃないでしょうか
この板にもいっぱいスレッドあるしね
自分の考えでは、吉里吉里は「何でも出来る代わりに初心者向けではない」ツール。
まぁぶっちゃけ、面白い物語を全力で最後まで作るのが先で、ユーザーの需要もそこにある
機能の充実はスキルが貯まったらでOK
サークル煌明さんのメッセージをフェード表示するプラグインで、ch4Fadeや、chfadetimeを構文中に直接変えようとしたけどうまくいかない。 どう言う風に弄ったら反映されるんだろう?
416 :
名前は開発中のものです。 :2011/03/08(火) 20:33:51.02 ID:IzxVyOg8
ちょっと質問なんだが、お前らどうやって吉里吉里の使い方覚えた? KAGリファレンスだけだとどうしても限りがあると思うんだ かと言ってフリーの吉里吉里で作ったゲームを解析しようにも暗号化されてるだろうし・・・ 誰か教えてくれ
>>414 できました! やった! これで勝つる!
・・・と思ったら、また問題が。
サンプルを入れてBGMとSEはならせました。ですが、
このふたつとは別にキャラクターボイス専用のフォルダを設けたい
(つまり音声を3種類使い分けたい)のです。
どういうフォルダを作って、どういう構文を入れればいいのでしょうか?
BGMとSEは、テンプレフォルダに最初からあったbgm とsoundのフォルダに放りこんで
鳴らすことができたのですが。
システムフォルダのコンフィグの、再生メディアはWAVEに設定、
同時にならせる音は3種類に設定しています。
フォルダは関係無いよ 分けておいた方が無難だけどたぶん今の状態で説明するとかえってまずくなるかも SEバッファは複数同時にならせるからSEバッファを複数使う
>>416 とりあえず見よう見まねで何か作ることからじゃね
つまらないものでもいいから
というか短くてつまらないものを10個作る方が長いのを1個作るよりいい
420 :
名前は開発中のものです。 :2011/03/08(火) 21:15:16.65 ID:IzxVyOg8
>>419 他人の真似か・・・
やっぱ過去ログみたりとかかな
それでもわかんないことは聞けって話ね
最初から完成品を作ろうっていうんじゃなくて 「絵も何もなしでただエンターキー押すだけのバカノベル」とか 「絵はないけど選択肢がついて多少遊べるようになった」とか 「絵がついた!」とか そういうのでいいんだよ あと、順を追って読んでくような講座っていくつかなかったっけ 少尉とかguchieさんの講座とかってもうなくなったんだっけ
>>416 そもそもゲーム作るのに必要な知識ってのは吉里吉里とは無関係。
一般的な方法で知識を得ているのなら、それを吉里吉里上でどう実現するか、
というだけの話でしかなくて、あとは吉里吉里リファレンスとTJSリファレンスと
わからないことがあった時に聞きに来るこのスレががあればどうにでもなる
>>413 公開されているのとは違うがgutchie氏の吉里吉里本二冊に収録されている
他の吉里吉里本については知らないので誰か頼む
>>416 特に変わったところはないクラスベースになった劣化jsなんで
TJSと吉里吉里のdocに書いてあるビルドインオブジェクト見ただけで使えるようになった。
これが中途半端なプロトタイプのluaや俺オブジェクト指向なrubyみたいな変態だったらそうもいかなかったと思う。
最初からハードル上げすぎるとドハマリするかもしれませんしね。 自分がスクリプトだけに集中できる人的環境ならともかく、 あれもこれもやってゲーム自体がなかなか完成しないと本末転倒。 あまり欲張らず、今回はできる範囲まで、次の作品は改善して、さらに次は・・・ みたいに自分のスキルを上げていくのがよいと思います。 ぜいたく言わなければ初期状態の吉里吉里でも問題ないです。
一言で言うことができる仕様が、かならずしも 容易に追加できる仕様であるとは限らない 説明が非常に困難な仕様が、かならずしも 追加に困難な仕様であるとは限らない あなたが、簡単だ、または困難だ、と考える仕様を 実際に実現するには、まずあなたが、手にしているソレは、 何ができて、なにができないのかを理解してください (デフォルトの状態から)××を■■できるようにしたいけど ○○するための□□をできるようにするためには どうすればいいか? □□を実装するために必要な修正箇所およびそのための知識が 容易に説明や、解説できるなら レスも数行ですむが、そのようなケースではない場合 ◆◆の改造やマクロの追加をほどこしているならば容易に□□の追加実装ができるが ◆◆の改造やマクロの追加をほどこしていないなら、 まず◆◆の説明や、マクロの追加実装を 理解してもらわないと話しにならないので あなたには、この ××を■■できるようにしたい という 仕様の追加は、 まだ(あなたに理解できるように説明するのは)難しいので (数行のレスで説明するのは)無理です となるだろうな
>>417 素材の管理の都合上、音声用の素材は別フォルダに入れて構築したい
という仕様変更と読み取れる
あなたの手にしているソレは、(デフォルトの状態から改造していない場合だったとしても)
素材を入れるためのフォルダの定義をしている箇所のファイルが存在しているので
ソコに、今回追加したいフォルダを追加記述して定義すれば、
今後は、追加定義されてたフォルダに素材を収納して運用できます
しかし
その追加改造を施すことで、この改造の意味を理解していないと
開発中は問題なくても、
たとえば製品としてリリースする時の圧縮の時や、
追加パッチを出す場合に
問題を孕む可能性があります
よほど変な運用をしなければ問題が出ることはありませんが、
なにをもって、よほど変な運用とみなすかは、千差万別なので
たぶん、問題が出るでしょう
どうしてこのような問題が発生する懸念があるのかを理解できるまでは
(動作上は)現状のどのフォルダに素材をいれても、用意した音声データを使用して
音を鳴らせるので、SE用のフォルダ等に、混在していれておいて
(管理上ファイルが混ざってしまって大変ですが)問題ないでしょう
あんまり初心者遠ざけんなw
>>417 本体を改造すればvoiceフォルダ作れるけど、皆が指摘するように
現時点ではやらないほうがよい
理解をしていないにも関わらずあれこれイジってバグが出た場合、
自分のゲームのユーザーに対してどうサポートすんのよって話だ
分かりませんので2ちゃんで聞いて下さいとは言えまい
効果音のファイルは必ずSから
音声のファイルは必ずVから始まるとか、
区分できるようなファイル名にしてsoundフォルダに入れると便利
どうしても独立させたきゃ、othersフォルダにでもつっこんどくといいよ
回し者みたいだけどguchieさんの本買って読むのが一番わかりやすいと思う 右クリックコンテンツの作成仕方以前の内容は完全に初心者向け
フォルダ追加くらいはそこまで心配するほどの難易度でもなかろ
>>417 [eval exp="Storages.addAutoPath('voice/')"]
これを起動直後にでも書いとけば、以降はvoiceという名前のフォルダを認識するようになる
>>430 それやると実はマズイ
ましてやプロが作る製品だと
回避策はあるんだけど、パッチを当てた後でさらにvoiceフォルダーが最優先されるから、そのフォルダーの中身の分を書き換えようとすると書き換えが面倒になる
問題が有ったファイルを差し替える為のファイルを別名保存 (元のファイルがfoo.oggだったならfoo_patch.oggとかに変更)してパッチに含め、修正シナリオの方で foo.oggではなくfoo_patch.oggを呼び出すように変更すりゃ解決する案件ではあるがね
[eval exp="Storage.addAutoPath('voice/')"] [eval exp="Storage.removeAutoPath(System.exePath + 'patch.xp3>')"] [eval exp="Storage.addAutoPath(System.exePath + 'patch.xp3>')"] 質問者がプロが作る製品の話をしてるかどうかは知らんが
あれ?すまん、てっきり吉里吉里初心者プロさんかと思ってた
>>433 で大丈夫だと思ったらできなかった
きゃいん
初めは何も考えずにInitialize.tjsにStorage.addAutoPath('voice/')で十分だろ。
macro内でテキストを引数につかおうと思って検索してみたところ chというタグがあったのですが、これだとテキストが一瞬で表示されて しかも改行もされないのですが、どうすれば普通にテキストを表示させられるのでしょうか?
>>437 embタグとmpをつかう
[macro name=てすと]
[emb exp=mp.text]
[endmacro]
[てすと text="表示する文字"]
ルパン風予告…ってわかりますかね? それのプラグインってありますか?
それくらい自分でできないなら動画でやればいい。
AEでも実は量が多いとじみーに面倒
>>441 wait挟んで切り替えるだけ。音とかは好きに入れればおk
めんどくさいなら自分で使いやすいようにマクロ化
@current layer=message0 page=fore
@deffont size=50
@position visible
ル
[wait time=100][er]
パ
[wait time=100][er]
ン
[wait time=100][er]
風
[wait time=100][er]
予
[wait time=100][er]
告
[wait time=100][er]
[nowait]
ルパン風予告
[endnowait]
@s
image "ル.画像" playse "カチッ" wait image "パ.画像" playse "カチッ" wait image "ン.画像" playse "カチッ" wait WEBのヤツみたいに文字入力も望むならinputでテキスト制御
センタリングした方がよりかっこいいかもな
KAGでもやれそうな事にプラグインプラグイン言うのは良くないと思うの スキルアップしないし、作者にとってブラックボックスな部分は無いほうが安心だし
BGMはkag.bgm.playingStorageで鳴ってる最中のstorageを取得出来るけど、 seやmoviesには無い?
>>449 BGM.tjsの中をみると、playingStorageの値を返す部分があるので
それを参考にSE.tjsをいじるといいと思う
ムービーはやってないからわかんね
やっぱり弄るしか無いのか。 ありがとう。 ちょっと参考にしながら弄ってみるよ。
質問です 配列が存在するかどうかを調べたいのですが、 例えばf.test[n]と言う配列が存在しないならf.test=[]で配列をつくって、存在したら作らないとしたいのです。 if(!f.test[]←ここがよくわからない) { f.test=[]; } とする時のifの式はどう書けばよいのでしょうか?
>>453 通常のフラグならそれでいいんだけど、辞書配列になるとダメみたい。
とりあえず配列になるとオブジェクトに変わるのを利用して
typeof f.test=="Object"
これで判定するようにしてみましたけど、なんか違う気がします。。。
if ((typeof f.test) === 'undefined')
>>455 ありがとうございます。
undefinedですか、助かりました。
[ch text="A"][ch text="B"][ch text="C"][ch text="D"][ch text="E"] とある場合、画面にはABCDEと表示されますが、このあとでEのみを消去する 方法はありますか? cm等でメッセージレイヤ自体をクリアし、ABCDまで強制的に進める、 という力技しか思いつかず、困っていまして……。
そこで問題なのは、履歴にたぶんABCD 次にABCと記録される事だと思いますけど、その場合その間だけ履歴を止めて[nowait]で上書きするのが一般的です。
>>457 スマートな方法はないね。
MessageLayer.clearLayer()で矩形塗りつぶしの位置とサイズを指定するように変更するのが一番いいんだけど。
Eだけ別のメッセージレイヤに描画して即非表示にするってのは
システムボタンってトランジョンで非表示にできる? どうすりゃいいのか教えてたもれ
裏ページのボタンを消してトランジションすればええやん
地震やばいがありがとう
たいした事じゃないんだけど [eval exp='f.bg = "BG_01a"'] [image layer=0 storage=&f.bg[1]] これだとstorageの""はいらないんだけど [eval exp='f.bg = []'] [eval exp='f.bg[1] = "BG_01a"'] [image layer=0 storage="&f.bg[1]"] 配列だとどうして""無いとエラー起きるんだろう?
下はファイル名「BG_01a」を指してる 上は「G」ってファイルを指してる ていうか大丈夫じゃない、上は文法エラー出る
ごめん 上は [eval exp='f.bg = "BG_01a"'] [image layer=0 storage=&f.bg] こうね。 つまり普通のf.として使うと""いらないのにって事
>>462 あっさり消えたよ!
綺麗にゆっくり消えたよ!!
ありがとう!!
@image layer=0 storage=&f.bg[1] ならエラーは出ない、それが答えだ
>>468 ほんとだ!
なんでこんな事になるんだろう。[]って二重に書けないって事?
エスケープすりゃいいんじゃね?しらんけど。 まあ、KAGの構文エラーには違いない。
すみません。 メッセージレイヤの不透明度なのですが、 // ◆ メッセージレイヤの色と不透明度 // frameColor には 0xRRGGBB 形式で ( RR GG BB はそれぞれ 2 桁の 16 進数) // メッセージレイヤの色を指定します。frameOpacity には 0 〜 255 の数値で、 // 不透明度を指定します。メッセージ枠用の画像が指定されている場合は無効で // す。 ;frameColor = 0x000000; // position タグの color 属性に相当 ;frameOpacity = 0; // position タグの opacity 属性に相当 ;frameOpacityを0にしても、透明になりません。 何か問題があるのでしょうか? 教えてください。
津波と地震が出てくるエロゲは自主規制な
メッセージ枠用の画像使ってないよね?
他人が自主規制と言うのはただの規制 たしかそんなエロゲは開発どこもしてなかったと思うけど
どうでもいいけどなんでKAGの設定って ;frameOpacityみたいに行頭に;が付いてるの?
なんか公式死んでね?
計画停電の影響みたい
>>476 サーバが落ちてるね
kikyou.infoからpingすらかえってこない
>>477 G2かな
>>475 UpdateConfig.tjsで設定行を認識するため
kagexって公式のリポジトリの中が空っぽだったのですが、もう配布してないのでしょうか?
失礼しました。古いURIを参照していたようです。自己解決しました。
辞書(Dictionary)クラスのキー配列を取得するにはどうしたらいいでしょうか? 他言語で言うところのfor-in構文やgetKeys等があるのではないかと探したの ですがどうにも見つからず、困っていまして。
>for-in TJSにそんなスクリプトらしい機能はありません。 Cでレコードを扱うかのごとく低水準なループぶん回して頑張ってください。 #まあ、for-in文自体がもう古いんだが俺は大好きだっ!yieldがあると、なお良い!!
そこで ScriptsEx プラグイン
ぶっちゃけ、継続実装してくれたらあとはAPIレベルで全部自前でやる。
そして俺はそういうのを一般公開してくれたのをありがたく使わせてもらう
488 :
名前は開発中のものです。 :2011/03/23(水) 16:02:21.97 ID:W5P2ERYE
質問です。 以下のソースで実行をしたのですが、エラーがでてしまいます。 どこが間違っているのかさっぱりわかりません。 エラーメッセージは 「タグ:image(←エラーの発生した前後のタグを示している場合もあります) について適切な拡張子を持ったファイルが見つけられませんでした」 なのですが、間違っている拡張子が見当たりません・・・ [trans time=2000 method=universal rule="nami.png" vague=100] [wt] *prorougu|[cm] [image storage"gakkou.jpg" layer="base"] [image storage="bs2.jpg" layer="0" visible="true" pos="center"] [image storage="bs.jpg" layer="1" visible="true" pos="left"] 「少し待て。」[lr]
489 :
名前は開発中のものです。 :2011/03/23(水) 16:06:46.08 ID:W5P2ERYE
すいません、=が抜けてました 自己解決です
>>486 TJSにこだわらないなら squirrel プラグイン
>ID:K0UqqEBn 2度も親切だな
492 :
482 :2011/03/24(木) 01:08:23.80 ID:4k6Kq4HF
>>483 ,484
JSライクな文法を見るにfor-inがあってもおかしくなさそうですが、
無いって事はなにか実装上の問題があったんでしょうね……。
Arrayへのassignが可能である旨のご教示、どうもありがとうございました。
最近吉里吉里でゲームを作りはじめた初心者です。 いろいろ試してみたのですがうまくいかなくて 良ければ教えていただけないでしょうか?>< [eval exp="tf.ex_ransuu=intrandom(0,2)"] [if tf.ex_ransuu==0] [jump target *0] [if tf.ex_ransuu==1] [jump target *1] [if tf.ex_ransuu==2] [jump target *2] [endif] *0 0です[l][r] *1 1です[l][r] *2 2です[l][r] これの条件文を簡単に書く方法はないでしょうか? [if tf.ex_ransuu==%] [jump target *%] といった感じで1つにまとめる方法がないか模索してるのですが、 やはり無理ですかね?>< 条件文がたくさんあるんですけど、やはり地道に書くしかないのでしょうか?
それ以前に色々書き方間違ってるけど、それは自分で直してもらうとして…… [jump target=&'*'+tf.ex_ransuu]
>>494 ありがとうございました
動きました^^
いろいろ間違ってました^^;
もっと勉強しますorz
496 :
名前は開発中のものです。 :2011/03/26(土) 11:48:58.33 ID:wgJtk54J
kirikiri liveeditorってどうなったんだろ
・・・すまない。スレ違いとは分かっているがちょいと叫ばせてくれ。 ・・・分からないってのは王様じゃねぇぞッ! 俺も使った事無いってのに色々質問するわミスがあったらネチネチいびるわ… 少なくともそこまでする義理ないのに付き合わされる身にもなれってんだっ! 吉里吉里でゲーム作るって決めたのおまえだろっ! 巻き込んでるのもおまえだろっ! ちったぁ自分で解決する努力しろってんだぁぁぁぁっ! ・・・見苦しい絶叫、すいませんでした。
変な言い方だけど、吉里吉里のタグ程度理解出来ないDと組まされると不幸だよ 平気で無茶振りしてくるし、質問責めに遭うから 逆にタグを理解してるつもりのDも、今度は自分が知ってる事以上の事はバグの素と決めつけるからなんともだけど デバッグで必要だから最低タグくらい覚えろとは言っておいた方が無難
>>497 の書き込みから考えて、流石に素人サークルだと思うけど、
そこまでする義理が無いって言うなら、きっとサークルメンバーですらないんじゃないかな。
きっぱり、忙しいから相手できないで終了じゃね?
「このCGを吉里吉里で動画にして」って言われたときはマジで意味がわからんかった 今でもわからない
そう言う時は、「吉里吉里で動かしてやるから、AEで作ってもってこい」と言ってやれば良い 「吉里吉里はCGは表示するけど、そのCGを書けと俺に言ってるんじゃないよね? 動画を作るのは動画屋の仕事 吉里吉里は動画を再生するだけ」と、さらに言う
ストップ・アニメやりたいなら素材用意しろ。吉里吉里はただのカメラだ。モーションブラーくらいかけてやんよ? で通じれば苦労しないんだがな。
たまにキャラ絵数枚と背景と効果のみのムービーとかあるけど、 それで普通に見れるものが作られてると、地味にすごい技術だと思って感心してしまう。 吉里吉里上でやるこっちゃねぇとは思うけど。
吉里吉里で動画的な事をしようとするとムービーにするか、もしくは単純にmoveタグしか標準には無いから、拡大縮小とかしようとするとプラグインが必要。 そのあたりDが根本的に理解してなくて、他所の会社の動いてるのみて「こんなのやれるんだ。いいんじゃね?」とか単純な発想じゃないのかな。 似たような話聞いた事あるけど、そんな簡単に作れるなら苦労しないって。
吉里吉里はソフトウェア描画だからリアルタイムに画像に線形変換かけたりするのは 負荷がものすごく高くつくんだよ ハードウェアの3D機能使えばほぼノーコストでできるんだけど
プログラマから見れば労力と時間とマシンリソースの無駄だからAEでやれとは思うがスクリプタはよくやりたがるよな。
そういやstretchCopyとかを別スレッドで走らせられないのかねえ…… 次のシーンで使う画像の加工を前のシーンでやっておくとかしてみたいけど
>>509 それライセンス契約なんだろう?
最初に買ってしまえるならともかく、延々ライセンス料払うのもなんだかなあ
値段次第じゃない? 無料の吉里吉里使ってると理解しづらいかもしれないけど、Nscritperなんかも 延々とライセンス料払うわけで。 投下した金を超えるリターンが期待できるなら払ってもいいんじゃないかな。 ……と言ってる俺は、使いこなす能力も時間もないから問い合わせする気すらないけど。
商用向けのミドルウェアだから法人の金銭感覚じゃないと契約する気にならないと思うよ
自分で作ればいいじゃん
立ち絵用のLayer派生クラス作れば行けそうな感じ KAG側のレイヤ管理いじらないといけないかもしれないけど
欲しいのはメッシュワープ機能のみなんだがな 誰か作ってくれないかな あとは手打ちが面倒と言うだけでやれない事は無い
そりゃ多少は自作したけど、あれだけGUIになってるのは羨ましい
>>497 のサークルの詳細は分からないが
どんな所にせよ、そんな調子なら「面白いお話づくり」に
リソースぶっこんだほうが受け手作り手ともに幸せになれる、ぜったい
>>509 それツール自体が吉里吉里なんだぜ……
いろいろとおかしい
>>518 同じM2のツールの最新版ってやつだよな
このサンプル動かしたけど確かにメッシュがあればやれる幅が広がるんだが、dll誰か作ってくれるとほっこりする
520 :
497 :2011/03/30(水) 14:45:31.48 ID:vdvKQkQV
・・・あー、申し訳ないのですがまずサークル以前です。 弟の個人作成に巻き込まれて、色々押し付けられてるだけなので・・・ 身内だから切り捨てにくいし、注文は雑だし・・・ 「使いやすいやつ」とか「ぱぱっとできるやつ」とかで分かるかと。 確かにネットは慣れてるけど、吉里吉里扱った事無い人間に使い方調べさすなと・・・
今となっては吉里吉里のソフトウェアレンダリングって足枷でしかないよな オンボードでもアドベンチャーゲーム程度なら全く問題ないし それどころか画像の変形とか何でも無理矢理CPUでやったら要求CPUが上がってむしろ動作環境を狭める
プラグイン使えばいいだけだろ
現行吉里吉里は描画系の総入れ替えが可能になってるから、足枷にはなってないと思うよ。 誰かがなにかまとまったもの出さないと先にはすすまないだろうけど
>>521 >オンボードでもアドベンチャーゲーム程度なら全く問題ないし
そうでもない
ひとむかし前のノート使ってるからよくわかる
今となってはっつってんのに一昔前ってアホかw
526 :
名前は開発中のものです。 :2011/03/30(水) 18:24:00.17 ID:4wSckLwv
>>524 だからって同じことをソフトウェアでやったらもっと酷いわ
ハードウェアアクセラレーション全開前提で作って古いマシンで激重になるのは
表現の幅が広がったからであって、ソフトウェアレンダリングしたからって古いPCで軽くなるわけじゃないぞ
>>520 優しい兄貴(姉貴)だな
このスレのテンプレに載ってるサイト教えて「あとは自分でやれ」で良い気がするがw
弟「あ、あの……さ。ゲーム作るの、手伝って欲しいんだけど……」 俺の弟がこんなに可愛いわけがない!!
質問させてください。 吉里吉里逆引きマニュアルの「グラフィカルボタンに任意の文字列を表示させるには」 を使用しています。 ボタン表示などは問題なく作れたのですが これをifタグで判定させエンド回想に使用しようとしたのですが numが引っかかるのかエラーが出てしまいます。 numに見ているエンド数を入れてループさせればいいのかと思ったのですが 配置のことを考えるとこんがらがってしまいました。 何かいい方法がないでしょうか。
>>530 とりあえずそこの部分のソース出さないとなんとも言えない
>>532 単に動画ならAEで作った方が楽だし、スクリプトデモだとラグが酷い
ところで観てないからわからないけど、これマギカとか言うアニメの曲?
そうならメーカーが堂々と版権大丈夫か?
Madoka Partners(アニプレックス、芳文社、博報堂DYメディアパートナーズ、ニトロプラス、ムービック、シャフト) というわけで問題ない
版権もってる側のメーカーの1社だろ
そう言う事か しらんかった
メッシュワープ作ったとして誰がGUIかぶせるんだよ。 ぶっちゃけエロゲエンジンのメッシュワープなんて格子振動で代用が効くぞ?
>>533 つべはカスラックに金払ってるから、カスラック担当の楽曲は使ってOKですよ?
元々JASRACは曲と詩の権利しか管理してないからそれ以外の演奏歌唱原盤などは個別に許可取らなきゃダメだよ
どうもKAGからTJS使うと、erがうまく動作しないような・・・ chあ wait er でもwaitがあるのにすぐ消えてしまう。
evalとかでハンドラ直接呼んでるとかいうオチじゃないだろうな
resetwaitタグを使えばいいんじゃないかなー
until指定するとエラーでました。
KAG呼んだ方が安全かと思って… どうもforの中でタイミングがとれません
どう呼び出したのか具体的に書かないと誰もアドバイスできないよ。たぶん
>>542 のエスパーであってるとは思うが
547 :
名前は開発中のものです。 :2011/04/04(月) 16:10:10.15 ID:lwT1IfMp
ちょっと質問なんですが、体験版を作ってその続き(体験版は一切改変しない)を作ったとして、 セーブデータは持ち越し可能でしょうか? 回答お願いします。
>>547 栞に保存される内容に齟齬が生じないなら持ち越し可能
だけど、それ以外のパラメータを普通は設定するから、最初にゲームを作ってそこから切り出して体験版を作ったとかじゃなければやめたほうがいいな
551 :
名前は開発中のものです。 :2011/04/04(月) 20:29:36.02 ID:4A2Y9HfE
質問です。 吉里吉里を終了したのに、再度起動しようとすると、 「吉里吉里は既に起動しています」 と表示され、起動できません。 これって何か原因があるのでしょうか? わかる方、いらっしゃいますか?
それが制作中のデバッグ・テストプレイの話だったら どっかに小さい長方形の数個ボタンが付いてる奴が残ってる可能性があるから それの×ボタンを押す
>>550 >
ttp://www.geocities.jp/keep_creating/DojinDOC/dojin-script.html >背景管理システム キャラクタ管理システム
ここは統合しろよと思うな。
テキスト管理システムも移植性を考えたら今はOpenGL/OpenGLES一択だからAPIレベルで見ればテクスチャだから統合できるな。
スクリプト側で別物扱いしとけばいい。あとテキストや場面構成なんかのスクリプトと演出のスクリプトは分けたほうがいいだろう。
演出は昨今よく使われる表現は固定機能でそれ以外はプログラマブルで良い。どうせアレがほしいコレがほしい言い出すんだから。
こうだな↓
-------------------------------
ナレーショナル| |プ|
───────┤エフェクト |ラ|
エンジン |FIXorPRG |グ|
─────────────┤イ|
DSL |ン|
───────────────┤
ネイティブ │
───────────────┘
長方形のやつはなかったのですが、 タスクマネージャを開き、krkr.exeのプロセスを終了したら、 問題が解決しました。 ありがとうございました。
あのさーソフトメーカーさんさー 頼むから、パッド無効をデフォルトにしておいてくれよ キーコンフィグもできないのに有効にする意味あるの? パッドでマウスエミュレートした方が操作早いんだよマジで ほんと使い物にならないからやめてくれ!
メーカーさんじゃないけど、-userconfオプションの設定で パッド無効にできるから、そうするといいんじゃないかな。 メーカーさんがオプション潰してなければ、だけど。
バカですが解決しました。 erは直下の行のchにも効果が及ぶようなんで、 ch er ch(消える) でできました。
それきっと解決してないよね……
なんかわけのわからない問題がおきて、messageレイヤが別のになったりした。 もうイヤになったんで、普通にkag.processCh, clear2みたいなの使いました。 ・・・タグはもう使わないよ
公式ドキュメントって誰がメンテしてるか分かりますか? ちょっとドキュメント読んだだけじゃ厳しかったのでSystemフォルダ配下の TJSファイルを追ってるうちに、読みながらコメント付けてあとからNatural Docs あたりで出力してやればそれでドキュメント出来るよな、と思って。 既に作業中だったり、「それは○○がやってるはず」とかであれば自分がやる 意味ないけど、もう誰も手を入れてないのであればやろうかと思って。
そりゃ dee たんだろう なんか作業するつもりあるならアカウントは発行してもらえると思うけど、 まずはある程度形にしてからにしようね。妙なコメントたされても誰も嬉しくないから。
564 :
562 :2011/04/06(水) 00:52:35.86 ID:FlgZuuTF
>>563 やっぱりdeeさん本人か。開発MLが見えないのでひょっとしたら誰かいるのか
と思ったんだけど。
確かに、アカウント発行されたくせにやるやる詐欺で終わるとか
最低なんでとりあえず一定以上形になったレベルにしてから言うことにします。
ちょっと質問させてください。 例えばGame_Timerと言うオブジェクトを作ってinterval=50くらいに設定して常にゲーム中動かしておいて、他の色々なクラスから呼び出して使うとか可能でしょうか? 具体的には、画像の移動やストップウォッチ関数みたいなものや、とにかく多目的に使いたいのですが、 現状ではそれぞれtimerを別々に設定していて最大で10個くらい同時に動かしたりするので負荷や無意味に消費してるメモリが大きいんじゃないかと思ってるのですが。 そこまで気にする必要は無いのでしょうか?
無いです
ですか。 20個30個くらいでも全然平気なのですか?
メモリはレイヤ一つつくるほうが何百倍もくらいますから気にする必要はないです。 処理負荷のほうは、束ねたら束ねたで、結局処理ごとに呼び出し処理が必要になったり しますから、数千とか作ったりしない限りは誤差の範囲かと。 呼び出し先の処理のが支配的でしょうし。 普通はタイミングズレの問題のが問題になるんじゃないかと。 生成タイミングとインターバルの指定が同じなら原理的にタイマ間のずれは無いですが、 生成タイミングが違えば当然ずれます。同目的のものは適当に処理関数を登録する キューとかつくってたばねたほうが良いとは思います。いわゆる「タスクシステム」的な設計ですな。 処理によっては Continuous Handler の利用を考えたほうが良い場合もありますのでケースバイケースで
M2モーションを作ってる会社ってWEBサイトあるのかな? ググってもみつかんないねぇ。
M2でぐぐって1ページにでてくるし Wikipedia にものってるぞ
マジかよ・・・
M2のウェブサイトに CheeseWare MotionEditor の情報ってぜんぜん掲載されてないんだね。 てか色気のないサイトだなw
あそこのあれで便利だなと思うのはUIだけ 素材を作るだけならもっと高度なツールがいくらでもある でもUI部分は確かに欲しい
機能デモの動画とか上がってるけど 一般公開してないのにどこ向けのデモなんだ
質問させて下さい 現在コンフィグ画面でスライダーを使用しているのですが ゲーム画面を開きなおしたり、栞を読み込んだりするとスライダーの値を無視してBGM.tjs内のvar volume = 100000;でBGMが再生されます またスライダーを操作すると元に戻るのですが case 7: sf.bgm_vol = tf.SliderPosition[i]; kag.bgm.currentBuffer.volume=sf.bgm_vol; break だけではきちんと数値が反映されないのでしょうか?
caseの条件を読む限り、sf.bgm_volの中身が、 tf.SliderPosition[i]と同じ場合sf.bgm_volの値でボリュームを設定しろと言う命令だけどそれでいいの? これだともしかすると例外caseが100000だったら、いくらやっても100000で鳴るんじゃないかな
あっすまん ボケてる間違い 申し訳ない ウソ言った
まず音を鳴らすには二種類あって、kag.bgm.currentBuffer.volumeやkag.bgm.currentBuffer.volume2を弄るよりkag.bgm.setOptions()を弄った方がいいよ
575です case 7: sf.bgm_vol = tf.SliderPosition[i]; kag.bgm.setOptions(%[volume:sf.bgm_vol]); break; このように変更してみました 開きなおし等があってもBGM.tjs内のvar volume = 100000;に影響されないようですが 音が0%か100%でしか流れなくなりました
もしかしてmidi? あともう片方の大域音量の方は?もしかして1とかになってたりして・・・・
いえ、Waveでやっています case 6: sf.bs_vol = tf.SliderPosition[i]; kag.bgm.currentBuffer.volume2=sf.bs_vol; kag.se[0].volume2=sf.bs_vol;// kag.se[1].volume2=sf.bs_vol;// break; case 7: sf.bgm_vol = tf.SliderPosition[i]; kag.bgm.setOptions(%[volume:sf.bgm_vol]);// break; 大域音量のほうは現在正常に動作しています
あっスライダーが栞に反映されてないって事か。 それならstoreかrestoreに数値が反映されてない。 tf.は通常栞には反映されずに捨てられるから、その書式だとたぶんスライダーの受け渡しの変数にtfを使ってるから初期値に勝手にリセットされるんだと思う。
書式の最初にsfの値をtfに受け渡すか、tfじゃなくf値で持っておくかしないといけない。簡単な対処方としては。
sf.SliderPosition[i]に変更してみたのですが、結果は変わりませんでした 栞に反映されてないというのは kag.bgm.currentBuffer.volume=sf.bgm_vol; このときだと思います kag.bgm.setOptions(%[volume:sf.bgm_vol]); この時は開きなおしても0%は0%それ以外の数値が100%で流れるようです
もしかしてstringになってるとか?
いえ、なってないです
あとはDebug.messageで一個一個問題らしい場所を潰していくしか無いな
とりあえずそれで頑張ってみます! レス下さった方、ありがとうございました
window.actionで"onChange"拾え。 javaのPropertyChangeListenerと同じだ。
590 :
名前は開発中のものです。 :2011/04/07(木) 04:35:40.96 ID:IRROSzL4
function onChange(pos) { // onChange window.action(%[target:this, type:'onChange', position:pos]); } これのことでしょうか?
>>568 お返事遅くなりました。
機能別に束ねて見て、複雑になるようならやはり個別に動かしてみたいと思います。
結構タイマーをいくつも作って同時に動かしていたので、これ重くないかな?といつも不安でした。
描画処理などに関わるタイマー(例えば常にレイヤーのopacityをチェックしているタイマーなど)を、指定した数値になったら描画処理を飛ばすような処理に書き換えればそれほど負担はかからないのですね。
ありがとうございます。
moveが動きだす前が重くなる。先に透明で流しておくか
内部的には、opacity=0は、そのレイヤが存在しない扱いみたいに処理されるのですか?
575の者です 解決しました case 7: sf.bgm_vol = tf.SliderPosition[i]; kag.bgm.setOptions(%[volume:sf.bgm_vol\1000]); break; ボリュームのところに入れる値を1000で割っていなかったから大音量になったようです
ただWaveSoundBuffer.volumeに丸められただけというオチか
吉里吉里で前景レイヤに動画を載せて、動画の前にメッセージを表示させたいのですが メッセージを表示すると、動画が一時停止した状態のままになったり メッセージと動画を同時に表示することができません どうすればいいでしょうか(・ω・;) わかるかたお願いします m(_ _ )m
無理です
え!?
動画の種類にもよると思う。 mpegはできるけどswfはできない。
mpegだと思うけどやってる奴いるな 普通にやってるぽいけど、そんなに難しい事だったのか? ニコ動にアップされてるのあるじゃん
こういう時は、こう書いてみたけどうまくいかなかった、と質問すると添削してもらえるんだぜ
>>597 動画にメッセージ埋め込めば同時に表示されます
604 :
597 :2011/04/09(土) 22:22:32.06 ID:aS5OO2gO
みなさんお答えありがとうございます! 貴重なご意見を参考にやってみたいと思います!
すみません、色々調べたのですが、どうしてもわかりません。 [mapdisable layer="base"]をTJSから実行したいのですが、 該当する関数を教えて頂きたいです。
クラスを作らずにfunctionの中で作ったレイヤを外部から使う事って可能でしょうか? 引数で渡せば可能なのですが、例えば画像を表示するだけの関数を作って、それをtimerで動かしたり透明度を弄ったりしようとしたら引数を受け渡せずに出来ませんでした。 単純にクラスを作れと言う意見は確かにそうなのですが、ちょっと気になって色々弄ってみたのですが素人に毛が生えた程度の能力じゃ駄目でした。
function test_cg(){ var test_cg; var test_opa = 0; var timer; test_cg = new Layer(kag,kag.fore.base); kag.add(test_cg); with(test_cg){ // 適当に画像表示 .opacity=test_opa; .visible=true;} timer=new Timer(this,"action"); timer.interval = 20; timer.enabled=true;} function action(){ global.test_cg.test_opa++;} こう言うのを作って、test_opaをリアルタイムでtest_opa++みたいにしてじわっと表示させようとしたのですが、そもそもtimerが動いてないようでした。 classに纏めてやれば普通に動く事は分かってるのですが、こう言う剥き出し状態だとダメなのでしょうか? あとたぶんglobal〜もこれだとたぶんエラー起きると思うのですが。
test_cgとtimerを関数内で宣言すると、関数から出た途端に無効化されちゃう .opacity=test_opa はただの値の代入で opacity=0 と一緒。Layerクラスにtest_opa変数が無いからエラーになっちゃう 関数名と変数名の重複はしない方が良いよ var test_cg_layer; var cg_timer; function test_cg() { test_cg_layer = new Layer(kag,kag.fore.base); with(test_cg_layer) { .opacity=0; .visible=true; } cg_timer=new Timer(this,"test_cg_action"); cg_timer.interval = 20; cg_timer.enabled=true; } function test_cg_action(){ test_cg.opacity++; if(test_cg.opacity>=255) cg_timer.enabled=false; }
変数を中で宣言したからダメだったのですね。 どうしてダメだったのかがわかりました。 ありがとうございました。
便乗で申し訳ないです
new Layerで作るオリジナルレイヤをforやwhile等でまとめて何枚も作る事って可能です?
数枚程度作るだけなら
>>608 みたいにtest_cgとかみたいに直接レイヤ名を書けばいいけど数十枚とかなるとさすがに無駄に長大になるだけだから変数の配列でcg_name='test_cg[0]';cg_name = new Layer(kag,kag.fore.base);みたいに書いてみたけどダメだった
>>611 例えば、cg_nameという本に、いくら「これは箱です」って書き込んでも、箱に変化したりはしない。
「これは箱です」と書かれた本になるだけ。
シンプルに書くなら多分、for文中とかでこう。分かるとおもうけどいちおう、 i は変数ね。
test_cg[i] = new Layer(layer);
>>612 おぉ出来たっす!
こんな簡単な事が分からないって俺PGの才能無いなorz
ありがとです!
それは人から説明されないとわからない事か? 二十年も三十年も生きてきてそんな事もわからないなら お前が今まで喰ってきた飯は全 部無駄だったという事だ
>>614 ここそういうスレじゃないんで、マ板でやってください
才能というより理解の問題ですね。コンピューターは、プログラマが指示した通りにしか動いてくれないので、よく理解してない内容を適当に書けば、よく分からない適当な動作をする物なのです。 上達を望むのなら、理解を深める努力をすると良いとおもいます。 まあ、本職のブログラマでも、プログラムを魔法の呪文と勘違いして、理解も出来てないようなコードを書き散らす輩は結構いるんですけどね。
質問ですが、VBのlineのように任意の直線を引く事は可能でしょうか? 具体的には格闘ゲームの体力ゲージのように、数値をバーで表示したくて、その描画のために使おうと思っています 一通りマニュアルを検索に掛けてみましたが見つかりませんでした
>>617 100%状態のゲージを画像で用意しておいて、数値に応じて範囲を切り出すのが楽だと思う
>>618 なるほど、その方法は頭にありませんでした
一度試してみたいと思います
ありがとうございました
それにしても次のマルチプラットホームの奴ってTJSは使えるんだろうか? 使えないなら覚えるだけ無駄な気がする
それが出てくるまであと10年はかかるんじゃないか?
>>620 まあそうだったと仮定しても、必要になったらまた憶えなおすわ
せめてその事くらいは先に教えて欲しいな ぶっちゃけ頭の中でいろんな言語が混在してしまってるから、はっと気づくと違う言語で書いてる時あるから覚えておくのは少ない方が助かる
>>607 仕事が忙しく、お礼が遅くなりましたが、ありがとうございます。
私にとって最高の回答でした。
ちょっと質問 おまけモードを作ろうと配列で座標とか管理してたんだけど、そこに式中関数組み込みしようとしたら、 良く考えたら式中関数は呼ばれた時に for(var i=0;i<10;i++) { button_[i] = new SystemButtonLayer(kag, pop_layer_tp_fore, function() { kag.se[1].play(%[storage : 'se_ok.wav']); button_select = i; }incontextof this); with(button_[i]){ .fillRect(0, 0,kag.scWidth,kag.scHeight, 0x00000000); .opacity=255; .visible=true; } } with(button_[0]) { 画像のそれぞれの設定 } ・・・・と書いたんだけど、グラフィックボタンを押したら直接飛ぶんじゃなくて、button_selectにそれぞれの数字(button[0]なら0と言う感じ)を入れて、後でそれを判定して飛ぶようにしたかったのだけど、 当然この形だと式中関数が実行されるとiが見つからずにエラーになるんだけど、これの対処方法ってどうすればいいんだろう? 一番良いのは、配列の添え字をそのまま数字として扱えれば理想なんだけど、そう言う事って可能かな? 式中関数を組み込む形で一気に配列で作ると、それぞれのボタンの違いを判断する方法が思いつかない・・・・・
その場合はちゃんとクラスつくったほうがええとは思うが、どうしても式中関数でしたいなら function() { global.kag.se[1].play(%[storage:'se_ok.wav']); owner.button_select = i; } incontextof %[ owner:this, i:i ] こうすればいい。辞書をコンテキストにする場合は、 グローバルを自動的に検索してくれないからそれだけ注意な
>>628 ありがとう。
これは思いつかない・・・・・勉強せねば
追質問申し訳無いです
>>628 で式中関数の中で別の変数を定義する場合
function() {
global.kag.se[1].play(%[storage:'se_ok.wav']);
test_flag=true;
owner.button_select = i;
} incontextof %[ owner:this, i:i ]
このtest_flagを単にclassの外に定義してglobal.kag.test_flag=true;と書けば良いだけなんだけど、
classの中で定義した場合はどう書くんだろう? thisは使えないし、ownerもダメだし、
newで宣誓したオブジェクト名(global.xxxxx.test_flag=true;)でやるか、
timerなどで.button_selectを監視すると言うのも手だと思うけど、単純に上手く書けそうな気がするけど無理なのかな?
ちなみにclassの外に出来るだけ定義したくないのは、万が一変数が被るのが嫌なだけだから、絶対に被らない変数にしてしまうと言うのも手だと思うけど、それだと逆にスクリプト中で見にくいかなと。
言ってることが単に「クラスに静的変数が欲しい」って話なら class Hoge { function Hoge() {} }; Hoge.staticVarName = 1; とかで普通に動くよ ただし、該当クラス中だと同名コンストラクタがあって名前かぶってるから、アクセスするときは global.Hoge.name とかする必要がある。
ごめん、
>>630 の説明が悪かった。
//*************************
var test_flag; //←問題はこれ※※
class Save_base()
var save_layer;
var button_ = [];
function Save_base()
save_layer = new Layer(kag, kag.fore.base);
kag.add(save_layer);
with(save_layer){// ここでセーブエリアのベースを定義
.visible=true;}
for(var i=0;i<10;i++){
button_[i] = new SystemButtonLayer(kag, save_layer, function(){
global.kag.se[1].play(%[storage : 'se_ok.wav']);
global.test_flag = false; //←問題はこれ※※
owner.button_ = i; //ボタンの種類
}incontextof %[ owner:this, i:i ]);
with(button0_fore[i]){
.fillRect(0, 0,kag.scWidth,kag.scHeight, 0x00000000);
.opacity=255;//ここで画像の共通部分定義
}}
//以下端折る
}
//*************************
ここで問題なのは、
>>628 が事前に教えてくれたように、グローバルを自動で検索しなくなってしまってる事で、
こうしてclassの外にtest_flagを定義するとちゃんとglobal.test_flag = false;でエラーが出ないんだけど、var test_flag;をclassの中に入れてglobal.Save_base.test_flag = false;としてもエラーが起きる。
kag.addPlugin(global.test_base = new Save_base());として、global.test_base.test_flagと書き換えると上手く動くけどそれじゃ複製出来ないし、色々試したけどダメだった。
万が一の事故が怖いからvar test_flag;をclassの中に入れて、式中関数が上手く動くように出来ないんだろうか?と言う質問。
んー、普通に global.Hoge.test_flag = false; で大丈夫なはずだけどな。 Hoge 定義前によんでるとか、代入じゃなくて参照しようとしてるとか、そういうことはないかね
うーーーーん}incontextof this);ならvar test_flag;をclassの中に入れても式中関数中のtest_flagが普通に機能してるから定義前とか代入とかでは無いはずなんだけど、 }incontextof %[ owner:this, i:i ]);だと、当然thisを付けてもダメだし、global.Save_base.test_flag=false;でうまくいかない。
追記 var test_flag; をclassの中に入れた状態で、 }incontextof this);だと、this..test_flag=false;は機能してるけど、global.Save_base.test_flag=false;はエラーが出るぽい 何か間違ってるのかな?
式中関数のthisってTJSだとレキシカルじゃないからouterのコンテキスト指すんじゃないの? んでTJSはネスト関数は全部globalにフレーム作られるからそれをincontextof thisすればカレントはglobalじゃないの? ていうか >class Save_base() >function Save_base() は通らないんじゃないの?
>>636 }incontextof %[ owner:this, i:i ]);を残したままにしたいんだけど、その状態だとglobal使えないからどうにも無理なんだね。
素直にクラスの外に出すか。
テーブルをコンテキストにしたら自動参照されなくなるだけで、 global はいついかなるときでも使えるわけだが…… なんか全然別の問題ではまってるんじゃね? エラー出るならなんてエラーでるのかも書こうな
根本的な事を理解出来てないぽい コンテキストにした場合、グローバルで指定するのはnewで作成したオブジェクト名じゃないとダメ? それだと仮に複数作る場合とかどうやっても元を書き換えないといけないから大変だと思って、 どうにか元のクラス名で解決したかったんだけど 変数をクラスの外に出すか、コンテキストの中のグローバル指定をnewで作成したオブジェクトで指定するかの二択なのかな? あとglobal.Save_base.test_flag=falseも、エラーメッセージは出ないんだけど、コンテキストの外からdm(test_flag)すると値が変わって無い エラーが出るならわかるんだけど、なぜエラーでないんだろう?
もしかして「クラスの中にいれる」って class Save_base { var test_flag; } ってやってるの? それは単にメンバ変数だから、 Save_base を new したオブジェクトからしか参照できるわけが無いんだが…… 前出てた構造だと owner が Save_base のオブジェクトなんだろ? owner.test_flag でアクセスできるだろうて。 そもそもその test_flag で何をやりたいのか書きなさい。どう書けば良いか教えてあげるから。
あっ出来た。ownerだけでよかったんだ・・・・・理解力なさ杉 global.Save_base.test_flagでエラーが出ないからこれで正しくて何かが間違ってるんだろとなんで動かないのかと全然見当外れのところを弄ってた ごめんなさい、長々付き合ってくれてありがとう あとはなんとか出来そう
642 :
名前は開発中のものです。 :2011/04/14(木) 16:13:47.09 ID:vxf4RKs/
吉里吉里のフォント変換でjis2004対応フォントが選べないのですが対応してないのでしょうか?
レンダリング済フォントデータで画面一杯の文字、つまりfont size580 を作ろうとすると死ぬ。容量50Mとかになる。 次のバージョンはfont sizeを変更できるとイイな・・・
そんなの画像で持てw
そういえばフクロマンスって荒らし報告するんだっけ?
ただのビットマップでもった方が10倍以上軽いんじゃないか?
そういやさ、虹プラグインとか太陽光プラグインとかないなぁとか 思ったんだけどこれって普通シェーダー使うよな。 吉里吉里ェ。CPU万歳!
虹は使いどころが無い 太陽光は表現手法が山ほどある 動画で作るが吉
質問と言うか、音楽関係はまるで分からないので具体例を教えて欲しいです。 wavにkrkrltで適当にlabelを作ってsliファイルを保存で作ったとします。 そのラベルを通過したらseを鳴らそうと考えたのですが、全くどう書けば良いのかもわかりません。 sliファイルが吉里吉里専用のファイル形式だと今の今まで思ってた程の音楽シロートですみません。 #2.00 # Sound Loop Information (utf-8) # Generated by WaveLoopManager.cpp Label { Position=11904; Name='test; } sliファイルがこんな感じで、適当に音を鳴らして(wavとsliのファイルネームは合わせている) kag.bgm.buf1.open('music_test.wav'); kag.bgm.buf1.play(); kag.onLabel function(){ if (kag.bgm.buf1.onlabel(test))kag.se[1].play(%[storage : 'beep.wav'] }incontextof kag; この段階ですでにエラーが出てしまいます。 たぶんぜんぜん間違ってると思うのですが全くわかりません。 単純にラベル通過したら音が鳴るようにしたかっただけなのですけど、どう書けばいいのでしょうか?
>>652 間違いと勘違いが満載のコードなのか
俺の知らないtjsの記述法がこんなにあったのか!なのかマジで分からない半端な私
kag.bgmのクラスの「下」に、onlabelイベントを定義する必要があるんだけど
ぶっちゃけBGM.tjsの該当クラスの中に
function onLabel(ラベル名){略}を放り込むのが楽ちんです
sliファイルは別に問題ないと思う
適当な例: function onLabel(label) { kag.se[1].play(%[storage : 'beep.wav'] ) if (label=='beep') }
>>654 ありがとうございます。
ただVUの問題とかもあるんで、可能なら基本のtjsは弄りたくないんですが、
その場合の方法が全くわからなくて……
それともoverrideでやるしか無いのでしょうか。
バージョンの管理ができなくなる程の大改造じゃないし KAGに依存しないサウンドシステムを作るんだ!ってわけでもなければ お手軽な解法でもいいんじゃね それよりか、そこまでやりたきゃ ソースを読み込んでKAGシステムの構造を理解することが先な気がするよ
そっちが先か…… 他の部分ならともかく、音楽は苦手意識でずっと敬遠してたから根本が分かってなくて謎スクリプト…… 元々TJSも中途半端なとこにドツボ状態。 とりあえずもう少しググレカスしときます。
まだ改善されていないんで何度も言わせてもらうが パッド使用オンがデフォルトになっているのをオフにしてもらえませんかね? てか、吉里吉里システムのデフォルトがオンになってるの? もしそうなら吉里吉里製作者の方、どうかオフがデフォルトにしてください キーカスタマイズもついてないくせにオンにする意味があるんでしょうか? よろしくお願いします
デフォルトOFFになってると「パッドで動かないのでONにしてください」という文句が来るんだZE
まさか、そりゃないでしょ てか、設定画面でオンオフできないものなの? バイナリを書き換えたりしてるのか?
自分でオフにすりゃいいだろ
そのまさかがあってだね…… 設定自体は吉里吉里設定からできるよん
オフの仕方は知っているんだけどね そうか、オンにしてくれって要望があるのか 確かにオフにしてくれって声は少ないだろうな そういう奴はそもそもパッド使ってないんだし 俺みたいにマウスエミュレートして使っているような奴は少数派か
ちなみに「選択肢でカーソルが止まらないのでどうにかしてくれ」もたまにきます。 返答は「パッドの上に本かなにかのってませんか?」で100%正解
そういうサポートを見るにつけ、自分は想像力の欠如した人間ではありたくないと強く思うね
>>658 コントローラをつないだママにしてると、赤LEDが勝手に光ってイヤだってコト?
マウスエミュレートして使ってるから、PAD機能がオンになってると邪魔になる
前から欲しいと思ってた機能だな。 もしキーボードも割り当てできるなら俺も使いたい。
JoyToKey使えばできるよ これやればエロゲしながらデスクトップで何か作業するときも いちいちマウスに持ち替えなくてパッドだけでできるし PCゲームもそのままできるし楽
ボタンを押すとエロゲの方も読み進んじゃうってコトだよね? ソレはそっちの責任じゃないの? エロゲアプリにフォーカスいってるから反応しちゃうんでしょ
うん、こっちの都合だね ただ、何度も言うけど、キーカスタマイズもできない機能を オンにするはどうなんだって話
672 :
名前は開発中のものです。 :2011/04/18(月) 20:18:38.59 ID:DYZujjre
初歩的な質問なのかも知れませんが、TJSにはKAGで言う所の エンティティの機能と同じ働きをしてくれるものはありませんか? 例えば、 [eval exp="f.n='one'"] [eval exp="f.hairetu=[]"] [eval exp="f.hairetu[0]='zero'"] [eval exp="f.hairetu[1]='two'"] [iscript] f.hairetu.insert(1, "&f.n"); [endscript] f.hairetu[1]にf.nに入れてあった文字列「one」が入るようにしたいのですが どこを修正すればよいのでしょうか?
f.hairetu[1]=f.nじゃないの?
674 :
名前は開発中のものです。 :2011/04/18(月) 21:38:01.19 ID:DYZujjre
>>658 確かに、このスクリプトのままだとそのようになってしまうのです。
ですが、f.nに入れてあった文字列「one」がf.hairetu[1]に入るようにしたいので
TJSでエンティティと同じ機能をしてくれるものをおたずねいたしました。
何か方法はございませんか?
言っている意味が解らん
insertだから配列の間に割り込ませるメソッドだな 試してないからもっと上手い方法あると思うけど、みっともなくてよければとりあえず適当な数値でinsertして、それからf.hairetu[1]=f.nでもいいんじゃないの? 根本的な解決じゃないけど
いや、だから iscript の中なら f.n そのままかけばいいんだって…… 一応エンティティ相当の処理は Scripts.eval("f.n") だが無駄でしかない
678 :
名前は開発中のものです。 :2011/04/18(月) 22:48:56.45 ID:DYZujjre
>>675 具体的に言いますと、
アイテム覧を配列で作ったら楽なんじゃね?
↓
TJSのaddとかinsertとかremoveメソッドがあれば
簡単にアイテムを追加したり削除したりできるんじゃね?
↓
エンティティ使えないとかどういうことなの
↓
どこにTJSでエンティティ的なの使う方法あるんだ?/(^o^)\←今ココ
という状態でした。
>>676 >>677 ご意見、まことにありがとうございました。
ご指摘により「"」を消しましたらうまくいきました。
これで作業を進めることができます。本当にありがとうございました。
ZOOMプラグインでmessageレイヤやるとevalがどうとかいうエラーがでるな・・・
質問です。TJSの変数(var で宣言する変数?)と、 KAGの変数(f. の変数?)は違うものでしょうか。違うとしたら、 双方の間で内容を受け渡すには、どうすればいいでしょうか? TJSの変数をシナリオ中に表示しようと思ったのですが、 embタグで少し試してみたところ、上手くいきませんでした。
「f」や「tf」や「sf」などは、TJSの立場でいえば辞書配列なのですよ たとえば、KAGで「hoge という変数」を「f.hoge」とかいたり 「perori という一時変数」を「tf.perori」とかいたりするけれど これらのTJSとしての実態は「fというオブジェクトのhogeというメンバ」、 「tfというオブジェクトのperoriというメンバ」ということになる こんな感じかと ※走らせてないけど ; kagで値を設定 @eval exp="f.hoge = 100" @eval exp="x = 200" @iscript //TJSで読み取り System.inform(f.hoge); // 100 System.inform(x); // 200 //TJSで値を設定 f.hoge = 600; x = 700; @endscript ;kagで読み取り @emb exp="f.hoge" ==これは600になるはず== @emb exp="x" ==これは700になるはず== ただしf.で始まるKAGの「変数」と違うのでセーブ・ロードなどのときに 自動で復元されたりはしないから注意が必要
>>681 ご回答ありがとうございます。
「メンバ "x" が見つかりません」というエラーが出たのですが、
xが含まれる部分をコメントアウトしたら動きました。
動作とソースを拝見して、わたしの勘違いが分かりました。
「@emb」というのはKAGのタグで、
TJS(@iscript中)では使えない、ということでしょうか。
TJS側で、「@emb」のように、
変数の内容をメッセージウィンドウに
直接表示することはできるでしょうか?
というのも、配列の文字列を表示したいのですが、
ループさせる都合で、なるべくTJS側だけで処理したいのです。
kag.current.processCh(変数);
684 :
680 :2011/04/20(水) 00:54:26.08 ID:32C1w/9z
>>683 できました! ありがとうございました。
681さんも丁寧にありがとうございました。
違いを教えて頂いた部分を勉強します。
processCh()直に使うのはどうなんだ。
参考書等で比較的processCh()を使ってると思うけど他にもっと良い方法ある? 俺もprocessCh()直に使ってる。
質問をさせてください。 吉里吉里初心者です。 ポップアップでウェブページ表示する方法はあるでしょうか ありましたら教えていただけると嬉しいです。
>>687 初心者を脱出するために「吉里吉里 ブラウザを起動」でググるのだ
なお「(クリックすると)ゲームとは別にブラウザが開きます」等の注釈を表示すると怪しくないぞ
>>688 ありがとうございます
可能ではあるのですね。
ぐぐる先生に聞いたりはしていたのですが
思うような結果が得られず困ってました。
クリッカブルにてクリックしたら飛ぶようにしてみたいので
もう少し悩んでみます。
TJSからマクロを使いたいのですが、何か方法はありますか?
692 :
名前は開発中のものです。 :2011/04/21(木) 00:02:56.78 ID:9FomB+lB
うわなにこの書き方きめぇできたサンクス
>>689 吉里吉里そのものやクリッカブルマップの使い方に慣れてないのかな
System.shellExecute〜はTJS式であるわけで
.maファイルにはTJS式を扱うexp属性つーのがある、というわけ
KAGリファレンス読んでね
クリッカブルマップでブラウザ開かせるのはやっぱ怪しげであるが
サポートページを開かせたいが、テキストでリンクするのはカッコワルイってのかな
@iscript if(a == 0){ //中止処理 } //処理 @endscript 中止処理の部分で、以降の処理を飛ばして、 iscriptを抜けたいのですが、 「break」や「@endscript」に相当する命令を教えてください。
>>695 function にして途中で return
>>696 なるほど、関数にすればいいんですね。ありがとうございました。
単純にこれじゃだめなの @iscript if (a == 0) { // 中止処理 } else { // 処理 } @endscript
>>698 なるほど、大きいelseブロックで、
残りを包む方法もあるんですね。ありがとうございます。
レンダリングした文字を大きく描画できる方法はありますか? operateStretchやZOOMタグを使ってみましたが、どうもうまくいかないようです。
Layer::streatchCopy()は?
>>686 直に使うとコンダクタのコールバックとonTag()とか一切合切を無視するからコンダクタのpendingsにshiftした方がいいんだけどoffer関数とか無しにハードコーディングしてるからそこら辺は自前でやらないといけない。
まあ、並列に実行してるわけじゃないからここらへんが影響する場合は少ないかも。
システム寄りの事してくだらんバグに悩みたくないならやめといたほうが精神衛生上は良い。
703 :
700 :2011/04/22(金) 19:03:16.07 ID:S+J06Aa/
すみませんできました。KAGの方で一行はさむなどで時間をかせげばできるようです。
時間じゃなくてキューに突っ込まれてるだけで待ち状態になってるんじゃないの?
メッセージウィンドウに表示している文字の行数、 カレントポジションを取得する方法はありますか? 例 あいうえお @iscript 何かの命令 → 2行目という値を得られる @endscript かきくけこ
>>705 KAGは残念ながら表示行数を保存していないので、直接求める
方法はない。
メッセージレイヤに表示しているフォントサイズが全部同じで、
かつ横書きであれば、
tf.c = kag.current;
tf.l = (tf.c.lineLayerOriginY-tf.c.marginT-tf.c.lineSpacing)/tf.c.fontSize + 1;
とかすると、一応現在の表示行は求まる。改行の「次」は求めてなので
そうなら +2 すべきだろうけれど。
…これ見てなにやってるか理解できない人は、こういう方法使うべきでは
ないよね。詳細は MessageLayer.tjs を読むよろし。
>>706 ご回答ありがとうございました。
座標から求める方法があるのですね。
ソースを直接読むのは私には難しいですが、
がんばって読んでみます。
TJS2リファレンスの式中辞書配列の説明を見ると、 %["a" => 1, "b" => 2, "c" => 3] みたいに書くと書いてあるけど、 %[a:1, b:2, c:3] とコロンを使って書く方法もありますよね。 コロンを使って書けるって、リファレンスのどこに書いてあるんだろう・・・探してるけど見つからない。
jsがコロンなんでシンタックスシュガーとしてある。 だいぶ昔のtjsからあるからリリースノートにあるんじゃない?
>>709 リリースノートってことは、kirikiri2 および kag3 のフォルダの readme.txt か。
ありがとうございます。探してみます。
常に%[a:1, b:2, c:3] でかいてたわ。 ,つけわすれでsyntax errorったり。 検索ででるサイトとかも、こっちの書式のが多いからなのかな。
712 :
名前は開発中のものです。 :2011/04/24(日) 22:34:22.06 ID:FV3vjrBI
一通り、タグリファレンスは読みました。 buttonを使って5つボタンを並べて表示し、 ボタンを押すとFLASHが再生するところまで進みました。 1)ボタンを押してFLASHが再生している間、ボタンを押せないように いわゆるモーダル状態にしたいのだが、どうするのがよいのだろう?
locklihkタグつかえばいいよ
714 :
名前は開発中のものです。 :2011/04/24(日) 23:04:31.35 ID:FV3vjrBI
>>713 locklinkタグでいいんですね。
試してはみたのだけど、なぜかうまくいかなかったので、
[link]のみのlockなのかと…。
再度試してみます。ありがとうございました。
それか再生中だけボタン表示しているレイヤを非表示にすればいい。
Light Worksが面白いことやってるんでちょっとツッコミを。 画像や動画を2.5次元で持っておいて3D空間の中に配置してカメラワークや物体の移動で位置が変わった場合はモーフィングで補完すればもっとそれっぽく見えるよ。 空間が3Dなら距離画像で物体の位置と姿勢を認識出来るからそこを中間画像生成して補完すればいい。 あと物体やカメラが激しく動くなら運動視差で視差効果付ければいいんじゃないか? 相変わらず吉里吉里には荷重な演出思いつくよね。
そんな君は僕からツッコミを。 スレ違い。
>>716 サンプルかなにかツベで見れるならURLをお願いします。
ちょっときょうみがあります。
サークル煌明さんのFadeChですけど、ZIPを展開しても override2.tjsが入ってないような…
そこのやつ結構ファイル抜けがあるから要注意。
722 :
名前は開発中のものです。 :2011/04/26(火) 22:57:26.05 ID:eIGaqC+P
1つのメッセージ枠に2文を同時に表示させることって可能でしょうか?
>>722 2つのメッセージレイヤを重ね合わせて
1つの枠内に入っているように見せかける
2つのメッセージを同時に流すときは
[current]で交互に切り替えつつ[emb]で1文字ずつ表示していけばいい…のか?
よくある質問だけど、お手軽にやれる方法を俺は知らないです
>>721 もちろん存じた上でツッコミさせていただいております。
ここは吉里吉里を語るスレであって、名もなきブログについて語るスレではないのです。
ツッコミがあるならブログのコメント欄にどうぞ。
言われて改めってぐぐってみたが案外見たことないサイト多いな むしろ勉強のためバンバン紹介して欲しいわ
>>724 名も無きブログてんなアホな
ちょっと前にも話題にあがったじゃん
てか吉里吉里で色々やってくれてるのはあそことワムソフトぐらいなんだから、話題にして当然
少なくとも君のツッコミの中身はスレチだろう。それこそ先方のコメント欄でやってくれ
自分が興味のない分野で プラットフォームが吉里吉里ではなくても別に良いこと でスレが盛り上がってると、たまにしょんぼりする
でもエロゲ屋もあの程度の演出は入れて欲しいと思うよな あのレベルの演出入れてるソフトハウスって少ない
>>729 中途半端な演出ならウザいだけ
FFDくらいキッチリやってくれるのなら分かるけどな
>>729 スクリプトの予算を倍額確保してくれるならいくらでもやりますよ。
くだんのブログや同人と違って、商業は締切や予算というものがあるんです。
ユーザーにしても絵やシナリオ偏重で、スクリプトに価値を見出してる方は少ないですしね。
>>721 サンキュー、ちょいといろいろみてみます。
吉里吉里ならではの事ってなんだよ
ないよ
吉里吉里ならではってのは無いから、ようはそれをやろうとする発想力とやる気の問題だと思う 同じゲームなら、ただの紙芝居よりアニメ的に動く方が良いに決まってる 金も手間もかかりそうだけどな そう言う意味ではあそこは参考になってるよ いつもお世話になっとりますm(__)m
私見というか好みの問題なんだけども、 アニメっぽくっていう流れの究極は2.5次元に行き着くと思うけど、そうなったら嫌だなぁ。
質問をさせてください。 画像サイズを実際のサイズとは違うサイズにて 吉里吉里上に表示をしたいのですが簡単な方法は無いでしょうか? よろしくお願いします。
>>737 一旦別のレイヤーに読み込んでから、使いたいレイヤーに operateStretch で拡大(縮小)コピー
739 :
名前は開発中のものです。 :2011/04/27(水) 22:32:03.66 ID:kYRw+9b2
>>723 ありがとうございます。
ちょっとまだはじめたばかりで理解力があまりないので。
申し訳ないです。
標準では無いからプラグインを使えば良い
やったことが何であろうと吉里吉里使ってんのにスレで話がでてスレチとか言うんなら特定のエンジンのスレとか要らないじゃん。 統合スレみたいな所でどんな機能を実装するのにどう実装するかの話がしたいわけじゃないんでしょ?
742 :
名前は開発中のものです。 :2011/04/28(木) 02:17:33.86 ID:FNAvjFY2
エロゲ制作ってアニメ製作の何割くらいの資金でできるの?
周りの知り合い次第でかなりダンピングできるよ。 おれの知り合いは150万程度で声優、OPソング付のエロゲつくってたわ。
おおざっぱにはTVアニメ1話分がえろげが1本つくれるぐらいの予算規模
>>745 そんな見積もりだと直ぐに会社を畳むことになるな。
150万にダンピングとかいってる口でそんなこと言われても……
君のADV何本うれてんの? 何本うれればそのアニメ1話分が回収できんの? 君のところは毎回その損益分岐点を上回ってんの?
さすがによそでやってくれんか君たち
すいません僕のせいです><
謝罪に誠意が感じられない
/⌒ヽ く/・ ⌒ヽ すいません | 3 (∪ ̄] く、・ (∩ ̄]
AAがかわいいなw
質問が不明確だから直接質問に答えてやることはできないけど、
うちは800万〜1000万で作ってる。
DLゲーなら
>>744 の言うぐらい。
アニメもゲームも基本人件費だからなぁ。 安く、もしくは無償で動いてくれる人間が居るなら良いけど、誰だってお金は欲しいしね。 後、金絡みの物は、ちゃんと双方の合意の契約(+その記録)が無いと、後々面倒臭い事になったりもする。
positonでwidthheightを指定したメッセージレイヤを コンフィングで指定したデフォルトの状態に戻したいのですが 良い方法が絶対あると思うのですが見つからなく詰まっています 教えていただけませんでしょうか。よろしくお願いします。
>>755 簡単なのはないんじゃないかなー
コンフィグのはkag.fore.messages[0].mwとkag.fore.messages[0].mhに入ってる
@position layer=message0 page=fore width=&kag.fore.messages[0].mw height=&kag.fore.messages[0].mh
それ、単純にデフォルトと今の状態の物を変数で持ってて入れ替えるだけじゃだめなの? 俺、いくつかのメッセージ枠を、そうやって切り替えてるんだが・・・・・
バックログもフォント変換したものと同じフォントにする方法ってありますか?
ありますよ
>>760 ありがとうございます
どうすればいいですか、と聞くべきでした
いや自然じゃないだろw
このスレにおいては自然ですよ。
>>762 はこのスレに来てまだ短いのですか。
早く慣れてくださいね。
「2月3日、吉里吉里を落とした」スレからいるんだけど… そこに自サイトのリンクが貼られてて逆リンクで来た
記憶力があれば過去に何度となく同様のやり取りがあったことは思い出せると思うのですが……。 能力次第では、携わった期間など意味をなさないという好例なのかもしれませんね……。 大変失礼しました。
そういうつまらないレスは自分の巣でどうぞ
1の質問をして10の回答を得るという行為は、世間一般的には成立しがたいな 学校とか質問サイトのノリだと、軽くあしらわれても仕方ないと思う あと「言葉の裏の意味を察して!」という雰囲気が過剰なのは スレ住人の気質に合わないかも
>>767 とまあ、これがスレッド(というか2ちゃんねる全体の)コンセンサスなんです。
嘘を嘘と見破れない者は(掲示板を利用するのは)難しい
という名言がありますが、それと並ぶ基本原則ですね。
以後ご承知いただければ幸いです。
ああ連休か…
荒れるのが2chだから言い争いをするのが自然というわけだ もっと汚い言葉を使って罵倒したり中傷したりするとなお良い
批判とか意見とかあれば、同時にその理由とか対案とかが 併記されてると勉強になるし、議論のきっかけににもなる よね。 ところで、デフォルトの HistoryLayer は最低限の機能しか ないから、スクロールバー形式じゃないし、フォントは途中で 変更できないし、ルビ振れないし、背景に画像表示できないし、 メッセージ非表示もできない。これは事実。 こういうの全部対応するのって、自作だとかなり労力が 必要だから、お手軽なのは今のところそのExtHistoryLayer 以外の選択肢は無いのでは。これちょっと遣いづらいから、 他にいいのがあればぜひ紹介して欲しい…
人に使えるように汎用にするのは凄まじく労力が必要だから多分ない
774 :
名前は開発中のものです。 :2011/05/02(月) 19:32:33.29 ID:FUF4om0D
TJS入力支援してくれるエディタってある?
775 :
名前は開発中のものです。 :2011/05/02(月) 19:39:50.40 ID:FUF4om0D
解決? シコシコKKDE拡張します。
>メッセージ非表示もできない これはやり様だろ。できないこともない。
777 :
名前は開発中のものです。 :2011/05/08(日) 15:20:53.39 ID:wz4fTqUM
簡単な戦闘ゲームを作ろうと思っています。 複数キャラの中から4人選択。その4人の名前やHPなどを変数に入れて、戦闘画面にジャンプ。 そこから、戦闘画面中にあらかじめ用意した画像でそのキャラ表情やポーズなどを変えるのはどうすれば良いのでしょうか? よろしくお願いします。
そのレイヤの画像上書きすれば良いじゃん
779 :
777 :2011/05/08(日) 16:28:17.04 ID:wz4fTqUM
文字数制限で詳しく書けませんでした。 こちらが指定するのではなく選択されたキャラの画像を出す方法です。 ifタグを並べるしかないのでしょうか……。
> その4人の名前やHPなどを変数に入れて 画像ファイル名なども変数の中に入れておくといいよ 配列変数を使えば、あとはキャラの通し番号を指示するだけ
781 :
777 :2011/05/08(日) 18:43:14.57 ID:wz4fTqUM
>>780 ありがとうございます! 進む方向がわかりました。
[eval exp="f.image = []"]という配列を作り、
[eval exp='f.image[0] = "A子" f.image[1] = "笑顔"']……とすればよいのでしょうか。
これでどう記述すれば画像が出てくるのか、しばらくググってみたのですが、わかりませんでした。
教えてください。
782 :
777 :2011/05/08(日) 21:01:40.00 ID:wz4fTqUM
↑の自己解決です。 [image storage="&f.image[0]+'_'+f.image[1]"]で、ファイル名を「A子_笑顔」にすれば良いみたいですね。 アドバイスをくださった方、ありがとうございました。
>>781-782 あー、それはそれで良いんだけど
複数のキャラを同時に取り扱うとなると、ifタグの嵐の予感
自分なら、A子というのをキャラ番号0として
tf.ch_name[0]='A子'; tf.ch_image[0]='a-ko_egao.png'; tf.ch_hitpoint[0]=100;〜とかにする
(ほんとうは辞書配列使いたい)
それが動いてからで良いんで、検討してくれ
784 :
777 :2011/05/08(日) 21:51:45.87 ID:wz4fTqUM
>>783 なるほど……。
キャラの通し番号とはそういうことですか。
辞書配列も勉強してみます。
ありがとうございました。
辞書配列を使うなら、俺はこんな感じでつかう tf.ch_ = []; tf.ch_[0] = %[]; tf.ch_[0]['名前']='A子'; tf.ch_[0]['CG']='a-ko_egao.png'; tf.ch_[0]['HP']=100; ところで、クラスをつかった場合、どう書けばいいんだ?
class Character {
フルスクリーン中はムービー再生をワイド画面にしようと思ったんですが フルスクリーン中は画面の解像度を変更できません これはもう諦めるしか無いですか?
788 :
名前は開発中のものです。 :2011/05/09(月) 09:56:27.40 ID:oiYst28/
あなたのゲームは解像度がコロコロ変わるゲームなんですか?
解像度と言うかビットレートの問題だわさ
普段の解像度は4:3なんだけど、ワイドモニタでフルスクリーンにすると 左右が真っ暗で何かやだから、ムービーの時だけでもワイドにしようと思ったんだけど 思ったように動かない 800*600を1024*576にしてフルスクリーンにすると、左上の(0,0)が変なところにくるし 吉里吉里デフォの機能でやるのはお手上げです
それ、もしかしてscwidthあたりをその時限定で変更したら良く無い? と言っても、現在の画面サイズをどの変数で持ってるのか知らないけど
・最初から解像度をワイドにしておく→フルスクリーンにしても表示OK ・途中でワイドにする→フルスクリーンにすると画面位置がなんかおかしい ・フルスクリーン中に解像度変更→出来ない フルスクリーンでプレイしている時だけ、ムービーをワイドに引き延ばして再生したい・・・ というのが希望なんですが、上記の通り上手い具合に行かないというのが現状です スクリプト内では「Window.mainWindow.setInnerSize(width, height)」でサイズ変更してます
はじめからワイドにしろ おまえのゲームおかしいぞ
ダメなのか それじゃどうしようもないな
ただ
>>794 じゃないけどムービーだけワイドにすると、単純なユーザーの声として『ゲームもワイドに汁!』って突っ込まれるだわさ
初回起動時にウィンドウを出して、 解像度をプレイヤーに設定させる。 以降の設定変更は次回起動時に反映、 というのが商業ノベルゲームでよくある手法。 けど同人だと見ないよね。やっぱ面倒くさいからか。
栞ひとつ400kになるのが辛いな。なんでシナリオの2倍になっちゃうんだよ・・・ 10個で5メガになるし。 何よりテストプレイのたびに固まって辛い。
うちは一個1mから2m どう言うテスト環境だよと突っ込みたいがどうしても減らしたいならまずマクロを見直せ
サムネイルのせいじゃね?
800 :
名前は開発中のものです。 :2011/05/11(水) 21:37:34.37 ID:HYpL6U9h
バックログやマクロを保存してるとかじゃないかな。セーブ、ロードを重ねる度に重くなるならそれ。起動し直したら治る場合は無駄にオブジェクト量産してるとか、タイマーやハンドラが生き残ってるとか。そうなると人に聞いてやっとこさの段階ではちょっと骨かなぁ。 あとは配列が必要以上に肥大化する書きかたしてるとか?
トランジションをするとき、backの背景とともに前景が同時に現れるようにすることはできますか? たとえば、教室から校庭に移動したとき、校庭と一緒に、そこにいる前景のキャラの立ち絵が現れる、というような…。
>>801 前景のbackにキャラ読み込んどけばいいよ
@image layer=base page=back storage=教室
@backlay
@image layer=base page=back storage=校庭
@image layer=0 page=back storage=立ち絵
@trans method=crossfade time=1000
@wt
>>798 ;saveMacros = false;だよ。
>>799 サムネイルも保存してないよ。
>>800 起動も遅いです。栞を辿るで はい を押すと、1分くらいかかります。
固まった後、しばらく待つとBGMが流れ、更に待つと、
画面上からバーコードの様に次々と画面が更新されていきます。
こうなったら、now loading...画面 をつくりたいです・・・
400KBでそんなんになるのは 違うところに問題があるのでは
薄々感づいてましたが、やはりPCか 何年も前から落としたのに落ちてないとか書いてたのも私です。 ソレからPCかえてませんし。寿命ですよね。 (ニコ動にコメントしようとするだけで固まって落ちる位なので・・・) すいません。以下スルーでお願いします。
この流れでちょっと質問 セーブデータの圧縮と暗号化ってどっちがいいとかある? 圧縮も暗号化を兼ねてるようだけど 暗号化より復元しやすいとか読み取るのが遅いとか そういうのなかったら若干サイズも軽くなる圧縮にしようと思うんだが
何も考えずに圧縮でいいよ
メッセージレイヤに、透過pngを使っても 実際には透けずに白くなってしまうのは何故でしょう?
たしか2つくらい前の過去ログにもあった希ガス
え、あ、はい
誤爆!
814 :
名前は開発中のものです。 :2011/05/13(金) 14:50:19.14 ID:xi4RpOc2
ぐあああ、半透明のセリフウインドウがどうしてもできねえ 前作作った時はできてたのに、2つのpngファイル並べて比較してもどこが違うのかわかんねえ うおおおおおおああああああああああああぁぁぁぁあああ
意外とひっかかりやすいよねこれ 俺も一回悩んでリファレンス読み返したことがある
;layerType = ltAddAlpha;を追加するってやつ? 見てみたけど既に追加されていました。 だけど前回使ったpngファイルは透けて、今回のは透けない。何が違うんだ ああああああああああ
;
メッセージ枠の画像を「Config」で指定したのですが、 実行するとエラーが出て、 「メンバ"sf"が見つかりません」とでます。 特に変数も使ってないので関係ないと思うのですが… どうしたら解決できるでしょうか?
しらね
んー incontextof kag をつけ忘れてるとか?
824 :
名前は開発中のものです。 :2011/05/14(土) 16:07:34.47 ID:znBsX5Gm
すいません、製作途中のゲームを別のノートでフルウィンドウで起動したら、解像度が落ちたのですが原因はなんでしょうか? (PCはVista、ノートは7)
フルウィンドウってフルスクリーンのこと? それぞれのPCの画面の解像度と、ゲームの解像度くらい書きなよ さっぱりわからん
現行吉里吉里の標準動作は「自動」で、「アスペクト比があう画面があれば一番近いものに変更、なければ解像度変更せずにソフト側で拡大」 なので、環境によって動作がまちまちになる。 それぞれのPCの環境と画面サイズとデバイスの名前、ゲームで指定しようとした解像度、とか全部かかないと具体的な原因はわからないと思われ。
827 :
名前は開発中のものです。 :2011/05/14(土) 16:36:15.28 ID:znBsX5Gm
ありがとうございます 環境は両方ノートで製作側がVistaのcore2DUO、解像度落ちた方が7のcorei5vPro、画面サイズは800×600、吉里吉里最新のやつで解像度は350です
ごめん、俺も無理
830 :
名前は開発中のものです。 :2011/05/14(土) 16:47:55.02 ID:znBsX5Gm
すいません、ゲーム解像度が800×600でpc解像度が両方1280×800でした 別に製作だけなら解像度変わらない方使えばいいんですが、配布考えるとこわくて・・・
831 :
名前は開発中のものです。 :2011/05/14(土) 16:52:11.44 ID:znBsX5Gm
えーと、800×600 の表示に対応してない環境はぶっちゃけ無いので、それにあわせて解像度変わるほうが普通です。 変わらないように見えるのは、デバイスドライバ側でなんか対応してるからでしょう。 ノートPCの画面のプロパティのどっかに設定項目があるはずで、それの設定はユーザの責任です。 特に気にする必要はありません。 あと、ソフト側での挙動はは、吉里吉里設定で変更できますから、それを きちんと導入してマニュアルにその旨記載するだけでOKです
>>827 吉里吉里で使用しようとしていた画面サイズが800×600なんだね
CPUのスペックはあんま関係なくて画面についてのスペックが重要
ここでいう解像度っていうのはインチ当たりドットとかじゃなくて
デスクトップを右クリックして出てくる画面のプロパティにあるような
画面のサイズのことだよ、大小いろいろな候補があって選べるだろ
1024×768とか800×600とか
たいていは候補のうちで(スクロールしなくて済む範囲の)最大のに
してると思うけれど
それぞれのパソコンについて、どんな候補があるかっていうことを
>>826 は聞いてる
834 :
名前は開発中のものです。 :2011/05/14(土) 17:06:35.52 ID:znBsX5Gm
>>832 さん、
>>833 さん
ありがとうございました
それ聞いて安心しました
自分の方はpcいじってみて、ゲーム配布にはマニュアルで注意事項書いておきます
とりあえずの知識として ノートに限らず液晶ディスプレイは限界解像度は別に、苦手な解像度が必ずある それは普通のディスプレイにもあるんだけど、とにかくそれを無視した解像度だと画面ボケが恐ろしく酷い 昔のモニターは特に だから通常はメーカーがそれを調整して苦手な解像度は選べないようになっているけど、ソフト側はそんなの知らんがな!って事でこの解像度で表示しろ!ってやる するとウィンドウズ側が間に入って君に決めた!って表示するから一見ユーザー側はあれっと思うけど、実際はPC的には双方の折り合いつけた最適の表示状態
セリフ毎にラベルを配置してセーブできるようにしたんだけど 立ち絵が出ている時にセーブしてロードすると、立ち絵がない状態で始まる これを防ぐには、毎回立ち絵を描かないといけないかな?
>>836 セーブ時の画面表示状態は栞に記憶されるはずでは?
ラベル直後に、画面をクリアしたり再描画するマクロを入れてるとか?
>>837 いや、そんなこと何もしてないです。
imageタグで立ち絵表示
*ラベル|ラベル見出し
「セリフ」[l][r]
となっていて、クリック待ちの間にセーブ。
このデータをロードすると、立ち絵だけが表示されない。
「template」フォルダをコピーした素の吉里吉里に戻して 何が違うか考えてみることだあね
それ純正の吉里吉里じゃなく、会社でカスタマイズした奴じゃない?
いわゆる会社マイズってやつだな
遅くてごめん。
>>797 >>798 大概履歴が大きいからだから、一度栞の中を見てみるといいよ。
config.tjs の recordHistoryOfStoreとmaxHistoryOfStoreを
小さくすると劇的に改善したりする。あと、saveDataMode="c"で
圧縮すると更に劇的に。
すみませんが、質問させて下さい。 今、tjsでボタンのプラグインを作成しようとしています。 ボタンの数が多いので、配列でボタンの作成をしたので、 配列の番号によって、ボタンが押された後の処理が変わります そのため、クリックした後に参照する関数に、配列の要素数を引き渡したいと思って、 こんな風に記述しました。
function Load() { obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn(i)); with(obj[i]){ .setPos(0, 0); .loadImages("img"); } } function btn(i) {System.inform(i);} すると、ボタンは正常に表示されるが、ボタンを押したあとにエラーが発生します。 エラー内容は下記の通り。
843-844です。規制がかかるのでPC変えました。 ==== An exception occured at systembutton3.ks(38)[(function) onMouseUp], VM ip = 17 ==== -- Disassembled VM code -- #(38) onClickFunction(this); 00000017 calld %0, %-2.*2(%-1) // *2 = (string)"onClickFunction" -- Register dump -- %-6=(int)0 %-5=(int)0 %-4=(int)93 %-3=(int)7 %-2=(object)(object 0x0012F8C8:0x00000000) %-1=(object)(object 0x01C4D840:0x01C4D840) %0=(void) %1=(int)1 %2=(int)0 ---- スクリプトで例外が発生しました 関数ではないかプロパティの種類が違います trace : immediate event 問題はsystembutton.ksにあるようですが、 どこをどう修正すれば動くのか、全くわかりません。 目的が達成されれば、特に記述方法にはこだわりません。 どこが悪いか分かる方、よろしくお願いします。
ぱっと見だとLoad()内のiに値がちゃんと入ってるのかどうかわからん。
843です。 あまり行数を書けなかったから省略してしまったんですが、 実際はiはループ処理をしてる関数から引数で渡しています。 引き渡しができてない可能性は考えたけど、 Load()内で変数の定義をしても同じエラーが出ました。 それから、こちらは書き忘れで申し訳ないのですが、 エラー箇所は配布されてたプラグインの中です。 該当箇所は下記です。
function ?onMouseUp(x,?y,?button,?shi{ if(enabled?&&?button?==?mbLeft) onClickFunction( this);//←ここ super.onMouseUp(...) }} 改めてよろしくお願いします。
吉里吉里の不具合らしきことを質問したら 「お前それカスタマイズしてるだろ」で終了という流れは 以前のスレでも見たな 大抵うやむやになっているが、実際はどうなのだろう
function btn の返り値はvoidなんだから、そらあかんやろ。
SystemButtonLayerをnewするタイミングでbtn関数が評価されちゃっているのがNG。
解決法を書くよー。 まず、globalで以下のようなクラスと関数を定義しておく。
class FuncCall { var func; var args; function FuncCall(func, args*) { this.func = func; this.args = args; } function call { func(args*); } }; function funccall { var obj = new FuncCall(...); return obj.call; }
FuncCallというのは、引数つきで関数を呼び出すクラス。 funccallというのは、FuncCallのオブジェクトを作って、その関数呼び出しを返すショートカット。 funccall(btn, i) とやると「引数iで関数btnを呼び出す関数」が生成される。 この状態で obj[i] = new SystemButtonLayer(kag, kag.fore.base, funccall(btn, i)); と書けばうまくいくのでは無いかな。
こんな風に書くとFuncCallのクラス定義無しで一発で行けるけど、変態コードなのでお勧めはしない。 function funccall(args*) { return function { shift()(this*); } incontextof args; }
857 :
843 :2011/05/19(木) 20:32:56.68 ID:eDOJyZBT
>>853 ありがとうございます!
書いてある通りに修正したら、きちんと動作しました。
自分では絶対に思いつきませんでした。
本当にありがとうございます!
他の方もご回答くださってありがとうございます。
これからも精進します。
初歩的な質問なのかもだけどargs*の*ってどう言う意味なんだろう?
引数の配列変換か 自己解決した
吉里吉里ってGPU使ってくれないの?
どうしてそう思ったの?
自分でもわからない。。。
まあ、そんな日もあるさ
>>842 250kだったファイルがzで10kくらいに落ちた。目の錯覚かも知れないがサンクス
目の錯覚じゃないよ。 吉里吉里のセーブデータは、ちょっと変わっただけのほとんど内容のデータがずらずら並んでる構造だから、すごく圧縮が効きやすいの。 特に、どこでもセーブ系のプラグイン使ってたりして、改ページ単位でラベル入れてたりするとその傾向が顕著ね。
s/ほとんど内容/ほとんど同じ内容/
>>866 'sed' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
確かに、どこでもセーブプラグイン使ってますw
class FuncCall{ var func; var args; function FuncCall(func, args*) { this.func = func; this.args = args;} function call { func(args*);} } function funccall { var obj = new FuncCall(...); return obj.call();} function Load(){ obj[i] = new SystemButtonLayer(kag, kag.fore.base, funccall(btn, i)); with(obj[i]){ .setPos(0, 0); .loadImages("image"); }} function btn(i) {System.inform(i);} var obj = []; var i=0; Load();
申し訳ないです。 これを説明して頂きたいのですけど。
1.Load();でまずボタンを作ろうとして、funccall(btn, i)が呼ばれる。(まずここでなぜfunccall(btn(),i)でないのかわかりません)
2.funccallでobj(btn, i);が作られてobg.call();が呼ばれる。
3.obg.call();はfunc(args*)だからfunc(i)となる。
それがどうしてbtn(i)になるのかが理解出来ません。
上の書式で確かに動くので、正しい事は理解してるのですが・・・・・
さらに
>>856 のshift()(this*);の意味もわかりません。
初心者の質問なのですが教えてください。
869.870ですがなんとなくわかってきました そこで新たな疑問なのですがreturn obj.call;だとbyn(i)と言う文字列?を出力するとわかるのですがなぜそれが可能なのでしょうか? return obj.cal()lじゃないのかな?と思ったのですが、これだと文字列では無く直接評価してsysteminformが出てしまいます。 なぜ()を付けなくて動くんだろうと言う疑問とダブルの??です。 856の方は未だにチンプンカンプンです。
TJSについて詳しく無い人にわかるようにきちんと説明するのはかなり大変なので、要点だけ解説します。 まず、一番大本の obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn(i)); では駄目なのか? この場合、期待しているのは「ボタンが押された時にbtn関数が呼ばれる」事なのに、 この表記だと「ボタンを作成した時にbtn関数が呼ばれる」事になってしまいます。 つまり、最初の表記ではSystemButtonLayerに「btn関数を渡す」つもりで 「btn関数の呼び出し結果を渡してしまっている」ことがエラーの原因です。 (続く)
TJSではbtn関数が定義されている状態で「btn()」と書くと、 その関数が呼び出した実行結果がとなります。関数そのものを あらわすには「btn」と、括弧無しで表記する必要があります。 つまり、元々の意図通り「SystemButtonLayerに、ボタンが 呼び出された時に処理されるようにbtn関数を渡す」場合は、 以下のように表記するのが正しいことになります。 obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn); …でも、これはこれで何かおかしいですね? そう、btn関数は引数をひとつ必要とする関数なのに、 これではボタンが押された時に引数無しでbtn関数が呼び出されてしまい、 やはりエラーになってしまうでしょう。 ではどうすればいいのか? (続く)
吉里吉里の関数は「ファーストクラスオブジェクト」と言って、 変数に代入が可能な要素になっています(その仕組みのおかげで、 SystemButtonLayerに関数を指定して、後から実行してもらう 事が出来ます)。 ですが、ファーストクラスオブジェクトとしての関数は、 「関数そのもの」と「関数が実行されるコンテキスト」の 2つの要素だけで構成されています。関数を実行する際に 与える引数は、含まれていません。 つまり、吉里吉里の素の表記では、引数まで含めて関数を 遅延評価するために変数に代入してやることは出来ません。 (続く)
そこを何とかするための小技が「funccall」の一連の仕組みです。 詳細に書くと「目的の関数と引数を含めた新たなコンテキスト」を 作って、そのコンテキストで「目的の関数を目的の引数で呼び出す関数」 を作り、最終的にその関数を返値として返すという処理をしてるんですが、 自分で書いてて何言ってるんだという感じですね。 すいません、ややこしいのでなかなかうまく説明できる気がしません。
876 :
名前は開発中のものです。 :2011/05/20(金) 23:41:03.92 ID:DRp9kJRA
吉里吉里でAVGを作っていてわからないことがあったので質問させて頂きます メッセージウィンドウの上の部分にシステムボタン?みたいな感じのコンフィグ画面を呼び出すボタンを作りたいのですが というか作ったのですが、コンフィグ画面を呼び出した後元の画面へ戻す方法が分かりません サブルーチンの様にcall returnでは戻れませんし如何したら良いでしょうか? 皆さんからしてみれば馬鹿らしい質問かもしれませんがよろしくお願いします
こんふぃぐ画面用のれいやをよういするのがかんたん
あるいは、ボタンからcallするやりかたが分からないという場合は KAGリファレンスの「TJSをもっと使うために」の中の 「リンクやボタンの exp 属性などに指定するもの」、という項目を読め。
>>872-875 お返事遅くなりました。
なんとなく分かった感じです(完全にはまだ理解出来てませんが)
もう少し自分で色々考えてみたいと思います。
またわからなくなったらお願い致します。
ありがとうございました。
読み進むキーが、デフォルトではEnterとスペースですが、Ctrlでもできるようにしようとしています。 ぐぐって ;supportReadingKey = VK_CONTROL; を追加したのですが、そうするとスペースで進めなくなってしまいました。 Ctrlの追加だけ行うにはどうすればいいでしょうか。
881 :
名前は開発中のものです。 :2011/05/21(土) 02:45:05.23 ID:zxd6ANIJ
>>878 ?kag.callExtraConductor
という項目でしょうか?
ボタンからのexpでサブルーチンを呼び出す事は出来るのですが
呼び戻し方がいまいちよく分かりません
>3番目の引数は省略可能ですが、KAG のシナリオから戻ったときに実行する関数/メソッドを指定します
という記述があるのですが関数やメソッドなどについて無知なもので・・・
自分でも調べて意味を理解してみようと思いますができればそれと併せて説明を頂けたら嬉しいです
>>877 >>878 さんお早い返事有難うございました
>>881 普通にcall returnできるんだが戻れないってどんなエラー文出てる?
ちなみに自分はコンフィグ画面ではメッセージレイヤは 2とか3とか
通常画面では使わないレイヤ使ってる
>>881 その引数は関係ないから気にするな。
画面の作り方はKAGリファレンスの、右クリックサブルーチンについて、を参考に。
swfをレイヤ描画モードで再生し、メッセージレイヤを流したいのですが、うまくいきません。 どう直せばいいんでしょうか? [openvideo storage="video.swf"] [position layer="message" visible=false"] [video visible=true mode=layer ] [videolayer channel=1 page=fore layer=0 ] [playvideo storage="video.swf" ] [cm] [position layer="message" visible="true"] 文章を[r] 入れたいです。[p][er]
swfは使った事無いけどなんだかいくつか足りなさそう 過去スレにたしかvideoの最低限の再生書式あったはずだからまずそれを確認してみたらどうかな?
886 :
名前は開発中のものです。 :2011/05/21(土) 20:55:33.29 ID:zxd6ANIJ
>>882 >>883 ???
[return]タグは[call]の直後に戻るタグですよね?
ボタンを押すことで[call]と同じことをしたいのですが
[buttun]タグではstorage,targetでしかシナリオの移動が出来ませんよね?
しかもボタンはほぼ最初から最後まで表示しているので
シナリオのどの部分でボタンが押されたか記憶してそこに戻るようなことがしたいのですが・・・。
エラーは出ません。ですが上記のようにサブルーチンから[return]で戻れないので元のシナリオ部分に戻す事が出来ないのです・・・。
右クリックサブルーチンについてを読んだのですがtenpsaveやtenpload等のタグを使うのでしょうか?
今から試してきますがもし解釈に間違いなどがありましたらご指摘頂けると嬉しいです。
>>882 さん、
>>883 さん何度も質問して申し訳ありません&有難うございました!
よーし、落ち着けみんな!(主に俺)
>>886 kag.callExtraConductorの説明箇所を、理解できるまで読み直してください。
というか、そこにスクリプトのサンプルが載ってるでしょう?
質問するのは自由ですが、受け取った回答についてよく読んで、理解するよう努力してみてください。
>>856 簡単に言うと不動点コンビネータだな。
やってることは単なるジェネレータ関数。
ところで、これもしかして遅延評価になってる?
>>886 >ボタンを押すことで[call]と同じことをしたいのですが
>[buttun]タグではstorage,targetでしかシナリオの移動が出来ませんよね?
>>878 をよく読むといいよ
buttonタグは押されたとき実行する命令をexpで書けるからcallするには
[button exp="callExtraConductor('storage.ks', '*target')"]と書く
returnはcallときちんと対応してないと正しく使えない
まぁ、
>>887 に尽きる
まだ手探りの段階だろうが標準以外の機能を実装したいなら
自力でリファレンスを読めるようにならないとサポートとかやってけないよ
>>884 swf はオーバーレイモードしか対応して無い
他所のプラグイン使わないと希望の機能は実現できない
891 :
名前は開発中のものです。 :2011/05/22(日) 03:28:24.82 ID:fIaXigGY
>>887 >>889 出来ました!有難うございます!
どうやら別に入れていたプラグインと相性が悪かったようで上手く動作しなかったみたいです。
プラグインを消してみた所正常に動作するようになりました。
何度も何度も説明させてしまって申し訳ありませんでした。
これからはもっと自分で試行錯誤を重ねてから質問させて頂きたいと思います。
皆様本当に有難うございました!
08:06:29 ハードウェア例外が発生しました 08:06:29 Exception : Access Violation(read access to 0x01010102) at EIP = 0x01010102 ESP = 0x0012F4EC などとダンプがずらずらと出てきましたが、これは吉里吉里のバグですか?
あなたの頭のバグです
>>892 そのエラーログの上の方で、スクリプト上のエラー行を特定する内容があるはずな気がしなくもない。
>>894 kag.close()でゲームを終了する時になります
実害はないかも?と思ったけどシステム変数が保存されないという害があるっぽい
ちゃんとした閉め方なかった?
KAGに精通してて、close()関数で閉じる必要を分かってるなら良いが 下手にkag本体に手を出すのは危険だぞ
周期的に呼び出される処理をしてて、参照するはずのオブジェクトがkag.lose()によってあぼんされて みあたりませんよーって時になったかもしれない。
本来そんな状況が起きる時くらいしかcloseは使わないんじゃ?
884です。 >885 >890 いろいろとありがとうございました。 swfはあきらめて、wmvに変更しました。 で、ググッてみたのですが、 やはりうまくいきません。 改めて、wmvをレイヤ描画モードで再生し、メッセージレイヤを流したいのですが、うまくいきません。 どう直せばいいんでしょうか? [openvideo storage="video.wmv"] [position layer="message" visible=false] [video visible=true mode=layer ] [videolayer channel=1 page=fore layer=0 ] [playvideo storage="video.wmv" ] [cm] [position layer="message" visible=true] 文章を[r] 入れたいです。[p][er]
一応調べたみたいだし答えを書いとく まずpositionじゃなくて layoptでvisible=falseすること 次に [freeimage layer=1 page=fore] [layopt layer=1 page=fore visible=false] [videolayer layer=1 slot=1 channel=1 page=fore] [video slot=1 loop=true mode=layer] [openvideo slot=1 storage="動画.mpg"] [preparevideo slot=1] [wp slot=1 for=prepare] [layopt layer=1 page=fore visible=true] [playvideo slot=1] wmvはos依存の不具合あるから、mpgが良い メッセージ枠を消して動画表示後メッセージを出したいならlayoptでfalse trueして挟めばok video関連タグは確実に動かすには構成が複雑だから、こう言うもんだと思ってコピペして必要なところだけ書き換えた方が無難
>902 できました! ありがとうございます! ・・もっと勉強します。
906 :
名前は開発中のものです。 :2011/05/23(月) 08:10:34.87 ID:3xC4CVMJ
>>902 OS依存の不具合なんてない。
あるなら言ってみろ。
vista以降で・・・・・・そんな事も知らんのか? プロとして吉里吉里使ってれば常識だぞ? お前のその聞き方がムカつくから教えてやんね せいぜいバグ出さないように頑張れ
いや実際、wmvで公開してると再生できないって報告多いよ 理由は知らんけど環境依存なんだろうなって事にしてmpgに差し替えた。
>>880 どこで拾ったコードか忘れたけど自分はこうしてある
以下、AfterInit.tjsに記述
kag.keyDownHook.add(function(key, shift){
if (key == VK_CONTROL){
if(global.kag.clickSkipEnabled && global.kag.skipMode != 4 && (!global.sf.chSkip || kag.getCurrentRead()) && !kag.historyShowing){
global.kag.skipToStop2();
}
return true;
}
return false;
});
kag.skipKeyPressing = function(){
return System.getKeyState(VK_RETURN) || System.getKeyState(VK_CONTROL);
};
初期に書いた部分なのでなぜかわざわざglobal〜とかつけてあるけど何でそうしたかは知らんけど
はずしたらどうなるか検証するのめんどくさいからそのまま
910 :
名前は開発中のものです。 :2011/05/23(月) 10:26:46.58 ID:3xC4CVMJ
mpgが再生できないってのは聞いたこと何回もあるがwmvが再生できないなんて聞いたことがない mpgはXPで再生できない場合がある
うん それでいいんじゃない? プロじゃないなら気にする必要も無い プロならその情弱っぷりがいつか痛い目に遭うだけだから どうなろうと俺には関係無いからどうでもいいわ
912 :
名前は開発中のものです。 :2011/05/23(月) 11:35:06.55 ID:3xC4CVMJ
>>911 わからないんだな
プロじゃないなら気にする必要がないとか何のためにここ見てんだよ馬鹿が
まあ自称プロのお前がどうなろうと俺には知ったこっちゃないがね
>>910 そういえばmpeg2だとだめだっけ。
自分の見たらmpeg1でエンコードしてあるわ。
商用のも数点確認したけどmpeg1だったよ。
なんしか、俺は2作しか出してないけどwmvでは二回とも一部の人が再生できないって報告あったんだよ。
WindowsMediaEncoder使って無難にエンコードしたつもりなんだけどね。
ggrksもしないこんな口の利き方も知らない厨に丁寧に教えてやるなよ。 こう言うバカはユーザーから突き上げられても俺のせいじゃないって言うタイプだからほっとけ。
wmv は Windows Media Player の9以降か、WMV9 コーデックパックが入ってないと再生できない 環境依存の不具合として、WMVをオーバレイ再生させると上下反転してしまう環境がけっこうある。 Vista 以降はまずまちがいなくなる。ミキサー再生かレイヤ再生ならおこらない。 古い環境だとオーバレイのが安定してるので、OS見てデフォルトを変更するようにしとくのが無難。 あと、単純に WMV 再生は mpg より重いので対象スペックはあげないといけないのに注意ってぐらいかな HDサイズの動画だと、mpeg だと相当レートあげても汚い上、 横幅1024を越えた mpeg をミキサー再生するとなぜかアスペクト比がおかしくなるという謎の 不具合があるので wmv 使ったほうがいいよ
>>915 HDで使えないんじゃwmvでやれるようになっておくしかないわけね
困ったけど了解した
wmvはキリキリ関係なく避けたほうが良い。 俺のPCだと(重すぎて?)同期がとれてないらしく、速度がかわって可哀想な結果になる。
∧_∧ < `ш´> どうすればいいんだ _φ___⊂)_ /旦/三/ /| | ̄ ̄ ̄ ̄ ̄| | | 誰彼百円 |/
920 :
名前は開発中のものです。 :2011/05/23(月) 19:20:01.16 ID:Yuo/P0wk
ハイパーリンクの文字にカーソルを載せた時半透明の板が出ますが これを文字の色が変わるようにできないでしょうか? マウスが載った時だけ縁付きになるとかも可能でしょうか
KKDE2はもう更新完全終了なの? 終了なら終了って言って欲しいなあ、諦め付くから 吉里吉里ってなんかこの手の開発用ツールに恵まれないな
祝い「お前が作れーお前が作れーお前が作れーそして俺を喜ばせろー喜ばせろー」
KAGEX最新版がでたらしい これで大きい更新は終わりなのかな
>>920 後者は画像を用意し@bottonで実現すれば良いと思
>>924 ハイパーリンクのテキストは不定なので、画像は用意できません
フォント操作で何とかする方法を探しています
そうですか (ユーザビリティとしてはデフォルトの機能でじゅうぶんだし…)
画像用意しなくてもボタンクラス作ってdrawTextすれば(ry なんか最近ふてぶてしい質問者増えてまともに教える気にならんな
positionタグのdraggable属性が上手く動いてくれないんだが、 使う時に何か気をつけることってあるかな?(´・ω・`) 普通にウィンドウを動かしたいだけなんだけど。
>>928 marginl, margint, marginr, marginb で指定したマージンの部分でかつ、フレーム画像の不透明度が 64 以上の箇所を、マウスでドラッグすることによりメッセージレイヤをユーザが移動できるようになります
とリファレンスに書いてあるりますがこの通りにしましたか?
ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
>>927 まぁまぁ、今に始まった事じゃないじゃないw
明らかに技量をこえた希望だって端から見て思うけど、
それを判断できるのは自分で一通り出来るようになってからだというね……
とりあえずすぐできるできないが知りたかったので、 できないとわかっただけでも助かった 暇があったら作るけど、多分ないだろうな
ごった煮的配布所さんの履歴レイヤ拡張プラグインをお借りしているのですが、 起動したときは何の問題も無く表示されて動くのに シナリオの再読み込みやセーブからの再開をすると 最初の[cm]ところで「タグ・マクロが存在しません」と言われ動かなくなってしまいます 指定されているプラグインは入れたのですが何がおかしいのでしょうか
>>929 読んでるよ。一々初心者煽って楽しいかい?
条件合ってるはずなのに動かないから、他のレイヤーとの競合等に注意が必要なのか先人の知恵が借りたかったんだ。
config.tjsの書き換えやセーブデータの削除他、思いつく限りのことは試したんだけど、動かないから聞きたかった。
じゃあ実はそのレイヤ、別のレイヤなんじゃね?
>>934 そんなこともない。きちんと一番上に来てるレイヤー。
configの方でドラッグtrueにしても、うんともすんとも言わないし、
やっぱりsystemフォルダのtjsを切り貼りし続けたのが原因なのかなぁ(´・ω・`)
諦めるしかないのか……。
面倒くさがってんだか、お客様気分なのか、ねらーの一体感wが染みついてんだか 試した事を先に書かず漠然と質問したから初心者だと思われた 初心者に対して 「リファレンス読もう」というアドバイスは最大の親切心 そんだけさ
ごった煮さんのプラグインはプロでもそれなりに使われて製品に入ってるわけで つまり使い方がおかしい リファレンス嫁
>>932 使ってないので適当
Config.tjsの「マクロをセーブするか」の項目とか
プラグインを呼び出して作動開始させる場所かおかしい?
先にやったことを全部書かない時点でエスパー希望者なんだからエスパー以外スルーしろよw 的中率を下げるだけの無駄レスが増えるだけだぞ。
キチガイ現る
>>937 そうなんですよね、メジャーなプラグインなのでググっても同じ状況の方が出ない辺り
自分が根本的に間違ってるのは確実なのですが…
>>938 system/Config.tjsでignoreCR = true;指定(というかConfigは殆どいじってません)、
プラグインはスタートラベル直後に呼び出しています。
もう一度リファレンス読み直して変なタグ入れたりしてないかじっくり確認してみます
ありがとうございました
どうにも殺伐としてきたなw やっぱ、おさかな定食は偉大だったんだなーと思う。 こういうの全部一人で捌いてたのかと思うと天使みたいな人だったんだな。
とりあえずまずシナリオの再読み込みでエラーが出ても実際は問題ないケースは多い 再読み込みはいろいろお約束が違う ただロードでもまったく同じエラーなのかが問題 エラーが出る場合、一番多いのはbaseを設定してなかったり、ベースを動かしたり、拡大縮小していたりするとまったく見当違いのエラーを吐き出して悩むことがある 次にロードでエラーが起きる場合、ほかのプラグインのパラメータ保存のメソッドが悪さしてるケースもあってそれだとお手上げの可能性も多い そんな時はそこの部分をコメントアウトしてチェックするという手段もあるがお勧めできない あとな裏技的なことなんだが、シナリオファイルの冒頭に適当に三つ連続でラベルを作ってみろ *start01|start01 *start02|start02 *start03|start03 とかいう感じで 理由は説明が面倒だけどこれでうまくいくこともある
>>932 ごった煮の履歴拡張プラグイン、first.ksの最初に一回だけ
必ず読まれることを期待しているので、まずfirst.ksの
「先頭で」プラグイン読み込みをしてみてはどうだろうか。
こっちはそうして使っていて問題出ていない。
最初のラベルの直後、などだと、何かがおかしくなっちゃう
のかもしれないし。
あと、エラーログを見たいのでここに貼れるようなら貼って欲しい。
それと、ごった煮の中の人はバグ報告歓迎しているようなので、
再現できるスクリプトを送ってみては如何。
945 :
932 :2011/05/26(木) 20:06:46.92 ID:oWMAgARj
先頭でプラグインを読み込んだら問題無く動きました…!
>>944 ラベル直後だと「一回だけ」という所に引っかかっていたんですね
お恥ずかしながらプラグインは全部スタートラベル以降に置くものと思い込んでました…
どうもありがとうございました
>>943 再読み込みのエラーはまた別の可能性もあるんですね
凄く丁寧に解説してくださってどうもありがとうございます
これから参考にさせていただきます
プラグイン冒頭に二回読み回避はいってるのに不思議だねー。 まぁそれアテにした書き方するのもおかしいけど。
>>945 ちゃんと動いたならよかった!
>>946 プラグイン、二重読み込みは禁止しているけれど、今回は恐らく、
ロードするまでの間にプラグインを読んでいないのが原因では
ないかと。
通常は、プラグイン読み込み→ロード→ゲーム再生、だけど、
今回は
プラグイン読み込みなしにロードする→プラグインない→エラー、
だったんだと思う。
だからこそ、「プラグインはfirst.ksの最初で、無条件に読め」
ってことなんだろうね。
タイトル画面 ↓ 本編先頭 ↓ プラグイン読み込み って感じかな。 他人の構成って慣習的に常識って思ってることが通じないから怖いですな。 多くの場合、 プラグイン読み込み・startupやAfterInit以外のKAGいぢり ↓ マクロ定義・フラグ等変数初期化 ↓ スタートアンカー ↓ タイトル画面 ↓ 本編 だものね。
949 :
名前は開発中のものです。 :2011/05/27(金) 00:30:53.90 ID:EDyNHf8C
吉里吉里やってて疑問に思ったことがあったので質問させて頂きます [link target=*a1]1[endlink][r] [link target=*a2]2[endlink][r] [link target=*a3]3[endlink][r] [s] *a1 [eval exp="f.a1 + 1"] [emb exp="f.a1"] *a2 [eval exp="f.a1 + 1"] [emb exp="f.a1"] *a3 [eval exp="f.a1 + 1"] [emb exp="f.a1"] みたいなスクリプトを書いたのですが、 実はこれをf.a100近くまで増やしたいので、記述の量が面倒くさい数になってしまいます
950 :
名前は開発中のものです。 :2011/05/27(金) 00:36:11.96 ID:EDyNHf8C
↑の続き なのでこれを [link target=*a]1[exp="f.n = 1"][endlink][r] [link target=*a]2[exp="f.n = 2"][endlink][r] [link target=*a]3[exp="f.n = 3"][endlink][r] [s] *a [eval exp="f.a&f.n + 1"] [emb exp="f.n"] のように記述することは不可能でしょうか? (f.a&f.n + 1の部分でエラーが出てしまいます) この記述方法そのままで無くとも代用案や解決策がありましたら教えて頂けないでしょうか? 初歩的な質問かも知れませんがよろしくお願いします
951 :
名前は開発中のものです。 :2011/05/27(金) 00:38:19.44 ID:EDyNHf8C
すみません
>>499 は
*a2
[eval exp="f.a2 + 1"]
[emb exp="f.a2"]
*a3
[eval exp="f.a3 + 1"]
[emb exp="f.a3"]
でした
952 :
名前は開発中のものです。 :2011/05/27(金) 00:39:51.75 ID:EDyNHf8C
954 :
名前は開発中のものです。 :2011/05/27(金) 08:37:38.48 ID:cdIcSeOG
こんにちはーどうもーTJSが全く分からない初心者ですが、 よければ助言お願いします。 クリッカブルマップの事なのですが、 オンマウスして画像を変える、 オンマウスで音を鳴らす、(過去ログやネットで検索してかろうじて鳴らせるように) クリックで音を鳴らす(ジャンプ先のラベル冒頭で鳴らしてます) ……と、ここまでは何とか出来たのですが、 オンマウスで鳴らしてる効果音が何故か無茶苦茶うるさいです。 他の効果音より大きいです。 何を言ってるか分からないと思うが俺も分からない…。 のですが、こういう事ってあるんでしょうか? kag.processってのを使えばTJSじゃなくKAGで書けるから便利だよ、 ってのを見かけたりもするんですが、 指定領域ファイルから飛ばせばいいの?え?どうやって? とかなんとかで頭が沸騰しそうです。 よろしくお願いします。
すいません…… 領域アクションファイルから何とかkag.processで飛べました…。 これで飛んだ先のラベルでグラフィカルボタンで解決しますね……多分。 お騒がせしました…
956 :
名前は開発中のものです。 :2011/05/27(金) 12:46:02.43 ID:EDyNHf8C
>>953 その場合
[eval exp="f['a'+f.n]++"]
と記述すると、f.nが10だった場合に
f.a10という変数に1加算する・・・と言うことになるのでしょうか?
一度吉里吉里で試してみたのですが、エラーは出ませんでしたが期待通りの動きをしませんでした。
とりあえずリファレンス読んできますが、この質問にも回答して頂ければうれしいです
どうかよろしくお願いします
>>956 ++は1加算であってる。混乱するならf['a'+f.n]+=1にでもしとけ
というか元の記述や説明が全体的に酷いからお前の期待がわからん
レスするなら期待が何で実際どういう結果が返ったのかまで書いてくれ
>[eval exp="f.a&f.n + 1"]
は例えばf.a10という変数に1を足したいものだと思ったが
もしかして1を代入するつもりだったのか?
f.a10に数値を加算したいなら+=1、f.a10=1にしたいなら+でなく=
f.a10をf.a11にしたいならf['a'+f.n+1]
まさか[emb exp="f['a'+f.n]++"]とかしてないよな?してたら++はいらん
>[link target=*a]1[exp="f.n = 1"][endlink][r]
これがレスだけでの間違いでなければ
[link target=*a exp="f.n = 1"]1[endlink][r]に直す
あともう少しわかるようになったら変数は配列使ったらいいと思う
スルーせず相手しておいて言うのも何だが
的確なレスができない回答側の負担も考えて質問してくれ
エスパーじゃないから疲れた
すみません、吉里吉里で無圧縮AVIの素材を圧縮したいんですが いろいろと問題が出てうまくいかないのです。 ・mpg=映像が乱れる、圧縮率の問題?? TMPGEnc使用 ・wmv=音ずれ。 windowsムービーメーカー使用 ・AVI=ビットレート高いとカクカク、低いと映像乱れ Aviutl(h264) PC→win7 corei7 64bit版/吉里吉里Ver.2.29 いずれも再生プレーヤーだと何の問題も出ませんが 吉里吉里で動画再生すると上記のような症状になってしまいます。 何かお勧めのエンコの仕方があれば教えて頂けないでしょうか? これがお勧めっていうやり方があれば教えて
ニコ動でハイクオレベルであげて、 ゲーム内では動作に支障のないレベルまで落とす位しかわからん。
mpgの場合は商用や他のフリー作品に同梱されてる奴のレートを参考にすればいいと思う。表示サイズと画素数と個別に指定するので 画素数と表示サイズを同じにしたらそこそこくっきりするかも。 wmvのこのケースはちょっとわからん。音声データの長さと動画データの長さが違うと発生したりしないかな。 同じ長さの音声と動画を別々に吐き出しておいてから改めてくっつけたらもしかしたら……。 aviはおすすめできない
リリースについて質問なのですが 栞の保存場所について、デフォルト($(exepath)\savedata)でもVistaや7で問題ないでしょうか? 本やネットで調べてもVistaが出始めの頃の古い情報しかなく、皆どうしているのか気になります
>>961 栞の保存場所はデフォルトでいいよ。
問題は、本体のインストール場所で、それをProgram files以下に
しちゃうと、起動方法によって栞が保存される場所が変わって
しまうという…。Program Files 以下にはインストールしない
ようにすれば大丈夫…だと思う…んだけど…。
既読ラベルを"trail_ファイル名_ラベル名"から"trail['ファイル名']['ラベル名']"にしたら 読込オーバーヘッドが減って改善しないだろうか どこにボトルネックがあるのか分からないから何とも言えないけど……。 セーブデータが大きくなると終了確認やらその他でも重くなるから困りものだ
以下のように10万個の既読ラベルを作ると、、手元の環境だと起動に55秒かかる。 for (var i = 0; i <= 999; i++) { var fnam = "ABC_" + "%03d".sprintf(i); for (var j = 0; j <= 99; j++) { var label = 'abcdefghijklmn_' + "%03d".sprintf(j); var valname = 'sf.trail'+ fnam + '_' + label; Scripts.eval(valname + ' = 1'); } } つづく。
階層的に作ると、1.4秒(savesu.dat圧縮時。非圧縮では5.4秒)で起動する。 確かに階層的に作った方が圧倒的に有利。 sf.trail = %[]; for (var i = 0; i <= 999; i++) { var fnam = "ABC_" + "%03d".sprintf(i); sf.trail[fnam] = %[]; for (var j = 0; j <= 99; j++) { var label = 'abcdefghijklmn_' + "%03d".sprintf(j); sf.trail[fnam][label] = 1; } }
あと、既読ラベル名を(ファイル名やラベル名を短くして)短縮すると、 2割くらい早く起動できることがわかった。 …しかしどうしたものか。階層化に対応させるにはMainWindow.tjsを つつかないといけないので、すぐに対応できないし、互換性が失われるし…。 …ごった煮の中の人に知らせたら、「そういうプラグイン作ろうか」って…。 すげー。
1000回のループ中に100回ループより 100回のループ中に1000回ループの方が早いと思う
検証サンクス。同じく10万個(1000*100)で試したら、 現在の : save 1709ms, load 4353ms 階層型 : save 1721ms, load 182ms セーブは変わらないが、ロードが圧倒的に早くなってた ロード時に既存のラベル方式か判定すれば互換性は維持できそうだな
>>968 あのコードはセーブデータを「作る」ためのもので、
コードの実行時間を議論してるわけじゃないことにご注意。
>>969 , 970
改造自体は難しくないよね、こちらでもやってみた。
uploadありがとう、そちらのもチェックしてみる。
>>962 通常だとインストーラの設定も、Program Filesがデフォルトのようですが
避けた方がいいんでしょうか。
避けるとしたらどこが一般的なんでしょう?さすがにC直下というのもあれだし…。
もしくは、インストール先はProgram Filesのままで
savedata場所をユーザーディレクトリ以下に変えるとか?
>>972 >もしくは、インストール先はProgram Filesのままで
>savedata場所をユーザーディレクトリ以下に変えるとか?
商業同人サークルの多くはこのパターンかな
俺は嫌いだけど
Cドライブのルートに勝手にブランド名のフォルダを作りたがるインストーラは それはそれで嫌いなんだけどな
C:\は一般ユーザー権限だと書き込めない罠 保存場所で困るのはマイドキュメントに勝手にディレクトリ作ってくれるやつ、邪魔でしょうがない。 User/AppData/Local/以下が鉄板かな。
つーかマイ〇〇って存在自体がイライラする
XPマシンでファイル破損チェックツールを実行するとOK、 Win7マシンで同じファイルで同じことをすると破損と出る。 どちらもプレイは普通にできる。 ファイル破損チェックツールは7に対応してないのでしょうか?
吉里吉里でユーザーが画像を自由にカスタマイズ出来るようなゲームは作れますか? 具体的に言うとカードワースやElonaみたいに顔グラ画像を入れ替えたいです
作れます。 特定の差し替え用フォルダ読み込むようにしておけばいいだけ。
>>977 続き
ファイル破損チェックツール.exeを実行するタイミングによって、正常と出たり破損と出たりします
複数のWindows7 PCでのみそうなります
なんだこれ
いずれも実行はやはり、問題なくできます
そもそも吉里吉里は7対応してないんですね、開発やめてしまったのか
>>979 ありがとうございます!
今の自分の力では出来ないが作れると知っただけでもモチベ上がりました
>>980 妙なワクチンソフトとか使ってないか?
あと、サイトは更新し忘れてるぽいけど、付属 readme だと普通に動作環境に7入ってるぞ。むしろ動かない理由が無い
そろそろ
>>985 あたりが次スレ立ててくれると有難い
クロスプラットフォーム版は開発続いてんの?
吉里吉里3のことならたまについったーでつぶやいてるから続いてるんじゃね
しかしDeeたんのツイートの約90%はツインテールかニーソに関連する変態発言である
スレ立てできなかったから↓の人次スレたてればいいと思うよ
サイトにつながらない
吉里林死
>>988 > _w_dee/でぃー子(12歳)2011/06/02(木) 22:22:29 via twicca
> 帰宅…orz kikyou.info今日も復旧出来ないかもです…アンッ
よろしくおねがいしますm(_ _)m ごった煮さんの所の 「キャラクタレイヤー管理プラグイン」使おうとしてる者です。 リファレンス見つつ動作確認してるんですが、 所々で「タグ/マクロが存在しません」とエラーが出てきてしまいます。 [char_reg]でキャラ登録、 [char_disp]でキャラ表示、などは出来てると思うんですが、 (ちゃんと画面に出てくる) リファレンス冒頭にもある[init_charlayers layer="2 3 4"]とか、 [char_setopt][popupchars]も、「タグ/マクロが存在しません」と出てきます。 [char_quake]に関しては、指示通りに指定キャラレイヤが揺れるものの、 何故かその後[wqsp]で揺れ待ちを指示したら「[wqsp]タグ/マクロは存在しません。」 …と、エラーになってしまいます。 ごった煮さんのプラグインは、 レイヤーモーションプラグイン、どこでもセーブ改良版、を、以前から使っていて、 この二つは何の問題もありませんでした。
---------------------------- first.ksの中身 ;↓ごった煮さんの所でキャラクタレイヤプラグインに必要だと書かれていたもの [call storage="Interpolation.ks"] [call storage="LayerMotionPlugin.ks"] [call storage="Macro_TimeEffect.ks"] [call storage="Macro_APimage.ks"] [call storage="Macro_CharDatas.ks"] [call storage="Macro_CharLayers.ks"] ;↓キャラクタレイヤ管理プラグインに関係無いやつ @loadplugin module=wuvorbis.dll [call storage="exsystembutton.ks"] [call storage="SaveAnywhere.ks"] [call storage="マクロ.ks"] *start [jump storage="立ち絵テスト.ks"]
------------------------------------------- 立ち絵テスト.ksの中身 *first [char_init layers="2 3 4"] (↑リファレンス冒頭のように [init_charlayers layer="2 3 4"]って書くと タグ/マクロが存在しませんと出る) [char_reg name=太郎 eternal=true intpos=0,0] [char_reg name=花子 eternal=true intpos=0,0] [太郎 storage="通常"trans=true time=500] [花子 storage="通常"trans=true initpos=0,75 time=500] [l] [太郎 storage="思案"trans=true time=500] [char_quake name=太郎 time=2000] (↑この後に[wqsp]を書くと「タグ/マクロが存在しません」と出る」 [l] ---------------------------------------------- キャラクタレイヤ管理プラグイン動作に必要な時間エフェクト追加スクリプトの、 TimeEffect.tjsとOverride.tjsは、どこに置いていいのか分からなかったので、シナリオファイルに置いてます。 どこでおかしな事をしているのか、どうかご教授ください。
次のスレ立ってもないのに990超えて質問レスすんなよ 忍法帳のレベル足りなかった誰か頼む
>>994 申し訳ないです、うっかりしてました…。
自分もスレ立て出来なかったので、どなたかお願いします。
忍法帳ェ スレたて乙です
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。