■吉里吉里/KAG/TJS雑談質問スレ■その22
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/10/01(金) 10:44:25ID:z47vESnT自作ゲームの進行状況や製作ツールについての話、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雑談質問スレ■その21
http://hibari.2ch.net/test/read.cgi/gamedev/1274510516/
0206名前は開発中のものです。
2010/10/19(火) 12:53:52ID:Im9E8ae1キャラを左右に動かす程度なら別に演出としていらんだろうけど、逆にぼーっと突っ立ってるだけのキャラと言うのも寂しい。
会社によっては立ちキャラは表情変えしか出来ないところとかあるからどうしても寂しくなる。 だからエフェクトで誤魔化すんだが。
ちなみに間違って使ってないぞ。 フェード出来るなら、普通その間に発行するタグ群でだいたいカットインも出来るだろうと言う話。
それと>>205の説明は少し間違ってる。
画面効果に関してのフェードイン・アウトは、一色に対してイン・アウトさせる手法の事で、正確な意味でのフェードイン・アウトの機能は吉里吉里には無い……はず。
少なくともtranseタグでの挙動の物は違う。 吉里吉里で実装してるのは、すべてワイプイン・アウト。 クロスフェードがフェードイン・アウトに一番近い挙動でど裏画面に単色を置いたら疑似フェードイン・アウトなわけ。
opacityは透明に変化させるわけだからあれも違う。(単色を読み込んでmoveで動的にopaを変化させる事は出来るけど)
このあたりは映像やってないと良く意味を取り違えるから、まぁ普通は一緒くたにしててもだいたい意味は通じるけどね。
時々、フェードイン実装汁とか言う書き込みがあるけど、カキコしてる人はそう言う意味で使ってるの。
0207名前は開発中のものです。
2010/10/19(火) 13:10:32ID:Im9E8ae1吉里吉里のcrossfadeも一応はフェードの仲間なんだけど、これは正確にはクロスフェードディゾブルオーバーラップだったかな?そう言う長ったらしい名前がついてる。
ただ本当の意味でのそれと違うのは吉里吉里は残念ながらと言うか静止画をメインに扱う前提だからイン側とアウト側のフェードのタイミングを制御出来ないために結果として効果が固定されてしまってる事。
俺は音楽方面はあまり詳しくないけど、確かクロスフェードと言うと本来は音響関係の用語だと先輩に聞いた事あったな。 これに関してはうろ覚えだから間違ってたらすまん。
0208名前は開発中のものです。
2010/10/19(火) 14:43:14ID:joCmLlUO単色とのクロスフェードは表示としてはフェードイン/アウトそのものだろ。別に疑似じゃない。
あと、クロスフェード、ディゾルブ、オーバーラップ、はそれぞれ同じ表現を示す同義語で一つの単語じゃねーよ。ぼけたこと言うな。
ディゾルブ:TV業界用語
オーバーラップ:映画業界用語
クロスフェード:音楽用語が転じてデジタル映像でも使われるようになった
ちなみに、音声のクロスフェードとは異なり、片方をフェードイン、もう片方をフェードアウト相当の処理で
画像をつくると決して奇麗な表示にならない。画像で自然にクロスフェードするには、一方の画像に対して
不透明度を下げた画像を重ねるという処理が必要で(本来の映像用語、ディゾルブ=多重露出や、
オーバーラップ=上書きはまさにこのことを指している)、当然タイミング指定は一つになる。
さて、そんなわけで、吉里吉里は普通にフェードインもフェードアウトもできるわけだが、
間に暗転/白転をはさむ「アウト→イン」を一発でできないってってことならたしかに機能としてはない。
表現自体は複数コマンドを使えば実現できるが、記述がばらけるのでうれしくないという向きはあるだろう。
内部的に暗転処理専用の隠しレイヤをもたせて、ごにょごにょすれば単発コマンドで他のトランジションと同様に使うような拡張はできなくはないね。
0209名前は開発中のものです。
2010/10/19(火) 15:26:31ID:joCmLlUOカットイン、は「あるショットに別のショットを重ねてわりこませること」だから、用語の階層が全然違う
例えばクロスフェードで、現在の画面の上に、別のショット的な別画像を重ねて表示、も、
これはこれで「カットイン」だ。ID:Im9E8ae1 が言いたいのはそういうことなんだろうとは思うが言葉の使い方としては不適切だ。
>>183 が求めてるのは動きのあるカットインかな。
move を使う案があがってて、実際それでやってる人が多いだろう。
ただ、これだと、他のトランジションとは記述の一貫性はとれない。
吉里吉里の機能的には、動きのあるトランジションも実現可能で、
例えば scroll トランジションを個別レイヤに使えば、画面外から入るように表示される(あるいは画面外に出るように消去される)。
これも立派な「動きのあるカットイン/アウト」だ。
ただ残念ながら scroll には加速度指定パラメータが無いので動き的には微妙。
自前で作るか改造するしかないね。
0210名前は開発中のものです。
2010/10/19(火) 15:51:25ID:Im9E8ae1吉里吉里のcrossfadeは、ドットを最小単位にして、それをアウト側からイン側へなめらかに正比例で変化させるから何も考えなくても百点満点で80点くらいのアウトイン出来るからいいんだけど、
ふぅっとって感じ(感覚的にはわかり辛いんだけど、乗数曲線みたいに)には切り替わってくれないからそう言う映画的な切り替えに見慣れてるとどうにも物足りない。
これをやるにはアウト側とイン側とマットの3種類が必要になるから、そこまでやろうとすると自分で作るしかなくなってくるな。
ただの自己満なんだけどね。
ところで、おじぎって見た事ないんだけど、どっかにサンプル転がってないかな。
0211名前は開発中のものです。
2010/10/19(火) 15:59:54ID:joCmLlUOやってみたら見れなくはなかったんで一応記述例を。
前準備
・画面サイズの透明画像 transparent.png
・画面サイズで真ん中にカットイン画像がある(周囲は透明。トリミングしないこと) cutin.png
※両方同じサイズにすること
カットイン表示
@image layer=0 page=fore storage="transparent" visible=true ; 表に透明で画像を準備
@backlay
@image layer=0 page=back storage="cutin" ; 裏にカットインされる画像を準備
@trans layer=0 method=scroll time=500 from=right ; レイヤ個別トランジション。右から差し込み
@wt
カットイン消去
@backlay
@image layer=0 page=back storage="transparent" ; 裏に消去状態=透明画像を準備
@trans layer=0 method=scroll time=500 from=right ; レイヤ個別トランジション。右から差し込み
@wt
レイヤ個別トランジションする時は消えた状態を作るには透明レイヤが必要ってのがポイント。
相手が非表示(visible=false)だとうまく表示されない。
scroll の from 指定でどっちから表示されてどっちむいて消えるかとかを制御できる(消去時は「透明の差し込み」なので逆なのに注意)
この方法のメリットは、トランジションの種類を変えるだけで同じスタイルの記述でいろいろ表現を切り替えれること。
scoroll 以外だと、extrans に入ってる rotateswap が出現/消去 両方につかいやすい。
あと、出現:rotatezoom, 消去:rotatevanish を使うのもわりといけてる
0212名前は開発中のものです。
2010/10/19(火) 16:05:59ID:joCmLlUO実は、吉里吉里のトランジションには callback というパラメータがあってだな。これで時間軸をいじる制御ができる。
ってことで、実は加減速制御も可能。KAGの範疇だと口がないので、いじりたい人は TJS勉強してくれってことでひとつ
これ、time 指定されてる値と、現在の tick 値を引数でわたしてくれると使いやすいんだけど、互換性的に問題なさそうだし
拡張してもらえないかな。
0213名前は開発中のものです。
2010/10/19(火) 16:10:15ID:E/EQOazlフェードイン、アウトについて俺が一番知らなかった件
ただ、吉里吉里に限って言えばやっぱり>>206は言葉足らずだったんじゃねーかな。
上でも出てるけど、吉里吉里でフェードイン、アウトは単色噛ませてクロスフェードして
一般的に行われてる。
これ以外の方法でやってる奴もほとんど居ないんじゃねーかな、必要ないし。
※>>195と>>198がフェードインアウトの機能で実現できるのか理解できんがw
0214名前は開発中のものです。
2010/10/19(火) 19:07:59ID:JF9FMlMvhttp://ymtkyk.sakura.ne.jp/krkr.STG/
0215名前は開発中のものです。
2010/10/19(火) 19:43:49ID:Im9E8ae1無くても出来るんだけど、タグの発行量が大杉。
195とかは、フェードインアウトの作業をやってれば、普通はその過程で覚えるタグを使えばカットインくらい簡単にできるだろうと言う事ね。
言葉足らずですまん。
>>214の今ざっと見た感じワイプが良い感じのがあるね。 細かく設定出来るかどうかわかんないけど。(例えば厚みとか)
これ使えば、簡単にそこそこ良い感じの作れるんじゃない?
ところで、stmoveみたいに動的に拡大縮小出来て、エンドレスループさせられるのって無いかな?stmoveは複数はダメだし、ループ機能も無いし。
結構ペジェ使えて使い勝手良いから使いまくってるけど。
CutInPlugin.ksが複数定義出来そうだしよさげなんだけど、注視点は常に中心らしいのが難点。
昼間歩きの話が出てて、昔のAEプロジェクト引っ張ってみてたら、拡大しながらエンドレスでループする機能があればタグコマンドだけで結構自然にいけそうなのよね。
背景だから動画にしてもいいんだけど、動画に60秒のエンドレス素材作るのはもったいないのよね。容量的に。
0216名前は開発中のものです。
2010/10/19(火) 21:40:18ID:8ox1F0XTメニューバーの任意の座標にボタンを追加する方法をご存じの方いますか?
addだと順番に左詰めになってしまい希望通りにはなりません
通常のメニューボタンから少し離した位置にまたボタンを設置したいのです
ボタンレイヤークラス作って表示させようとしても適当すぎたのかまるで駄目でした
どなたかご教授お願いします
0217名前は開発中のものです。
2010/10/19(火) 21:57:42ID:JF9FMlMvでも、「このエフェクトの行き着く先は?」とか試されたら嫌だからやらないかな。
俺だったら試すもの。
FORTUNE ARTERIALのバイクで海岸を走るシーン
そして明日の世界よりの背景の雲の動き
ぼけーっと眺めてる自分が嫌になるまで頑張った。
>>216
リファレンスみた限りじゃ座標を指定する項目は見当たらないようですよー
ダミーを作って、そいつのenabledをfalseにしたらそれっぽく見えるかも?
0218名前は開発中のものです。
2010/10/19(火) 22:09:38ID:joCmLlUO適当に caption にスペースもった enabled=false なダミーの項目を足す
0219名前は開発中のものです。
2010/10/19(火) 22:48:17ID:Im9E8ae1手前の人物はon乗馬でもそこそこ見栄えはするもんだけど、エロゲはミニが多くて足が動いてないのバレバレで見栄えが良くない。
スカート丈が長いと誤魔化せる事を発見した時には小躍りして喜んだ遠い昔の記憶……
吉里吉里は、NULLを入れておかないと案外まずい挙動をするコマンドが多い。
逆にNULLで誤魔化せるコマンドも多いから、とりあえず行き詰まったらまず透明なデータとかダミーデータで誤魔化せるか?って考えると案外上手く挙動する物が多い。
0220名前は開発中のものです。
2010/10/19(火) 22:55:28ID:VDlnGs1T0221名前は開発中のものです。
2010/10/19(火) 23:08:47ID:1nHF1moq0222名前は開発中のものです。
2010/10/19(火) 23:46:59ID:fnEgc1bu問題があると思った挙動があるならきちんと報告しとけ。
たいていの場合は明確に仕様で使い方間違ってるだけだと思われ。
いままでのおまえさんの投稿全部そうだったろ?
0223183
2010/10/20(水) 00:26:15ID:P4gHNwZjmoveタグと>>211さんの方法で希望のカットインが出来そうです。
>>211さんの方法は色合いは違いますが、カッコイイカットインに
なったので、こちらも別マクロとして登録しておきました。
拙い質問にお答え頂きありがとうございます。
0224名前は開発中のものです。
2010/10/20(水) 05:36:33ID:poA/8cd6いやいや実質的に俺のタグの書き方がまずくて仕様でダメだったのは一つだけだ。
あとは、質問に答えて貰ったから謝ったような書き方してるけど、とりあえずそれで動いてるからいいやって感じで使ってるだけで根本解決はしてない。
とりあえずそれで動いてるから細かくは書かないけど、やはりなぜか止まったり、なぜか表と裏の動画が入れ替わったり、根治してるわけでは無く、そのシーンのその後のトランスの仕方によって問題が少ない方をチョイスして使い分けてると言うのが実情。
0225名前は開発中のものです。
2010/10/20(水) 06:21:58ID:YfepaK/oお前いい加減もっと文章を短くまとめろ。
0226名前は開発中のものです。
2010/10/20(水) 06:33:16ID:poA/8cd60227名前は開発中のものです。
2010/10/20(水) 09:26:07ID:2Jsh5352ここ数回のレスでも噛み合ってると思われる物は全くない。
0228名前は開発中のものです。
2010/10/20(水) 10:45:11ID:7pY1/qj20229名前は開発中のものです。
2010/10/20(水) 10:56:03ID:GJUHwiYyあんた公式で質問してる「四つ葉」だろ?
具体的な記述を出さないから何言っても言い訳にしか見えない。
0230名前は開発中のものです。
2010/10/20(水) 11:05:02ID:poA/8cd6800*600版で調整してる。やってる事は単にmoveを三回使ってるだけなんだけど、調整すればそれだけでもこのくらいはかっこよく出来る。実際には、ブレーキ中にほかのエフェクトを繋いだりするんだけど。
ポイントは、当然なのだけどimageタグとmoveタグのopacityは連動してると言う事。
あと全画面の半分しか移動させてないのは、丁度画像の中心線が画面端にかかる頃にopacityを0にするため。 透明度が20%を切ると背景にもよるけど、ほとんど消えたように見える。
全画面分移動させると、消え方がぬるい。 このあたりは感覚的な事なんだけどね。
;とりあえずベース表示
[image layer=base page=fore storage="ベース" visible=true]
;カットインされる画像を準備
[image layer=0 page=fore storage="右から左" visible=true left=400 visible=true opacity=0]
[image layer=1 page=fore storage="左から右" visible=true left=-400 visible=true opacity=0]
;アクセルイン
[move time=500 path="(30,0,255)" layer=0 accel=5]
[move time=500 path="(-30,0,255)" layer=1 accel=5]
[wm layer=0 canskip=false]
[wm layer=1 canskip=false]
;ブレーキ
[move time=1000 path="(-30,0,255)" layer=0 accel=0]
[move time=1000 path="(30,0,255)" layer=1 accel=0]
[wm layer=0 canskip=false]
[wm layer=1 canskip=false]
;アクセルアウト
[move time=500 path="(-400,0,0)" layer=0 accel=-5]
[move time=500 path="(400,0,0)" layer=1 accel=-5]
[wm layer=0 canskip=false]
[wm layer=1 canskip=false]
0231名前は開発中のものです。
2010/10/20(水) 11:12:20ID:GJUHwiYy0232名前は開発中のものです。
2010/10/20(水) 11:21:48ID:YfepaK/o荒らしとか悪意とかそういう意図を持ってないなら、頼むからもう黙っててくれ
0233名前は開発中のものです。
2010/10/20(水) 12:13:11ID:2Jsh5352具体例まで書いてる以上、悪意ではなく病気と判断して忠告してみる。
たとえば、230を見ても相当におかしい。、まず吉里吉里の勉強する前に
医者の診断を受ける事をすすめる。
■230のおかしな点
1.いきなりカットインの具体例を書いた
>>229のレスを受けて書いた物だろうが、すでにカットインの話は終了している。
>>223が解決のお礼を言ってるし、スレの流れも完全に変わっている。
2.前提を理解していない
W具体例”がないと言うのは、>>230の過去の書き込みに対してである。
よって、NULLを指定しないとバグる例や、フェードイン、アウトを行うタグでのカットインの具体例を出さなければ意味がない。
3.噛み合ってないと言われて具体例を提示した
噛み合ってないと言う人物と、具体例を指摘している人物は同一人物ではない。
また、噛み合ってないと言う人は話が理解できていないという意味で書いてあり、具体例を指摘する人物は、
過去の書き込みに対してであり、全く別種の物である。
■総評
230の具体例を見るに質問された「カットイン」を理解している事がわかる。
また、具体的なタグを使用しており、吉里吉里初心者が知ったかだけで話している訳ではない事もわかる。
この事は逆に230が病気である可能性を高めている。
カットインの質問をされたにも関わらず、フェードの話をつけて返し、しかもそれは
吉里吉里と映像技術上のフェードを別種と理解した上で同一に語っている。
上で上げた3例からも、“噛み合って無い”や“具体例”の指摘は理解しているのに“実質的に相手が何を言っている”かは分かっていない。
別に侮蔑とかではなく医者に行く事を進める、精神障害以外にも脳障害という可能性も十分にある。
0234名前は開発中のものです。
2010/10/20(水) 12:24:20ID:7pY1/qj20235名前は開発中のものです。
2010/10/20(水) 13:32:01ID:sySVneI40236名前は開発中のものです。
2010/10/20(水) 13:37:03ID:poA/8cd6フェードとカットインに関しては、フェードでトランスを使えるレベルなら、普通カットインもそれと同じタグ群で作れるんだから難しくないだろうって事だ。 今回のもカットインとして出したが、実際には俺はこれはトランスの代わりの画面切り替えに使ってる。
opacityの代わりにクロスフェードトランスでも同じような挙動は作れるだろう? 画面を切り替えるフェードやトランス・ムーブのタグ群は理解してるわけだから、それらを組み合わせるだけで特別なタグを使うわけじゃないんだから普通作れるだろうって事。
movieの不具合どう書いたら問題かと理解してるからもういちいち残してないが、要は表にダミー・裏に実際の動画を準備してそのレイヤーを個別にトランスするとトランスのたびに表>裏>表>裏となるって話だ。
こう言う使い方する奴はほとんどいないだろうから普通の人にはたいした話じゃないだろうけど。
もう一つの不具合は構文しないと説明し辛いから割愛。
0237名前は開発中のものです。
2010/10/20(水) 13:38:10ID:2lUpIivg0238名前は開発中のものです。
2010/10/20(水) 14:26:12ID:2Jsh5352すまなかったな。
とりあえず、今から医者の予約をとれ。
それから治るまではトリを付ければ解決だ。
0239名前は開発中のものです。
2010/10/20(水) 14:27:28ID:sySVneI40240名前は開発中のものです。
2010/10/20(水) 14:53:27ID:jtoaSqEEおまいさんは動画に関して専門的にやってるかこだわりを持ってるのかもしれんが
この話題に鳴門自分の知識や持論をひけらかすことに夢中で
質問に対する回答にならないことを延々語ってるわけだ
それも改行もろくにしない長文で
改行しない、長文、一人による大量レスが2chで嫌われるのは知ってるな?
ID:poA/8cd6は荒らしと変わらない事になってんだよ
0241名前は開発中のものです。
2010/10/20(水) 14:58:16ID:EzjjN7D40242名前は開発中のものです。
2010/10/20(水) 15:42:37ID:7DnD8bOPそれと同じことだ。
0243名前は開発中のものです。
2010/10/20(水) 15:45:49ID:JT5xjW2d0244名前は開発中のものです。
2010/10/20(水) 15:52:11ID:xX22gTZAあなた方の指摘どおり病院に行ったところ高次脳機能障害であることが分かりました。
これからは皆様に迷惑をかけないように生きていきたいと思います。
指摘ありがとうございました。
0245名前は開発中のものです。
2010/10/20(水) 16:08:27ID:m2jtePtb同じ吉里吉里使いとしてはものすごく迷惑
0246名前は開発中のものです。
2010/10/20(水) 16:09:25ID:m2jtePtb0247名前は開発中のものです。
2010/10/20(水) 16:12:18ID:LjHxRHET0248名前は開発中のものです。
2010/10/20(水) 16:14:02ID:LjHxRHET吉里吉里で一定の場所から場所までの処理にかかった時間はかり、logとして出力させる方法どなたかご存知ないですか
0249名前は開発中のものです。
2010/10/20(水) 16:46:10ID:sySVneI4吉里吉里2リファレンスのSystemクラスにあるgetTickCountを見るといい。
0250名前は開発中のものです。
2010/10/20(水) 17:37:43ID:jtoaSqEE今までいくつかmp.tagnameを条件式に使った関数を作ってきたが
これでbeginMoveは問題なく使えても何故か
beginFrameMoveはこの条件式だと使えないんだ
無理に使おうとは思わないがどういう仕組みか原因が気になる
誰かわかる人はいませんか?
0251名前は開発中のものです。
2010/10/20(水) 17:53:27ID:JT5xjW2d0252250
2010/10/20(水) 19:33:19ID:jtoaSqEEfunction hogehoge(mp){
if(mp.tagname == 'hoge1')
kag.fore.layers[mp.layer].beginMove(%[
path:+mp.x +','+ mp.y +', 255', time: +mp.time, accel:-1]);
else if(mp.tagname == 'hoge2')
kag.fore.layers[mp.layer].beginFrameMove(%[path:
'(10,'+ mp.x +','+ mp.y +', 255 )('40,'+ mp.x +','+ mp.y +', 255 )(45,'+ mp.xx+','+ mp.y +', 0']);
}
部分的に書き出すと例えばこんな感じで
[hoge1]でレイヤーを動かすのは問題ないんだが[hoge2]だと何も起こらない
else if(mp.tagname == 'hoge2') を else if(mp.hoge2 == 'hoge2')にして
hogehogeを呼びたす適当なマクロで
[適当なマクロ hoge2]とすれば、beginFrameMoveも動かせるんだ
試してみたがどうにも他は出来てもmp.tagnameだと駄目なようだ
beginMoveとbeginFrameMoveで何が違うのか気になる
0253名前は開発中のものです。
2010/10/20(水) 19:37:38ID:jtoaSqEE×else if(mp.tagname == 'hoge2') を else if(mp.hoge2 == 'hoge2')にして
○else if(mp.tagname == 'hoge2') を else if(mp.hoge2 !== void)にして
何度も申し訳ない
0254名前は開発中のものです。
2010/10/20(水) 19:58:15ID:EzjjN7D440 の前の ' が不要とかじゃなくて?
0255250
2010/10/20(水) 21:24:26ID:jtoaSqEEレス用に書き換えた時のミスですお恥ずかしい
mp.tagnameじゃなきゃちゃんと動くことは一応確認してあるんだが
腑に落ちなくてむず痒いから原因が知りたい
バージョンアップしたのが関係あるのかとにかくさっぱりだ・・・
0256名前は開発中のものです。
2010/10/20(水) 22:01:46ID:EzjjN7D4あっ、他にも誤記っぽいのが
(45,'+ mp.xx+','+ mp.y +', 0']); → (45,'+ mp.x+','+ mp.y +', 0)']);
最後の方の ) は無くても良いけど mp.xx →mp.x なら問題
0257名前は開発中のものです。
2010/10/20(水) 22:11:56ID:JT5xjW2d見たところ特に問題のある記述じゃなさそうだから呼び出し側でなんかとちってるとみた
というか、わざわざ tagname で判定する理由がよくわからないんだが…
それぞれのマクロでそれぞれの関数を呼べば良いだけではないのか?
0258名前は開発中のものです。
2010/10/20(水) 22:27:46ID:eHjOkTq51番目の段落[l][r]
2番目の段落[l][r]
3番目の段落[l][r]
みたいな感じでシナリオを用意した場合、
最初は1番目の段落が通常の色で表示されて、
2番目の段落に突入した場合、1番目の段落が灰色などの少し地味な色に変化して、
3番目の段落に突入したら、1番目同様2番目も地味な色に変化して……
という具合に、現在表示中の段落を強調表示したいんだが、シナリオ全体に適用するにあたって上手な方法はないだろうか
マクロにまとめられないような面倒な手順を使えばなんとかなるんだが、
モジュールとして自作で使い回せるレベルにスマートにまとめる方法がひらめかない
愚直な方法しか使ってこなかったから、こういう応用的なことがどうも苦手なんだが、どんな手を使えばいいと思う?
0259名前は開発中のものです。
2010/10/20(水) 22:38:55ID:AoiRMOA2現在表示中の段落以外は表示されてないんじゃないの?
0260名前は開発中のものです。
2010/10/20(水) 22:43:34ID:o6joPHYz次々新しいものに変えていけばいいんじゃないかね
あと用が済んだレイヤのopacityを順次下げるのと
で[cm]の代わりになるマクロの中でそれらをリセットする
0261250
2010/10/20(水) 22:44:19ID:jtoaSqEE>>250は所々ミスってるがtagnameで判定しなければ普通に動くから
実際のpathには問題がないんだ色々考えてくれたのにすまない
それと関数はマクロからevalで呼び出してる
これだけだとtagnameで判定する必要はないが行数節約のため一部抜き出しただけなんだ
tagnameについて書いていたサイトにも裏技的なものと書かれてたから
beginFrameMove以外にも上手くいかないものがあるのかもしれん
よくわからないまま使うのもなーと思って思い切って聞いてみたが
そろそろIDと同じくらい顔真っ赤になりだしたんでこの辺で締めるよ
色々考えてくれてありがとうな
0263名前は開発中のものです。
2010/10/20(水) 23:47:50ID:6gXSoLBw試してみたら問題なく動作しましたよ。
たぶん他の部分の記述に問題があると思います
0264名前は開発中のものです。
2010/10/20(水) 23:54:53ID:eHjOkTq5レイヤーを切り替えまくると、短期的にはよくても長期的には混乱したりしないかな?
裏レイヤーで画像処理して表レイヤーにコピーとか?
なんか混乱してきたから適当に試してみる
>>262
分かりにくい書き方ですまん
0265名前は開発中のものです。
2010/10/21(木) 00:01:34ID:OYeVARoN@iscript
function hogehoge(mp) {
if(mp.tagname == "hoge1") return 1; else
if(mp.tagname == "hoge2") return 2;
}
@endscript
[macro name=hoge1][eval exp="tf.hoge1 = hogehoge(mp)"][endmacro]
[macro name=hoge2][eval exp="tf.hoge2 = hogehoge(mp)"][endmacro]
現状見て推察できる>>261の状況・環境だと[hoge2]は
tf.hoge2に値が入らない事になるんだが。
まぁそれまでの流れから行数節約に気を使ったんだろうけど
そこで具体的な、肝心な部分を切り落としたのは確か。
0266名前は開発中のものです。
2010/10/21(木) 00:02:36ID:uZXnc109function の先頭で mp.tagname を System.inform で表示してみるなり、Debug.messages でコンソールに出すなりして何がきてるか
確認してみればすぐ問題の原因がわかるんじゃないかな
0267250
2010/10/21(木) 00:37:08ID:TC3xSXuaありがとう解決した
266の通りSystem.informでtagnameを表示してみたら"hoge2"と出た
だけど実際マクロ名で登録したのは"hoGe2"みたいに
2単語あわせた名前だったから一部大文字を使ってたんだ
もちろん条件式はif(mp.tagname=='hoGe2')
エラーもでないし何も起こらないから不思議だったが
原因はtagnameでは大文字使えないからだったようだ
皆知恵を貸してくれて本当にありがとう
ところで>>265
[macro name=hoge2][eval exp="hogehoge(mp)"][endmacro]
って今まで普通に記述してたんだが、本当はよくないのか?
0268名前は開発中のものです。
2010/10/21(木) 00:59:31ID:Q16B9f/9すべて小文字としてみなすような動作じゃなかったかな。
例えば
@HOGE param1="ABCDE" PARAM2="FGHIJ" PaRaM3="klmno"
みたいにシナリオで呼びだすと、実際には
mp.tagname = "hoge"
mp.param1 = "ABCDE"
mp.param2 = "FGHIJ"
mp.param3 = "klmno"
という辞書配列が造られてる( tagnameがHOGEではなくhoge, PARAM2がparam2になっている点に留意)動いてるっつう訳だわね
うろ覚えだから話半分で聞いてね。
0269名前は開発中のものです。
2010/10/21(木) 01:05:52ID:je8aDlR1Layer を拡張したプラグイン作るときに嵌ったなぁ
hitThreshold だけどうしてもうまくいかなくてしばらく悩んだw
0270名前は開発中のものです。
2010/10/21(木) 01:35:02ID:je8aDlR1KAG 3 version 3.30 Rev.2 だと
段落の数にかかわらずメッセージレイヤ三枚で実現できるっぽい
他のバージョンではどうなんだか知らない
0271名前は開発中のものです。
2010/10/21(木) 01:40:11ID:OYeVARoN@iscript
function hogehogeA() { return 1; }
function hogehogeB() { return 2; }
@endscript
[macro name=hoge1][eval exp="tf.hoge1 = hogehogeA()"][endmacro]
[macro name=hoge2][eval exp="tf.hoge2 = hogehogeB()"][endmacro]
>>257が既に言ってるけど
tagnameで分岐して処理を分けるという余計な手間を入れるより
元からある関数をそれぞれに割り当てる方が手っ取り早くね?って話。
処理を目で追いやすいとかならある程度までは個人の自由だと思うけど。
0272名前は開発中のものです。
2010/10/21(木) 01:43:42ID:Q53pggx50273名前は開発中のものです。
2010/10/21(木) 07:25:11ID:B0m7qXn/検証ありがとう
もし保存してたら、ちょっと見せてもらったりできないか?
0274名前は開発中のものです。
2010/10/21(木) 08:37:02ID:FLIErOYe吉里吉里のスクリプトエンジンに組み込みの機能(System.getTickCount とか Debug.message とか)
を複数のスレッドから呼び出しても問題ない(スレッドセーフ)でしょうか。
0275名前は開発中のものです。
2010/10/21(木) 10:11:13ID:uZXnc109無事解決したようでなにより
>>268
辞書配列自体はキーは大文字小文字区別する。KAGParser が、タグ解析時に小文字に正規化してる
>>274
吉里吉里は基本スレッドセーフではない。
ただ、iTJS2Dispatch2 の呼び出し機構自体は別にスレッド的には問題ないはずなので、
問題あるかどうかはその呼び出し先の機能の構造次第なのでなんともいえない。
getTickCount はたぶん参照だけだろうから大丈夫。Debug.message のほうはどうだろう。
不安なら呼び出し部分離してクリティカルセクションではさめばいいんじゃないかと。
0276名前は開発中のものです。
2010/10/21(木) 12:13:15ID:khNErQ8Kメンバアクセスはアトミックじゃなかったはずだから、
同時にメインのTJSスレッドでグローバル変数の新規作成が行われてたりしたら壊れそう
0277名前は開発中のものです。
2010/10/21(木) 12:17:00ID:E1DM/3kNhttp://toki.2ch.net/test/read.cgi/jinsei/1286372276/
医者か、精神患者といっぱいたわむれる機会が多いのかしらんが
一歩間違えれば警察沙汰だからな
0278名前は開発中のものです。
2010/10/21(木) 12:33:19ID:FLIErOYe・呼出先の処理が外部リソースで競合を起こしたりしない
・別スレッドから、メインのTJSスレッドから参照される変数や関数に同時にアクセスしたりしない
ようにすれば、並列的にTJSのコードを実行しても問題ない
(Debug.message などは複数のスレッドからログが書き込まれる可能性があるため、内部で排他してなかったらやばい)
と考えられますかね。
0279名前は開発中のものです。
2010/10/21(木) 14:14:50ID:HtF94v7/参照用のプロパティでもあらかじめ直接その対象まで取得しておかないとダメやね
「別スレッドからメインのTJHSスレッドから参照される変数や関数に同時にアクセスしない」ってのは
基本的に無理筋。Debug.message とか使われまくりだろうし。
「メインスレッドと通信してそちらで呼び出して結果を格納してくれる機構を作る」が正解かな。
方法論は2つ。
・Window オブジェクトが Windows のメッセージ機構経由でメインスレッドから呼び出される口を持っているのでそこに機構をしこむ
呼び出しの安全性はWindowsが保証してくれる
・TVPAddContinuousEventHook で登録した処理はメインスレッドから呼び出されるのでそこに機構をしこむ
呼び出しの安全性はクリティカルセクションなどで確保する
前者の例はレポジトリのプラグインに多数ある。後者は無いか。
後者は登録しっぱなしにすると更新制限かけないと無駄に高負荷になるので注意。
コマンド実行させてる例はちょっとみあたらんね。
なにかしら実行キュー的なものをつくっておいて、コマンド文字列ないしは関数を登録しておいて、おわったら結果を登録した上で
イベント(CreateEvent() でつくるやつ)経由で通知をくれるようなハンドシェイク処理を実装して、スレッド側では WaitForSingleObject で待つってのが無難かな
0280名前は開発中のものです。
2010/10/21(木) 17:03:24ID:E1DM/3kNhttp://jun.2chan.net/b/res/14753226.htm
0281名前は開発中のものです。
2010/10/21(木) 20:36:44ID:je8aDlR1自力で解決しちゃったかな?
0282名前は開発中のものです。
2010/10/21(木) 21:04:20ID:B0m7qXn/まだ微妙に格闘中なので、サンプルいただければ嬉しいです
風邪ひいたせいで頭が働かないです
0283名前は開発中のものです。
2010/10/21(木) 21:06:43ID:je8aDlR1[position layer=message2 left=100 top=100 width=440 height=200 visible=true frmae="" opacity=0]
[position layer=message1 left=100 top=100 width=440 height=200 visible=true frmae="" opacity=0]
[position layer=message0 left=100 top=100 width=440 height=200 visible=true frmae="" color=0x0000ff opacity=100]
[layopt layer=message1 opacity=128]
[backlay]
[current layer=message2]
[macro name=hoge]
[eval exp="tf.mes1=kag.fore.messages[1]"]
[eval exp="tf.mes2=kag.fore.messages[2]"]
[eval exp="tf.mes2ll=tf.mes2.lineLayer"]
[eval exp="tf.mes1.operateRect(0, 0, tf.mes2, 0, 0, tf.mes2.width, tf.mes2.height)"]
[eval exp="tf.mes1.operateRect(tf.mes2ll.left, tf.mes2ll.top, tf.mes2ll, 0, 0, tf.mes2ll.width, tf.mes2ll.height)"]
[eval exp="tf.mes2.clearLayer()"]
[endmacro]
[macro name=hoge_r]
[hoge][r]
[endmacro]
[wait time=200]
*start|スタート
自動改ページには対応していないので[l][hoge_r]
改ページの箇所には全て[[cm]タグを挿入してください[l][hoge_r]
でないとどうなるか[l][hoge_r]
試してみる事にしましょう[l][hoge_r]
てす[l][hoge_r]
てす[l][hoge_r]
ほらね[l][hoge_r]
ごらんのありさまだよw[p][cm]
[jump target=*start]
0284名前は開発中のものです。
2010/10/21(木) 21:15:40ID:B0m7qXn/さんくす、熱が冷めてからちょっと読み解いてみる
パッと見た感じ、自分が苦戦してた部分がTJSですんなり解決されてるように見える
最低限の心得はあるから、そっちにも手を出してみるわ
0285名前は開発中のものです。
2010/10/21(木) 21:43:18ID:je8aDlR1いまさらだが frmae って typo してるなw
0286名前は開発中のものです。
2010/10/21(木) 23:22:07ID:B0m7qXn/なんか挙動がおかしいと思ったら、こちらのコピペミスだった
丁度こんな感じのをやりたかったんだ さんくす
これからリファレンス見ながら解析に入る
0287名前は開発中のものです。
2010/10/21(木) 23:58:06ID:je8aDlR1どういたしまして
簡単に説明するよ
それぞれのレイヤの役割
message0 メッセージフレームを表示する
message1 少し目立たないテキストを表示する
message2 こいつがメインのメッセージレイヤ
メッセージレイヤを三枚使っている理由
message0 は実はキャラクタレイヤでもいいけど、メッセージレイヤにしておくと適当なマクロで position タグを置き換えるときに楽できる
message1 はメッセージレイヤにすることで cm タグでクリアされる
message2 はメッセージレイヤでないとダメ
0288名前は開発中のものです。
2010/10/22(金) 01:03:33ID:gxLvR45I0289名前は開発中のものです。
2010/10/22(金) 19:27:32ID:3mp2xQdU背景をそのままで立ち絵のみ二人同時にトランジションしたいのですがエラーになります
トランジション先のサイズ(32x32)と一致しませんと出ます
32x32の画像なんて使っていないのですが
原因分かる方いらっしゃいますか?
[backlay]
[image storage="hoge1" page="back" layer="0"]
[image storage="hoge2" page="back" layer="1"]
[trans time="500" method="crossfade" layer="0"]
[trans time="500" method="crossfade" layer="1"]
[wt]
[wt]
0290名前は開発中のものです。
2010/10/22(金) 20:12:12ID:aA7N7LXO[backlay]
[image storage="hoge1" page="back" layer="0"]
[image storage="hoge2" page="back" layer="1"]
[trans time="500" method="crossfade"]
[wt]
0291名前は開発中のものです。
2010/10/22(金) 20:27:31ID:qRhaS/pBやっぱりbmpだけですか?
スクリーンショットを任意に記録できるようにしたいのですが、bmpだと
容量大きくって……。
pngとか可能になる方法があったら嬉しいです。
0292名前は開発中のものです。
2010/10/22(金) 20:34:57ID:8RbUSk6bforeの各レイヤーに何も無いから。
ずっと上の方で書いてあるように同じサイズのnullデータを準備してダミーとして使うか、>>290のようにまとめてtransすれば良い。
[image storage="hoge1" page="fore" layer="0" opacity=0]
[image storage="hoge2" page="fore" layer="1" opacity=0]
[image storage="hoge1" page="back" layer="0"]
[image storage="hoge2" page="back" layer="1"]
[trans time="500" method="crossfade" layer="0"]
[trans time="500" method="crossfade" layer="1"]
[wt]
[wt]
null準備めんどくさいけど個別transしたいならこれでもok
0293名前は開発中のものです。
2010/10/22(金) 20:43:47ID:3mp2xQdUありがとうございます
0294名前は開発中のものです。
2010/10/22(金) 21:00:49ID:/96G9BcC0295名前は開発中のものです。
2010/10/22(金) 21:54:35ID:8hH9Ig8p今日TSUTAYAで探したけど見つからなくて・・・
0296名前は開発中のものです。
2010/10/22(金) 22:43:09ID:sUTC9TjH『吉里吉里/KAGノベルゲーム制作入門』+公式リファレンスで基本的なことは何の問題もなく理解できた
前述の本そのものが、丁寧に説明するというよりはチュートリアル的に流してくって感じだから、
自分は後で詳細な説明を探したけど、深く気にしないんなら充分だと思う
FATEはしらん すまん
0297名前は開発中のものです。
2010/10/22(金) 22:46:40ID:p40jStcN基本的なコマンドが使えればあとはスパイス程度のものです。
0298名前は開発中のものです。
2010/10/22(金) 22:49:04ID:4ccU+XwbFateみたいな演出とかエフェクトはそれにプラスして覚える形だろう
吉里吉里を一通り勉強したんだけどFateみたいな演出ができません、
ならわかるけど
0299名前は開発中のものです。
2010/10/22(金) 23:13:40ID:8hH9Ig8pありがとうございます。その本って通販とかで取り寄せるしかないですかね?
本屋にはなかったんですが、どこで買いましたか?
>>297
その基本的なコマンドができないんですよね・・
それほど初心者なんで、すいません。
>>298
確かにそうですね。早とちりでした。
0300名前は開発中のものです。
2010/10/22(金) 23:31:34ID:8RbUSk6b具体的にどこを目指してるのかわからなかったけど演出面ではたいした事はしてない
冒頭とかインサートされてるアニメ−ションぽい効果の事を言ってるのなら吉里吉里じゃなくAEを勉強すべき
吉里吉里的には単なる動画再生してるだけ
0301名前は開発中のものです。
2010/10/22(金) 23:43:30ID:OqbysIKJ"その言語で○○というモノを作るにはどうすればいいか理解する"んじゃなくて
"○○というモノは本当にその言語で作られているのか、作る事が出来るのかを理解する"って事でもあるからな
実際、KAGの命令群を理解してモーションの演出とかを作成するよりも、
AEなんかで「モーションの動画」を作ってそれを再生させた方がマシな出来になる事もある。
まあ何が言いたいかっつうと、学び初めたばっかの段階で壮大なゲームをつくろうと考えるな(将来の理想として持っておくのは可)ってこったね
0302名前は開発中のものです。
2010/10/22(金) 23:43:46ID:4ccU+Xwbん? そうなの?
http://kikyou.info/diary/?200310
>吉里吉里ってわりと激しい演出にも耐えられるんですね(作者が言うなぉぃ)
>トランジションもそうなんですがstretch系やaffine系の描画メソッドの使い方がすばらしいです。
0303名前は開発中のものです。
2010/10/22(金) 23:44:51ID:4ccU+Xwb動画でやっちまえってのは間違った解決策ではないだろうな
0304名前は開発中のものです。
2010/10/22(金) 23:50:45ID:sUTC9TjHうちの近所の大型店にならどこにでも置いてあるけど、未だに 確かアニメイトにもあったわ
応用編のTJS版と間違えなければ、本屋を探し歩いてもAmazonでぽちってもどうでもいいと思う
補足だけど、「FATEみたいなのの作り方」は多分書いてない
他の人が言っているように「吉里吉里の基礎」を学ぶ手助けでしかないから、
その範囲を一通りマスターしてから難しいことを考えればいいと思う
スタンス的にも「いいからサンプルプロジェクト動かして身体で学べ」って感じの本だしな
0305名前は開発中のものです。
2010/10/22(金) 23:52:03ID:/96G9BcC動画はどうしても動的には使えないから同質の作業をしようとしたときのコストが桁違いになるお
0306名前は開発中のものです。
2010/10/22(金) 23:54:25ID:8RbUSk6b最初の戦いの所まで進めて見たけど、特にお互いが一枚画で対峙してるあたりの演出が動画とMOVEの複合演出のようには感じるけど、斬撃とかあきらかに動画
もしくは数枚程度の動画だから吉里吉里側で処理してるのかも知れないけど
>>301が言ってる通り細かいファイルたくさん作ったり、いちいち起動させてチューニングしたりするくらいなら、AEで作った方がはるかに良い仕上がりになる
■ このスレッドは過去ログ倉庫に格納されています