■吉里吉里/KAG/TJS雑談質問スレ■その30 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
吉里吉里スレ過去ログ倉庫
ttp://bbs.bokunatu.com/krkr/
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/
吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/
ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。
必要に応じて>>3-6の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その29
http://echo.2ch.net/test/read.cgi/gamedev/1433436610/ あ、[locklink]したら表示したボタンを押せなくなるな。すまん
どうしても[button]タグのボタン使うならメッセージレイヤの
focusableをfalseにするとかかなあ。試したおことないけど。
まあそれよか適当なプラグインでボタン表示する方法をお勧めする >>161
>>162
ありがとうございます!おかげさまで
『押しても何も起こらないボタンを用意し、上下左右キーが押されたらそのボタンにフォーカスように設定する』
方法を思い付いたのですが、無理でした。
kag.fore.messages[2].links[0].object.focus();
kag.current.setFocusToLink(0, false);
これらを使ったのですが、どうしても1クリック程度なら変化なしなのですが、少しでも連打を早くしたり、押しっぱなしにするとフォーカスが別ボタンに飛んでしまいます。
プラグインでボタンを造るとキー操作を受け付けない物出来るのでしょうか? というかそもそも上下左右キーはどうやってとってる?
kag.ketDownHookにコールバック登録してtrue返せば
フォーカス移動の前に処理して移動を抑制できると思うけど?
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/TJSTips.html#id275 kag.keyDownHookだった。typo失礼。
function myKeyDownHook(key, shift) {
if (key == VK_LEFT) {
// なんか処理
return true;
}
}
kag.keyDownHook.add(myKeyDownHook);
みたいな。 >>165
ほぼほぼ同じ形です。
//なんか処理 の所に
kag.process( '', '*keydown_left' ); return true;
といったものが入りますが、押しっぱなしにするとすごい勢いでフォーカスが移ってしまいます。
ttp://fast-uploader.com/file/7032479198301/
パスはkirikiriです 様々教えていただいたキーワードで検索した結果。意味もよくわからないまま
f.myKeyDownHook_lock=false;
を入れていたのが原因とわかり、解決しました
ありがとうございます コード見たけどf.myKeyDownHook_lock=trueになってる間に次の入力が来るからでそ
この仕様で対応するならmyKeyDownHook内においてf.myKeyDownHook_enabledが真なら
VK_{LEFT/RIGHT/UP/DOWN}が来たら常にtrueを返さないといけない。
ただしkag.processをするのはf.myKeyDownHook_lockが偽だった時のみ
var myMoveTable = %[
VK_LEFT => "*keydown_left";
VK_UP => "*keydown_up";
VK_RIGHT => "*keydown_right";
VK_DOWN => "*keydown_down";
];
function myKeyDownHook(key ,shift) {
if(!f.myKeyDownHook_enabled) return;
var target = myMoveTable[key];
if (target != "") {
if (!f.myKeyDownHook_lock) {
f.myKeyDownHook_lock = true;
if (shift & ssCtrl) target += "2";
kag.process('', target);
}
return true;
}
}
動作確認してないけど。あくまで一例で。 >>167
というかよく見たら >>84 のコピペか。
意味わからずコード使うのは危険だぞ
f.myKeyDownHook_enabledはtrueならキーフック機能を有効にする
f.myKeyDownHook_lockはtrueならkag.processを無効にするフラグだ。
んで
// ■キーロック時は無視 returnだけのがいいかも。自分で検証して
これ検証してreturn;だけにしたのかもしらんけど
return truenの方が正解だな。
returnだけだと素通ししてメッセージレイヤのキーフォーカスが動いてしまう。 >>169
ありがとうございます
tjs等わからないのにノリと勢いでゲームを作ろうとした結果、何度も質問をしてしまう形になってしまいました ゲームを作ってEXEで出力したのですが、他の人に配布して起動してもらうと、
OS搭載のソフト「windows smart screen」が危険ソフトと認識して妨害します。
プロパティから解除すれば問題なく遊べるのですが、こちら側でそれを回避する方法はないでしょうか?
いちおう、制作ではKKDE2.0αを使用しています。 よく解んないですけど、回避できたらセキュリティホールになりませんか? データをxp3ファイルに書き出せば回避できるかな?と想像
exeとして出力すると全く新しいexeファイルが流通することになるから
そのexeファイルの安全性が評価されていなくて警告が出る JVNがtype-moonとあかべぇそふとの作品をウィルス扱いして以来
吉里吉里は危険ソフト扱いなんだよ >>172-174
新しいexeファイルと認識して、ヤバいかもしれんから止めとけって警告を出しているのですね。
ありがとうございます。 最近のWindowsではインターネットからダウンロードした
未署名のexeを実行しようとすると警告が出るので吉里吉里云々は関係ないね。
根本的に解決するにはコードサイニングするしかない。
それにはめっちゃ金がかかるので同人向きではないって話なので、
結局ユーザー側で回避してもらうしかないのよね 横からですが、自分も気になってたのでありがたい質問と回答でした
>ウイルスソフトの警告 win7アップデートでKKDE起動できなくなったんだが
システム復元以外の解決方法わかるエスパーいませんか? out focusさんが見られなくなってる
あああ・・・ niftyだったから、なくなっちゃったのね。そういうことってあるんだなぁ。 他にも講座等で有名だったけど
今はもうつながらないか繋がっても吉里吉里系は何もないサイトさん増えたよね
時代の流れかな out focusさんのwikiあった
DLが上手くいってなかったのか、ヘルプの内容部分が白紙になって見られなくて困っていました
ここに書くのもおかしいですが、復活してくださってありがとうございます >>183
outfocus wiki 吉里吉里
urlを貼っていいかわからないので、上記の単語で検索してください >>184
サンクス
wikiwikiのが生き残ってたのか ふつうに貼っとこう
スレ移行のときにテンプレ書き換えよろしく
OUTFOCUS Wiki*
ttp://wikiwiki.jp/gutchie/ 吉里吉里で画面のフルスクリーンが出来ない(右上のボタンもロックされてしまった)のですが、
これを修正する方法はありますでしょうか?
1280*720で作ってしまった為、ノートPCだと画面サイズが足りない事があると判明したのですが、
フルスクリーンモード時に画面に合わせ縮小するというのも可能なのでしょうか?
アスペクト比変わらずフルスクリーンにする方法を探しているのですが、何か方法はあるのでしょうか すみません、質問なのですが。
マクロの構文なのですが、これは正しいのでしょうか?
この構文だとパラメータ”立ちキャラ”に何か入っていても、立ちキャラを設定しなくても処理Aに行くと思うのですが。。。。
処理Bに行く条件ってどんなものになるのでしょうか?
[if exp='%立ちキャラ|false']
;処理A
[else]
;処理B
[endif] >>188
その記述だと立ちキャラパラメーターなければ処理Bだろ >>190
そうとも限らなくね? まぁ通る値は極々一部だろうけど [macro name=testA]
[nowait]
[emb exp=mp.hoge]
<
[if exp="%hoge|false"]
1
[else]
0
[endif]
>
[endnowait]
を試した結果↓
https://gyazo.com/4223bc4499c92a3b380a49d2742bb389
何故こうなるのかわからないなら "%"とか "|false" は使わないほうが良いと思うニダ それって実用性はあるんだろうか
どんな時に使うのかよくわからん >>192
ちょっと「ん?」となったけどわかりやすいなこれ OUT FOCAUSさんの wiki見ましたが、もぐら叩きとかタイピングゲームとか、その他の小ネタのやつは削除されてるのでしょうか
もし見かけた方おられましたら情報いただきたいです
よろしくお願いします イヴの日にまでエロゲ開発とか、死にたくならないの? 動画ファイルって●とか▲みたいな複雑なマスクってかけれる? >>198
KAGEXならclipにマスク用の画像設定すればできる
@image layer=動画レイヤ movie=move.mpg clip=マスク画像 最近のパソコンの標準のペイントのサイズが640x480でないから困った いくらなんでも今はペイント用のフリーソフト使おうよ 吉里吉里2で、立ち絵表示をしようと
http://kopacurve.blog33.fc2.com/blog-entry-387.html
のマクロをお借りして立ち絵表示をしようとしたのですが、どうしても足しか映らず、肝心の顔が見ることが出来ません。
コンフィグを弄ってcenter等の設定は出来たのですが……。
ゲーム画面サイズは800×600です。 足しか映らない、ていうのは、画像が上に行ってしまって足だけという意味です、すみません! 見てないがcenterの設定って事はkagex?
envinitのどこか間違ってるんじゃね? EXではないです…
普通にコンフィグで前景レイヤ初期位置の調整だけしたって意味です。すみません
左右の調整は出来ても、前景レイヤ上下の調整は見当たらなくて、立ち絵が上に行ってしまってるんです
マクロお借りしてるサイトにも書かれていないようなので… マクロを使う前にまず自分でimageタグで表示してみたら?
仕組みを理解すれば、コンフィグでも人の作ったマクロでも、自分でマクロを組んで使う事も出来るでしょ 流石にimageタグでは問題なく表示できます…
マクロで表示した時だけ変に表示されてしまうんです… 足しか映らずって800*600の画面より大きい全身ファイルいれて
マクロそのまんまコピペしてtopとleft指定してないってオチじゃないの?
そのサイトの一番最初にも説明書いてある
[ macro name="キャラ" ]
[ image storage=%ch_sto layer=%lay top=%y left=%x visible=true page=back ]
[ endmacro ]
これだけでまずちゃんと映るかやってみ 今信用できる背景素材サイトはどこですかね?
とりあえず背景写真保管の会は危険だ。
どっかクリックしたら変な警告が出るぞ。 そんなパソコン蛾物故割れたみたいなこと言われても
行ってみたらリンク切れ(あるいは接続先のサーバーエラー?)がいくつかあっただけだった >>208
>>202ですが…
xy指定のものは問題なく表示されます
ただ、下部のcenter left rightの指定マクロ部分の時だけおかしくなります。
mp.posのとこですね。
center、left、rightはコンフィグの前景レイヤ部分で設定は出来てるのですが、如何せん下に降りてこず……
サイズを変えてもやはり上に行ってしまってます…… >>211
だからお前さんがpos指定の意味合い自体理解してない=できないで騒いでるだけじゃ
http://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html
posの部分な
>縦方向の位置については、レイヤの下端は画面の下端に合わせて ( 下側に 詰められて ) 表示されます。
>この属性を指定した場合は left 属性や top 属性は無視されます。 >>212
すみません、多分漸く理解出来ました!
立ち絵の下半身ちょんぎってまた挑戦して見ます!
posの場合、png保存でも立ち絵全体を入れてしまうと足まで、しかも下の空白まで計算されてしまう?のですね?
更にはposとposition同じと思ってましたが違ったようで……お恥ずかしい 俺もしらんかった。。。
cとかlcとか使わないからなぁ。。。
あれは甘え >>202です
お蔭さまで画像表示が綺麗にできました!
本当にありがとうございました。 oggを使おうとしてプラグインを使うタグを入れて上書き保存しようとしたら、
わけのわからないエラーメッセージが出て来た。 >上書き保存しようとしたら
吉里吉里には編集機能はないんだよなあ・・・ なんでどうしようもない馬鹿って「なんかエラーが」「わけの分からないエラーが」みたいに
一番肝心なところを具体的に言わないんだろうな 攻撃力 55
防御力 68
HP 180
こういうのを、数字は右揃え、文字は左揃えにするには、レイヤーを2枚使うしかないですか?
数字が4桁だったり、ステータスが5文字だったりするのを想定込みで リファのLayer.drawTextとfont.getTextWidth読んでわからないなら
[locate x="100" y="100"]使って一項目ずつxy位置を指定するしかない 普通”攻撃力”とかの文字は画像にしてレイヤーにまとめるのがベター 等幅フォントなら文字列処理でなんとかならなくもないんじゃね? そうなんだけどさ、結局BGの上に乗っけるものだから背景に塗り込めちゃった方が楽だし、絵的なデザインできるわけだから見栄えが良い 人生ゲームのようなものを作っています。
1・サイコロを振るボタンを押す
2・道が分岐したらどちらの移動先に行くかを決める
という単純な部分で詰まってしまいました。
サイコロのボタンは表示したままにしておきたいのですが、分岐中はクリックできないようにしたいのですがその方法がわかりません。
また、分岐のボタンを表示中にキーボードの←→キーを押すと、『右の道』『左の道』の他に『サイコロを振る』まで選択出来てしまいます。
分岐ボタン中は←→でどちらの道、というのを選べるようにしたいですがサイコロボタンにキーが行ってしまう、クリックが出来てしまう事を拒否したいのですが良い方法はありませんでしょうか? WEB WAVE LIBの効果音素材がダウンロードできなくなってしまった! WEB WAVE LIBから効果音素材がダウンロードできるようになった♪ ありがとうございます、様々試した結果、少しだけやりたい動作が出来ました。
が、[locklink]を使用すると問答無用で全部使えなくなってしまう為、『いつでも押せるボタンだがキー操作の対象にならない』というような物は可能でしょうか?
また、ボタンAの上でクリック最中、ボタンから別の場所へ移動して離した(ドラッグするような動き)時、ボタンAが押されなかった判定にしたいのですがどのようにすれば良いのでしょうか? グラフィカルボタンについて質問です。
ヒロインの立ち絵画像をボタンにしたヒロイン選択画面を作っているのですが
モノクロ画像のボタンを、カーソルを合わせた時とクリックした時に色付きの画像にするようにしています。
この状態だと一度クリックしたボタン画像が再びモノクロに(標準の画像)戻るのですが、
このまま色付きの状態・・・クリックした時の画像のまま表示させるにはどうしたらいいのでしょうか。
アドバイス頂ければ幸いです。 初めまして。現在吉里吉里2でゲームを作っているのですが、
ロードの方が上手くいかずもうお手上げなので、
こちらの方で良ければ助言を頂ければと思ってます。
今やってる方法がメインのメッセージレイヤ1と2を非表示にして、
メッセージレイヤ3をボタンタグを形成、5でボタンの情報を
乗せる様にしています。
メインのksでメッセージレイヤ1と2を管理して、指定のボタンタグを
押したら別のksに飛んでメッセージレイヤ3と5が表示されロード管理の
ページが出るようになっています。
そのロードのボタンに当てている命令は以下です。
[button graphic=S&L.bmp exp="kag.restoreBookMark(0)"]
症状としては、ページに飛んでロード用のボタンを押すと下記のエラー文が
出る形になります。
色々調べたり、試したのですが上手くいかず途方にくれております。
[エラー文]
スクリプスで例外が発生しました
オブジェクトはすでに無効化されています 続きです。
[コンソール]
YesNoDialog.tjs を読み込みました(5ms)
================================================================================
Scenario loaded : first.ks
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
first.ks : jumped to : *01a-2
処理を開始します
==== An exception occured at buttonlayer.tjs(164)[(function) onMouseUp], VM ip = 16 ====
-- Disassembled VM code --
#(164) Butt_mouseDown = false;
00000013 const %1, *2 // *2 = (int)0
00000016 spd %-2.*0, %1 // *0 = (string)"Butt_mouseDown"
-- Register dump --
%-2=(object)(object 0x0018F8B0:0x00000000) %-1=(object)(object 0x0B88AFF4:0x0B88AFF4)
%0=(void) %1=(int)0 %2=(void)
----------------------------------------------------------------------------------------
スクリプトで例外が発生しました
オブジェクトはすでに無効化されています
trace : immediate event
非フリーセーブで製作していまして、メインの方のテキストの
1ブロック毎にセーブのタグは入れてあります。
すみませんが何卒よろしくお願いいたします。 プレイヤーが自分のアバター(主人公)をキャラメイク出来るゲームを作りたいんですが吉里吉里で作れますか? 素材用意できるかどうかのほうが大きい
あとTJSはいじれないと多分きつい >>235
http://tjs2.info/
ここの第五章 システムボタンの中にある
http://tjs2.info/TJS0607.html
6.7 セーブ/ロード画面の設計
ここを見てみるとセーブ・ロードに関する基本的なことがわかると思う
ボタンは「吉里吉里プラグインとかごった煮的配布場所」で配布されてるKLayers.ksのクラスを継承して作ってるなぁ すみません System.shellExecuteの質問です
吉里吉里上でmifesを起動させようとして以下の記述をしてみましたがうまくいきませんでした
何がいけないのでしょうか
var storage = kag.conductor.curStorage;
var line = kag.conductor.curLine;
System.shellExecute("C:\\Program Files (x86)\\MIFES10\\miw.exe /+%line% %storage%");
ちなみにdosプロンプト上から
"C:\Program Files (x86)\MIFES10\miw.exe" /+5 f:test.txt
これでtest.txtが起動して5行目が表示されました
また
System.shellExecute("C:\\Program Files (x86)\\MIFES10\\miw.exe");
これも起動します。
一つは、storageをフルパスで取得してないせいなのかもしれませんが、正直よくわかりませんでした
どこを直せばよいのでしょうか >>241
自己解決しました
単純にパラメータの設定を間違ってました 吉里吉里(TJS)の処理速度
ってどれくらい早いですかね?
前見た記憶ではけっこう早かった気がしましたが
今ちょっと検索しただけだと具体的な
実行速度の数値が見つかりませんでした
今TJSでゴリゴリ計算するような
特殊なジャンルのプログラムを書いてまして
C言語などで書けば
もっと早いのは分かっているのですが
別言語で書くのはしんどいので
Cに対して100倍以内くらいの差なら
まずTJSで書いてみようと思ってます 自分でそのジャンルのプログラムの簡易版みたいのを書いて計測するのが一番ラク なるほどそうですね
じゃあプロトタイプをまずTJSで書いてみて
そこで遅すぎてお話にならないようであれば
あらためてC言語などで書き直すようにします モブキャラ100人くらいの名前をランダムに生成するのってどんな方法がありますか
f.名前格納[0] = '鈴木'
f.名前格納[1] = '佐藤'
みたいに1000名くらいバーっと書いてシャッフルして上から100人を選ぶ、
みたいな方法は思いつくんですけど、なにかもっといい方法があれば教えて下さい。 そら滅茶苦茶な名前でいいなら適当にランダムな平仮名選んで「えぶ」「こゆ」「れび」とか作れないこたないだろうけど
それじゃ意味ないだろうし
もうちょっと効率良くやりたいなら、「バーっとシャッフルして100人選ぶ」のを「名字1文字目」と「名字2文字目」で
それぞれやって繋げれば1000名もいなくてもそれっぽくなる確率は高い 繋げるのは今ためしにやってみたんですけど、どうもおかしな名前が出過ぎて
しまって無理でした。高安とか日馬とか、たまたまなんですけど相撲取りみたいな
名前が連発で出てきて、諦めました。
名字は、全国で多い名字一覧みたいなページがあったのでそれを使って1000人分
作ろうと思います。
でも名前のほうはなかなかないんですよね。名づけを考えるページで
最近の名前一覧100みたいなのはあるんですけど、今風な名前が多いし、
数も足りなそうだし。 なんのためのシステムか知らんけどBOTの名前付けとかだったら 氏名×名前で適当にくっつければ それなりの数になるんじゃないか
1*5だと 5種類だけど 2*5になれば10だし 5*5なら25になるし 1000人作るにしても 30*30で900になるわけで
日本人だと鈴木とか佐藤とか多いから 配列に鈴木を3個入れたりしてもいいんじゃないか var dic = %[
苗字接頭:['東','西','南','北','大','山','石','森','金','黒'], // 10
苗字接尾:['田','口','山','村','野','川','園','浜','井','本','木','崎','森','小路' ], // 14
苗字単体:['勅使河原'], // 接頭+接尾でなく単体で抽出される苗字
男名前単体:['しんのすけ'],
男名前接頭:['将','翔','優','正','健','良'], // 6
男名前接尾:['男','雄','太','一','助','人'], // 6
女名前単体:['ルイズ'],
女名前接頭:['雪','夏','秋','春','愛','優'], // 6
女名前接尾:['子','絵','奈','華','美',''], // 6
];
function getRandomName( dic, ch = '苗字' ) {
var r = function( arr ) { return arr[ intrandom(arr.count-1) ]; }; // 配列からランダムで要素抽出
if( !intrandom(49) ) return r(dic[ch+'単体']); // 1/50で単体の配列から抽出
for(;;) {
var c0 = r(dic[ch+'接頭']);
var c1 = r(dic[ch+'接尾']);
if( c0 == c1 ) continue; // 山山とか接頭接尾が被る苗字はNG
var nm = c0+c1;
return nm;
}
}
for( var i = 0 ; i < 100 ; i++ ) dm( getRandomName(dic,'苗字')+' '+getRandomName(dic,'男名前') );
for( var i = 0 ; i < 100 ; i++ ) dm( getRandomName(dic,'苗字')+' '+getRandomName(dic,'女名前') );
Debug.console.visible = true;
// これで、10(苗字接頭)*14(苗字接尾)*6(名前接頭)*6(名前接尾)*2(男女)=10080個(単体は除く)
// 配列の充実化は自分で頑張れ >>250
横から失礼します
配列関係のスクリプトは勉強してなかったから勉強にんりました 今や吉里吉里はプロ・セミプロユースがほとんどで
フリー素材とかもoggが大抵一緒にあることを
考えるとねえ 組んでてふと思ったんだけど、
ifの中で直接ジャンプしてそこから強制的にタイトルに戻ったり
call先で強制的にタイトルに戻ったり
あまつさえifの中のcall先で強制的にタイトルに戻ったらまずいのではないかな?
ifやcallがずっとスタックされ続けるよね?タブン……
解決法あるのかねこれ それとも無視して平気? titleタグ踏んだらその辺はリセットされたんじゃないかと思うけど……
最近KAG触っていないので若干自信ないが 吉里吉里講座のホームページが潰れていて高度な事のやり方がわからなくなった。
たとえばタイトル画面の選択肢から栞を読み込ませる方法とか、右クリックで栞にセーブする方法とか。 KAGで扱う部分は初歩的な事だと思うけど
サイトと情報が消えていくのはまずいね
最近過疎ってるのはやっぱ
スマホブームに乗れなかったからか 元々プログラマ文化の強いツールで、初心者迎合はムリにやってたようなところもあるからね 次に吉里吉里ブームが来るとしたら逆にセミプロ・プロユースとしてだと思う
「アマチュアがノベルゲーム作りたい」って方向なら色々別なのが出てきたしねえ KAGまで面倒みたのは大正解だったと思うけど
もしKAGなくてKAGを自力で実装必須だったら
一部の通向けの道具として埋もれてたはず ■ このスレッドは過去ログ倉庫に格納されています