トップページgamedev
1001コメント379KB

■吉里吉里/KAG/TJS雑談質問スレ■その18

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/06/06(土) 01:11:54ID:EztZkDNL
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。

※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!

前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その17
http://pc11.2ch.net/test/read.cgi/gamedev/1234356309/


吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/

吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/

ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。

必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
0402名前は開発中のものです。2009/07/31(金) 14:02:11ID:xHa0woew
>>398
rightClickHook使うとか
ただしそのままだとサウンドギャラリーを抜けても有効なので、removeするか
フラグが立っている(ギャラリー中)なら有効なようにする
0403名前は開発中のものです。2009/07/31(金) 23:29:54ID:VlyFlnzf
完全な初心者です
自己解決したんですがトランシジョンは難しいですね
背景画像を使わずにメッセージレイヤに文字だけ表示している状態から
その文字を溶暗で消す方法がわからなくて悩みました
結局真っ黒な背景画像を用意してクロスフェードさせました
メッセージレイヤをどうやって操作すればいいのだろうと悩んでいました
チュートリアルを作られている方にこのとほほなつまずきをお知らせしたいです
0404名前は開発中のものです。2009/07/31(金) 23:50:59ID:DEiOJAlU
>背景画像を使わずにメッセージレイヤに文字だけ表示している状態から
>その文字を溶暗で消す方法がわからなくて悩みました
@backlay
@layopt layer="0" page=back visible=false
@trans method="crossfade" time="1000"
@wt
これでok
04054032009/08/01(土) 00:04:18ID:uNi03v+g
404さん、ありがとうございます
チュートリアルは背景画像を使う普通の場合を想定しているのでつまずいていました
0406名前は開発中のものです。2009/08/01(土) 00:28:43ID:GXDqmh6d
>>405
チュートリアルは、コピペして使うものじゃなくて、基本の仕組みを理解するためにあるものだから
チュートリアルだけじゃなくて、タグリファリンスにもちゃんと目を通した方がいいよ
あとはテンプレ見て講座サイトと併用するなり何なり
いきなり一から十まではできないだろうが、みんなつまづいて思考錯誤しながら覚えていくんだよ
0407名前は開発中のものです。2009/08/01(土) 00:37:45ID:KB27uNbz
[image storage="&kag.fore.layers[0].Anim_loadParams.storage" layer=1 pos=center]
これ、型がちがうみたいなことを言われるのはなぜ?
0408名前は開発中のものです。2009/08/01(土) 00:50:13ID:GXDqmh6d
>>407
voidになってるのかな
kag.fore.layers[0].Anim_loadParams.storage
これ監視式に入れてみたらいいんじゃね
0409名前は開発中のものです。2009/08/01(土) 01:10:02ID:IN4NoQ+t
>>401 402
レスありがとうございます。
サブルーチンの方が簡単に組めそうなので
サブルーチンでやってみる事にします。
ありがとうございました!
0410名前は開発中のものです。2009/08/01(土) 01:26:53ID:QpRSM0pZ
>>407
[image storage="&kag.fore.layers[0].Anim_loadParams.storage" layer=1 pos=center
cond="kag.fore.layers[0].Anim_loadParams !== void && kag.fore.layers[0].Anim_loadParams.storage !== void"]
または
[eval exp="kag.fore.layers[1].assignImages(kag.fore.layers[0]"]
0411名前は開発中のものです。2009/08/01(土) 02:00:28ID:ORmBfdl/
tjsの質問です。
var i="j";
var j= 0;
この場合に変数iを利用して変数jの値を変えられないでしょうか。
(i!)= 値、でできるかと思ったのですがこれは不正な代入か不正な式の操作だそうなので。
0412名前は開発中のものです。2009/08/01(土) 02:41:35ID:NlDhYl95
>>411
その式だと 0 = 値 ってことになるから当然エラー

目的を満たすには

global[j] = 値

でおk
0413名前は開発中のものです。2009/08/01(土) 10:24:11ID:KB27uNbz
407です。
408、410、レスサンクスです!!
condでvoidかどうかチェックするのか……。
assignImagesの使い方もわかりました。すてきー。
04144112009/08/01(土) 12:58:26ID:p7Ny6mdi
>>412
[]演算子を使えば良いのですね、回答いただきありがとうございます。
私の考えたものは言われると確かにエラーで当然ですね、何故これでできると思ったんだろう。
0415名前は開発中のものです。2009/08/01(土) 13:27:12ID:hsxXyy+h
そういうのはちゃんと理解して使わないと嵌まるよ
0416名前は開発中のものです。2009/08/01(土) 22:03:21ID:v2mQIBat
first.ksから次のシナリオのksに飛ばして
再びfirst.ksに戻って次のksに飛ばす方法したいんだけど
戻る時jumpで*〜指定するのとcallでreturnして戻るのと指定するのどっちが効率的?

他にそういう方法があるなら教えてほしいです。
0417名前は開発中のものです。2009/08/01(土) 23:07:33ID:fEDZV3Iq
>>416
そんな些細なことで効率性を求めてたらなかなか進まない
好きな方法をつかう

個人的にはマクロ読み込みみたいに必ず呼び出し元に返ってくる、ちょっと別のファイルを
読み込むような意図ならサブルーチン。同じファイルに戻るかもしれないけど条件次第では
戻らないかもしれない、シナリオ分岐など(ニュアンス的に)処理が別ファイルに移るようなときなら
jump使ってるかな
0418名前は開発中のものです。2009/08/01(土) 23:09:37ID:h4M1zPGr
何の効率?
0419名前は開発中のものです。2009/08/02(日) 10:44:29ID:C+Gw8PJZ
たぶん、脳みそ使わないで済む効率。
ケースバイケースなんだけど、通常のシナリオ部分なら
@jumpの方が扱いが楽だよ。必要なら、戻り先は、フラグに収納しとく。

>他にそういう方法があるなら教えてほしいです。
tjs含め、普通に「KAG System リファレンス」で言及されているのであらかただと思う。
ということで、リファ嫁。

個人的見解だけど。そこら辺は自分で試行錯誤して決めれば良いレベルと思ふ
0420名前は開発中のものです。2009/08/02(日) 10:54:19ID:Wp08KWhd
個人的な好みでは、jump使うのは3〜4回くらいかな
あとは全部callしてる
first.ks->macro.ks->title.ks->main.ks
とか
構造化プログラミングとかに慣れてるとこっちの方が違和感が少ない
0421名前は開発中のものです。2009/08/02(日) 11:32:42ID:fQoBB6mb
プログラマー上がりなら、違和感は少ないかもしれないけど、
栞やコンダクター周りとの相性の問題あるし、リンクが普通に使うと@jump同等だし、
@jump主体にしたほうが、素直でお得と思う。
0422名前は開発中のものです。2009/08/02(日) 12:34:40ID:Wp08KWhd
callで相性問題出るのか!?
今のところ、問題起きてないけど・・・。

jump主体はGotoのスパゲッティコードを連想してどうにも。
0423名前は開発中のものです。2009/08/02(日) 12:41:51ID:KHOYRoEP
結論:個人の好きで使え
0424名前は開発中のものです。2009/08/02(日) 13:05:59ID:3h/vRcOB
KAG SYSTEMの構造を理解してればcall主体で組むなんてことは普通しない
まあ何を作ってるのかにもよるけど、関数プログラミングがしたいなら、
TJSで自前のサブシステム作ってKAGに組み込んで・・・ってのが筋だと思うし、
後々トラブルが少なくてすむんじゃないだろうか
0425名前は開発中のものです。2009/08/02(日) 14:27:47ID:Wp08KWhd
>>424
tjsは機能拡張の為に多少弄る程度で、本体の方の構造はぜんぜん把握してないんだ
使ってるのはADVで

*start_main
[call storage="macro.ks"]
; シナリオ部
[call storage="prologue.ks"]
[call storage="scenario01.ks"]
[call storage="scenario02.ks"]
; タイトルへ
[jump storage="title.ks"]

みたいな使い方。
シーンごとの分岐とかが楽にできるから、こういう形にしたんだけど・・・
問題でそうだろうか?
0426名前は開発中のものです。2009/08/02(日) 16:00:05ID:P5IDIPeC
callは使いすぎるとreturnの誤爆が出てきてしっちゃかめっちゃかになる恐れがある
というか実際なって困ったので必要がない限りjump
0427名前は開発中のものです。2009/08/02(日) 17:38:21ID:eEt2K5t6
マクロ内でcall使うのって駄目?
とりあえず動くからいいのかと思ってたんだけど
04284212009/08/02(日) 18:36:48ID:HaievO31
えっと、自分が420に対して「相性の問題」と言ったのがあらぬ疑念を
呼んでなくもないようなので、補足します。
「相性の問題」と言ったのは、土を掘るならシャベル、
耕すなら鍬のほうが相性が良いといった用なことです。(例えがあれですが)
取り合えず、「構造化プログラミング」ってなにそれ、食べれるのって方は
「KAG System リファレンス」-「サブルーチンを使おう」等をしっかり読んで、
あとは、使って覚えればいいと思いますm(_ _)m
0429名前は開発中のものです。2009/08/02(日) 20:15:19ID:XqTlUFYH
メインフローを作ってcallでシナリオを呼んだ方が管理しやすくない?
0430名前は開発中のものです。2009/08/02(日) 20:21:19ID:BJC3kT9Q
call は呼び出しもとで行がずれたときにエラーで復帰できなくなる罠があったり
0431名前は開発中のものです。2009/08/02(日) 20:39:24ID:Wp08KWhd
呼び出し元で行がずれるってどういう場合に起こる?
0432名前は開発中のものです。2009/08/02(日) 20:47:44ID:KeHZ566g
バッチ当てるときとか?
0433名前は開発中のものです。2009/08/03(月) 10:32:56ID:V7PNVWXx
>>431
つまり最初からちゃんとしたモノを作れば問題は起きないってことです(´ー`)
0434名前は開発中のものです。2009/08/03(月) 21:06:43ID:KTOZHeSA
吉里吉里のレイヤーって横幅が1280pxとかになってもさほど問題ないのかな
昔のDirectXだと、幅が大きすぎるサーフェスを作ろうとすると問題が起きたり
してた気がするんだけど

もちろんどんな大きさのレイヤーでも作りすぎればおかしくなるのは大前提として
0435名前は開発中のものです。2009/08/04(火) 01:40:44ID:OALni9DT
そういや今の3Dエロゲはテクスチャが一枚1024*1024とかふざけたサイズらしいな。
0436名前は開発中のものです。2009/08/04(火) 21:36:25ID:gCd6e1Bq
吉里吉里は内部的には別にDirectX なわけじゃないので特に問題にはならないよ。
表示が DirectX の時は適当に切り分けて処理してくれるようになってたと思う。
0437名前は開発中のものです。2009/08/05(水) 01:44:17ID:J8WmaMAt
業務連絡〜

deeたんとこのサーバがクラッシュして現在 kikyou.info アクセス不能とのこと。
復旧時期は不明
0438名前は開発中のものです。2009/08/05(水) 01:56:18ID:IdRZHtde
それがW.Dee氏からの最後の連絡だった・・・。

ところでおさかな定食はどうなったんだ?
0439名前は開発中のものです。2009/08/05(水) 08:21:46ID:wetiCV7F
SVNとか全滅ってことか?
0440名前は開発中のものです。2009/08/05(水) 09:54:10ID:J8WmaMAt
復旧してる
0441名前は開発中のものです。2009/08/05(水) 22:30:13ID:vUt/Hk1T
誰からんか氏のどこでもセーブ持ってませんか?
工事中でDLできなくなっているので……
0442名前は開発中のものです。2009/08/05(水) 22:48:41ID:YtFZquA8
二次配布おkだったっけ
0443名前は開発中のものです。2009/08/06(木) 00:08:36ID:lHlM1VqA
流れ豚切ってすみません。
質問なのですが、
動的なカットインを取り入れたいのですが、
レイヤーそのものを動かすのではなく例えば四角いレイヤー画像内で
簡単な動きやスクロールなどをさせたいのですが
そういったことはKAGEXでやった方がいいのでしょうか・・・
pimageのみを動かせないかとリファレンスを見たところ、
そういった機能はなさそうです

何かいいアイディアはないでしょうか
0444名前は開発中のものです。2009/08/06(木) 00:39:06ID:PW1IyXjf
>>443
アニメーションファイルを使うとか。
座標ガリガリ書きまくるのがめんどくさいけど。
0445名前は開発中のものです。2009/08/06(木) 03:18:22ID:7IoCjv+k
俺はレイヤにスプライトの機能実装したけど重かった。
0446名前は開発中のものです。2009/08/06(木) 05:35:52ID:PZu2WCfx
俺はスプライト処理はDirectXに任せたけど結局memcpyで転送になるのでやはり重かった。
0447名前は開発中のものです。2009/08/06(木) 17:23:51ID:rqIQuvBC
よくプラグインのファイルとか、.ksで作ってるけど、
@iscriptで始まって、@endscriptで終わるだけなら、
.tjsで作ってもいいような気がするんですけど、
.ksの方がよくて.tjsで作ると不都合なことがあるんですか?
0448名前は開発中のものです。2009/08/06(木) 17:28:00ID:K9vVkzj4
別にない。単に KAG の処理系では読めないので、手動で execStorage する必要があるだけ
0449名前は開発中のものです。2009/08/06(木) 17:33:24ID:V0RouXx7
ksだとTJSの後KAGで何か書いておきたい時に書ける
0450名前は開発中のものです。2009/08/06(木) 18:09:33ID:PW1IyXjf
関連のマクロとかまとめとけるな
0451名前は開発中のものです。2009/08/06(木) 23:40:00ID:UZGii+8I
俺はスクリプタにそこら辺一切触らせたくなかったのでプラグインの実装、そのプラグインを使うタグの実装を全部tjsで書けるようにしてある。
シナリオ側からは
@mount name=pluginnameでプラグイン同士の依存関係から全て勝手に解決して使えるようになる。
まあ、実装の隠ぺいってやつだね。
プラグインの実体はpluginname.xp3とそれが依存するxp3にあるからスクリプタが実装の詳細を知ることはできない。

新タグの仕様はドキュメントに書いてある。
つまりプラグイン書くのはマの仕事。スクリプタの仕事ではないという事にしてある。
04524432009/08/06(木) 23:48:52ID:lHlM1VqA
>>443-446
ありがとうございます
スプライトで調べてみたものの????でしたので
アニメーションファイルかどうしても実装しかったらKAGEXを検討します
できそうで簡単にできない機能でもどかしいですね
0453名前は開発中のものです。2009/08/06(木) 23:50:32ID:ETeqkH0q
俺もスクリプタには演出のみお願いしてる。
KAGのタグだとstorageで素材を指定するとか面倒くさいので、ファイル名ベースのタグである程度システムが全自動で処理してくれるようにしてある。
スクリプタがbufの番号とかlayerの番号とか気にせず演出に専念できるように。
最近はライターさんでも扱えるぐらい簡単にしたから、スクリプタ不要になった。
このままだと俺も用済みになるかもなw
0454名前は開発中のものです。2009/08/07(金) 00:06:22ID:zu3InFxL
>453
いや、俺の場合ライタがスクリプタ兼任なんで「お前はプラグイン書く暇があったらシナリオ上げろ!」というためにだなw
0455名前は開発中のものです。2009/08/07(金) 14:29:08ID:LBL2K49z
>>454
> ライタがスクリプタ兼任

ですよねー
俺なんか正直シナリオ書くよりスクリプトいじってるほうが楽しいという
本末転倒状態になってるw
0456名前は開発中のものです。2009/08/07(金) 16:18:16ID:8xiRGJf0
一年以上前にスレで
マップチップからRPG用のマップ作ったり
キャラやモブが移動する2Dマップ処理のスクリプトをうpした人がいたけど、
だれか持っている人うpしてくれませんか

「おお、ベアトリーチェ」
みたいな台詞を町人がしゃべってたから
うみねこ1~2話が出た頃だったかな…?
0457名前は開発中のものです。2009/08/07(金) 16:28:50ID:JnppTWi1
>>456
ttp://uproda11.2ch-library.com/11192120.zip.shtml
PASS:krkr
0458名前は開発中のものです。2009/08/07(金) 16:59:26ID:8xiRGJf0
>>457
季節すら思い出せなかったので
流石に無理かと思ってましたがエスパーが居てくれて幸運でした。

本当にありがとうございます!
0459名前は開発中のものです。2009/08/08(土) 12:34:31ID:oOpy5+ek
ベアトリーチェ=うみねこて・・・うん、いや、いい
0460名前は開発中のものです。2009/08/08(土) 13:32:49ID:lY8WpKcm
しかたないさ
0461名前は開発中のものです。2009/08/08(土) 16:57:43ID:GjsPccWg
質問させてください
選択肢のランダム表示をマクロにしようと思っています
以下のようにマクロを作ってみたのですが、ふたつ問題が出ました
まず、選択肢の本文が長い場合、タグがひたすら横にのびることです
もうひとつは、選択のタイミングによって選択肢の総数が変わることです
(選択肢が4つの質問と3つの質問があったり、選択肢が増えたりします)
解決方法が思いつかないので、何かヒントをいただけたらと思います
宜しくお願いします。



*select
[macro name="select"]

@eval exp="f.data = [[ mp.text1 ,'first.ks', mp.select1], [ mp.text2, 'first.ks', mp.select2], [ mp.text3,'first.ks', mp.select3], [ mp.text4,'first.ks', mp.select4]]"
@eval exp="f.tmp = intrandom(0,3), f.data[0] <-> f.data[f.tmp]"
@eval exp="f.tmp = intrandom(0,3), f.data[1] <-> f.data[f.tmp]"
@eval exp="f.tmp = intrandom(0,3), f.data[2] <-> f.data[f.tmp]"
@eval exp="f.tmp = intrandom(0,3), f.data[3] <-> f.data[f.tmp]"

1.[link target="&f.data[0][2]" storage="&f.data[0][1]"][emb exp="f.data[0][0]"][endlink][r]
2.[link target="&f.data[1][2]" storage="&f.data[1][1]"][emb exp="f.data[1][0]"][endlink][r]
3.[link target="&f.data[2][2]" storage="&f.data[2][1]"][emb exp="f.data[2][0]"][endlink][r]
4.[link target="&f.data[3][2]" storage="&f.data[3][1]"][emb exp="f.data[3][0]"][endlink][r]
[endmacro]

[select text1="本文1" text2="本文2" text3="本文13" text4="本文14" select1=select1 select2=select2 select3=select3 select4=select4][s]
0462名前は開発中のものです。2009/08/08(土) 17:12:06ID:g/+i2DJo
こんな感じで、どうよ?

;選択肢の直前で変数に必要なパラメータを代入
[eval exp="f.選択肢の数 = 4"]
[eval exp="f.s1 = '*select1'"][eval exp="f.t1 = '本文1'"]
[eval exp="f.s2 = '*select2'"][eval exp="f.t2 = '本文2'"]
[eval exp="f.s3 = '*select3'"][eval exp="f.t3 = '本文3'"]
[eval exp="f.s4 = '*select4'"][eval exp="f.t4 = '本文4'"]
;2択の時の専用マクロ
[if exp="f.選択肢の数 <= 2"][select2 text1="&f.t1" text2="&f.t2" select1="&f.s1" select2="&f.s2" ][endif]
;3択の時の専用マクロ
[if exp="f.選択肢の数 == 3"][select3 text1="&f.t1" text2="&f.t2" text3="&f.t2" select1="&f.s1" select2="&f.s2" select3="&f.s3" ][endif]
;4択の時の専用マクロ
[if exp="f.選択肢の数 >= 4"][select4 text1="&f.t1" text2="&f.t2" text3="&f.t2" text4="&f.t4" select1="&f.s1" select2="&f.s2" select3="&f.s3" select4="&f.s4"][endif]
[s]


[select2]と[select3]と[select4]をまとめて
[select]内で、f.選択肢の数 を調べて、処理を分岐のほうがスマート
0463名前は開発中のものです。2009/08/08(土) 17:35:42ID:g/+i2DJo
2〜4択に対応版作ってみた


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;↓今回の選択肢の数
[if exp="f.好感度フラグ < 5"][eval exp="f.選択肢の数 = 3"][endif]
[if exp="f.好感度フラグ >= 5"][eval exp="f.選択肢の数 = 4"][endif]
;↓選択肢の直前で変数に必要なパラメータを代入
[eval exp="f.s1 = '*select1'"][eval exp="f.t1 = '本文1の文章をここに記述する'"]
[eval exp="f.s2 = '*select2'"][eval exp="f.t2 = '本文2の文章をここに記述する'"]
[eval exp="f.s3 = '*select3'"][eval exp="f.t3 = '本文3の文章をここに記述する'"]
[eval exp="f.s4 = '*select4'"][eval exp="f.t4 = '本文4の文章をここに記述する'"]
;↓のマクロで選択肢配置
[select]
[s]
0464名前は開発中のものです。2009/08/08(土) 17:37:33ID:g/+i2DJo

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;選択肢マクロ
[macro name="select"]
;今回使用するデータを集計
@eval exp="f.data = [[ f.t1 ,'first.ks', f.s1], [ f.t2, 'first.ks', f.s2], [ f.t3,'first.ks', f.s3], [ f.t4,'first.ks', f.s4]]"
;ランダム入れ替え
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
;↑今回の選択範囲の内容を入れ替え
;↓以下適当な回数シャッフルを繰り返し
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
@eval exp="f.tmp1 = intrandom(0,f.選択肢の数-1),f.tmp2 = intrandom(0,f.選択肢の数-1),f.data[f.tmp1] <-> f.data[f.tmp2]"
;選択肢を表示する
1.[link target="&f.data[0][2]" storage="&f.data[0][1]"][emb exp="f.data[0][0]"][endlink][r] [endif]
[if exp="f.選択肢の数 >= 2"]2.[link target="&f.data[1][2]" storage="&f.data[1][1]"][emb exp="f.data[1][0]"][endlink][r] [endif]
[if exp="f.選択肢の数 >= 3"]3.[link target="&f.data[2][2]" storage="&f.data[2][1]"][emb exp="f.data[2][0]"][endlink][r] [endif]
[if exp="f.選択肢の数 >= 4"]4.[link target="&f.data[3][2]" storage="&f.data[3][1]"][emb exp="f.data[3][0]"][endlink][r] [endif]
[endmacro]
0465名前は開発中のものです。2009/08/08(土) 17:38:43ID:irbfFcCJ
式中関数のコンテキストって何になるの?
いろいろ試してみたけど,それを含むクラスのインスタンスになるっぽい?
0466名前は開発中のものです。2009/08/08(土) 17:44:51ID:GjsPccWg
>>462-464
めちゃくちゃ早い回答ありがとう!
何かできそうな気がしてきた
じっくり考えてみるよ、本当にありがとう
0467名前は開発中のものです。2009/08/08(土) 19:51:17ID:urpQMU76
>>465
globalになるんじゃないっけ
0468名前は開発中のものです。2009/08/08(土) 20:27:58ID:x44gCfOd
ちょっと相談に乗ってほしい
セーブデータをマイドキュメント以下に保存させるようにしたんだけど、起動すると、なんかexe直下にもsavedataフォルダが作られて、krenvprf.kepってのが作られて困ってる。
デバッグ情報を記録してるってことはリファレンスに載ってたからわかったんだけど、デバッグはOFFにしている(・・・ハズ)なんだ。
Releaserでxp3とかにするときに取り除かれる、って聞いたんだけど、相変わらず生成されちゃう。
どうすればいいか、誰か知らないだろうか?
0469名前は開発中のものです。2009/08/08(土) 21:17:24ID:elWYaLJk
>>468
吉里吉里付属の「krkrconf.exe」で設定できるよ
0470名前は開発中のものです。2009/08/08(土) 21:19:24ID:V40faU5w
>>468
セーブデータをマイドキュメント以下、ってのをどうやって実現した?
吉里吉里設定を使って datapath を適切に設定して、
プログラムからは System.dataPath を参照させるのが正しい手順

除外ってのは、アーカイブ時に除外されるってだけだ。
0471名前は開発中のものです。2009/08/08(土) 21:29:23ID:x44gCfOd
>>469
確認したけど、デバッグモードはOFFになってるんだ

>>470
Config.tjsの所で、
;saveDataLocation = System.personalPath +"savedata";
ってしただけなんだけども。

他のtjsファイル見たけどsaveとかが無くて――って、dataPathで検索すればいいのかな?
0472名前は開発中のものです。2009/08/08(土) 21:31:51ID:V40faU5w
>>471
使ってる吉里吉里のバージョンは?
このあたりの仕様は Vista 用に、2.3 で変更になってる ( dataPath機能の追加)

古い版では、krenvprf.kep や 例外時のログが実行ファイルのあるところの
savedata 以下にできてしまうのは仕様で回避できない。
0473名前は開発中のものです。2009/08/08(土) 21:34:39ID:x44gCfOd
>>472
バージョン調べたら、2.30.2.416だった。
大丈夫なのかな・・。公式見てこよう。
0474名前は開発中のものです。2009/08/08(土) 23:09:41ID:V40faU5w
じゃあそれは吉里吉里本体は問題ない。

KAGも新しい 3.3 とかなら

var saveDataLocation = System.dataPath; // セーブデータ保存場所

となってるはずだ。これはいじる必要はない。
krkrconf.exe で実行ファイルを指定して、システム全般/データ保存場所 を適切に指定した
cf ファイルをつくれば、それに従って動作することになる

0475名前は開発中のものです。2009/08/08(土) 23:21:59ID:C6ikQx71
[iscript]内で、シナリオファイル上での普通の文章みたいな操作はできないのでしょうか。
例えば、普通のシナリオで、

新しい朝がきた――希望の朝だ――

と記述すると、この文章がずらずらっと表示されますよね。
これと同じ動作を、[iscript]〜[endscript]の中で出来ないかということです。


drawTextで実現できるのかなと試行してみたのですが、ずらずらっと表示されるのでなく、一気に表示されてしまいました。
また、ここで描画した文字分、テキストの描画位置が進んで欲しいのですが、それもありませんでした。

// テキストとテキスト描画色を引数とするマクロを作り、そのマクロからこのsubroutineに飛ばす
*sub
[iscript]
{
var a = mp.text; // テキスト取得
kag.fore.messages[kag.currentNum].font.height = 28; // フォントサイズを合わせる
for ( var i=0; i<mp.text.length; ++i )
{
kag.fore.messages[kag.currentNum].drawText( kag.fore.messages[kag.currentNum].x, kag.fore.messages[kag.currentNum].y,
a.substring(i,1), mp.color);
kag.fore.messages[kag.currentNum].x += 28;
}
}
[endscript]
[return]



よろしくお願いします。
0476名前は開発中のものです。2009/08/08(土) 23:32:54ID:x44gCfOd
>>466
いっついぐざくとりー
>var saveDataLocation = System.dataPath; // セーブデータ保存場所

>var saveDataLocation = "savedata"; // セーブデータ保存場所
ってなっていた・・・。
これか!!!
本ッッッッ当にありがとうございます!
0477名前は開発中のものです。2009/08/08(土) 23:34:13ID:x44gCfOd
うわあああああアンカまちえたああ・・・・・
2chブラウザがっががが

改めて
>>474本当にありがとう!
0478名前は開発中のものです。2009/08/08(土) 23:44:49ID:x44gCfOd
直ったと思ったら直っていなかった・・・・

でもやっぱり>>474
>システム全般/データ保存場所 を適切に指定したcf ファイルをつくれば
で解決した・・・
リアルでドジっこ属性なんて持っててもウザいだけだろjk・・・
0479名前は開発中のものです。2009/08/09(日) 00:07:23ID:FngJ034Z
>>465
レキシカルクロージャではないからglobalになるはずだが変更があったのなら分からん。
0480名前は開発中のものです。2009/08/09(日) 00:14:33ID:UVEGN1Jh
>>475
どうするのが最善なのか俺にもわからんが、スキップとか履歴とかメッセージ速度とか
できるだけ既存の仕組みを使いたいならembタグが一番楽だと思う
0481名前は開発中のものです。2009/08/09(日) 01:15:39ID:jNIe4i86
>>475
var dic = %[];
var str = "表示したい文字列";

for(var i = 0; i < str.length; i++)
{
  dic.text = str[i];
  kag.tagHandlers["ch"](dic);
}

試してないけど、こんな感じで出来るかも。
クリック待ちとかConductorの制御が必要なものは
素直にKagでやったほうがいい。
0482名前は開発中のものです。2009/08/09(日) 17:52:51ID:wSPP8w81
トランジションを使うときに、layerの番号を指定して、
chilrdenをfalseにすると1つのlayerでトランジションが起きますけど、
これに複数のlayerの番号を指定して、同時にトランジションを起こすことはできませんかね。

例えば、複数のキャラの立ち絵を同時に登場させたいときなどに使いたいんですけど。
0483名前は開発中のものです。2009/08/09(日) 18:21:40ID:KZiEUzEo
KAGに於いては、childrenをfalseにせずにトランジションするのが正道にして近道。
日付表示みたいな小窓を出しててそれを変えたくないってんなら、
それもオモテウラ用意するのが多分正解。
0484名前は開発中のものです。2009/08/09(日) 18:42:31ID:wSPP8w81
>>483
そうか、裏ページにコピーして変わらないところは変化しないのか。
トン

ついでに、エンティティ使ってイメージタグのストレージ属性を変数で指定した場合、変数の値を途中でevalかなにかでで変えた場合は勝手に画像の中身も入れ替わるの?
それとも、新しくイメージタグを指定するまで残るものなの?
0485名前は開発中のものです。2009/08/09(日) 20:04:33ID:3+cLengQ
>>484
エンティティはタグの解析時に参照される(値をTJSとして実行して、その結果に置き換わる)
あとで変数の中身を変更したところで影響ないし、それによって再読み込みなどはされない
0486名前は開発中のものです。2009/08/09(日) 20:52:23ID:cGs7Rp5+
>>482
単にコマンド列挙するだけで同時に走るよ。
もっとも、子レイヤでのトランジションは、トランジションのまちがややこしくなるのと、
レイヤサイズ違いの吸収がめんどくさいのでおすすめはしない。

×変わらないところは変化しない
○同一内容になってるから切り替わっても区別がつかない
0487名前は開発中のものです。2009/08/09(日) 21:12:13ID:PuJDDIqH
余談だが、単純にフェードイン・フェードアウトだけなら、moveタグでやる方法もある。
この間にトランジションを行うと巻き込まれるが、好きなレイヤをそれぞれの時間で表示・非表示できるのは結構便利。
0488名前は開発中のものです。2009/08/10(月) 02:18:21ID:mZ36Q/5Y
キャラごとにボイスのオンオフを作りたいのですが、
何かサンプルはないでしょうか?
0489名前は開発中のものです。2009/08/10(月) 08:52:33ID:N33HnzZP
>>488
サンプルも何も、キャラごとにボイスONの変数を用意して、
それでボイス鳴らすマクロを[if]なりcondなりしてやればいいだけだと思うが
0490名前は開発中のものです。2009/08/10(月) 15:15:14ID:mZ36Q/5Y
>>489
確かにそうですね、なんとかできました。
ありがとうございます。
0491名前は開発中のものです。2009/08/11(火) 01:56:09ID:U/SKRjwd
>>485
>>486
ありがとう、なんとかなりますた

ついでにもう一つ。
携帯からですまん。

[eval exp="f.layer_c1 = 2"]
[eval exp="f.pos_l = -200"]
[eval exp="f.layer = 'f.layer_c' + mp.lay"]
[eval exp="f.left = 'f.pos_' + mp.pos"]
[image storage="xxxx.png" layer="&f.layer" left="&f.left" ]

で、lay=2、pos=lで指定すると、
f.layerもf.leftも文字列の変数として認識されて、
無理矢理整数型にしようとすると0になってしまいます。
"f.layer_c1"といった文字列を,f.layer_c1という関数(中身は数値)
に変える手だてはないでしょうか?
0492名前は開発中のものです。2009/08/11(火) 03:14:42ID:ieF9pzLM
多分これかな?
[eval exp="f.layer = 'f.layer_c' + mp.lay"]
[eval exp="f.left = 'f.pos_' + mp.pos"]
↓変更
[eval exp="f.layer = f['layer_c' + mp.lay]"]
[eval exp="f.left = f['pos_' + mp.pos]"]

ただぱっと見の状況ではf.layer_c2が無いから
lay=2だとvoidになると思うけど
0493名前は開発中のものです。2009/08/11(火) 15:46:52ID:OVZtbqV/
質問させていただきます。

―(接続符号ダッシュ)を二つ繋げて使うと、文字と文字の間に微妙な隙間が出来てしまいます。

(例)――
    ↑ここあたりに微妙な隙間が出来る。

字間調整なので色々と試してみたのですが、ぴったりと密着せずにうまくいきません。
こういう場合はどうすればいいのでしょうか?
ご教授お願いします。
0494名前は開発中のものです。2009/08/11(火) 16:09:00ID:72wadl5V
アンチエイリアスがかかってるからじゃないかな。
drawTextで書くか、アンチエイリアス外したレンダリング済みフォントを指定するとか?
0495名前は開発中のものです。2009/08/11(火) 16:36:44ID:j4UQjU4o
>>493
デフォで文字間を空けてるなら
[style pitch=0]――[style pitch=default]
ダメならpitch=0を-1とか-2にしてみる

フォントに影つけてるなら[ch text="――"]とかも試してみるといいかも
0496名前は開発中のものです。2009/08/11(火) 17:45:50ID:DikYrcFL
VideoOverlayクラスを継承して独自のクラスを作ったのですが、
ムービーを左右反転させて再生する方法は何かありませんか?
0497名前は開発中のものです。2009/08/11(火) 18:17:54ID:OVZtbqV/
>>494>>495

ありがとうございます。
おかげ上手くいきました。
0498名前は開発中のものです。2009/08/11(火) 19:33:50ID:QXG/hnfO
>>496
C++? TJS?
0499名前は開発中のものです。2009/08/11(火) 20:02:53ID:DikYrcFL
>>498
ああごめんTJS
好きな位置でムービー再生できる関数作ってたんだけど
反転再生出来ないかなと思ってリファレンス見たけど無かった
0500名前は開発中のものです。2009/08/11(火) 20:21:02ID:j4UQjU4o
>>499
TJSのみで実現するならmode=vomLayerでレイヤ描画にして
onFrameUpdateのタイミングでlayer1なりlayer2なりに対して
flipLR/flipUDするしかないんじゃないかな
0501名前は開発中のものです。2009/08/11(火) 20:31:37ID:DikYrcFL
すんなりお手軽には行かなさそうですね
ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています