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

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

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

※スレで質問をするときは、ドキュメント、スレの過去ログ、公式掲示板のログ、
 FAQ、Google等で調べてからにしましょう。

前スレ(その11)
ttp://pc11.2ch.net/test/read.cgi/gamedev/1175480292/l50

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

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

詳しくは>>2-5辺りを参照のこと。
0200名前は開発中のものです。2007/09/08(土) 03:20:35ID:psxOKq1m
>>193
未だに見つけられないけどタイトル間違ってね?
0201名前は開発中のものです。2007/09/08(土) 03:29:06ID:92vPEHUG
>>200
間違ってるな。
キャプのを見れば?
0202名前は開発中のものです。2007/09/08(土) 03:36:40ID:psxOKq1m
>>201
キャプにタイトル載ってた悪い
0203名前は開発中のものです。2007/09/08(土) 03:36:42ID:92vPEHUG
PSP2で動かしたいなぁ
0204名前は開発中のものです。2007/09/08(土) 04:58:52ID:Knrt4QsC
>>199
TJSで書くとメインループが変態になるし標準ライブラリが無さ過ぎだからそれはない。
LLで書きたいならRubyなり、Pythonなり何でもあるし吉里吉里はKAGありき。

ミドルウェア作る手間が無い上に、ソースいじれるのは相当なアドバンテージ。
0205名前は開発中のものです。2007/09/08(土) 05:53:10ID:psxOKq1m
二次元配列(Array)に対して、findを使って添え字を返す事は出来ませんか?
例えばArray[0][5]〜Array[20][5]の中から、aaaという文字が現れる添え字を返す、というような
0206名前は開発中のものです。2007/09/08(土) 05:57:26ID:fInbOD0W
>>205
多値を返す関数を作りたいって事?
0207名前は開発中のものです。2007/09/08(土) 06:17:49ID:psxOKq1m
作りたいというか、例えば
hoge = [0,2,0,4,5,3]
とかだと、hoge.find(2)とかで2の入ってる値を返せると思うんですけど

hoge = [[1,3], [4,9], [5,10], [7,3]]
とかだと、hoge[i][1]の中の10の入ってる添え字を返してほしいと思っても、単純に
hoge.find(10) = 2
というようにはいかないので・・・
0208名前は開発中のものです。2007/09/08(土) 13:35:25ID:MdoufHni
位置が(3, 2)だからhoge.find(10) => 2は絶対にあり得な様な・・・。
多値を返したいんじゃなくてn次元の深さを考慮したいならループ回せばいいだけじゃない?

ただ、外側のインデックスも欲しいなら配列で返さないといけないような気がするけど。
0209名前は開発中のものです。2007/09/08(土) 13:39:12ID:92vPEHUG
多次元配列で、一致する値のキーを取り出したって事?

専用関数がないなら、ループが早いかな。
0210名前は開発中のものです。2007/09/08(土) 13:56:04ID:GR0gOYSF
ループが基本として、
サイズが固定なら設計をかえて1次元配列に格納してしまうというのもありかと。
hoge[y*サイズ+x] の形でつかう。find したあとは y = i / サイズ, x = i % サイズで逆算
0211名前は開発中のものです。2007/09/08(土) 14:28:35ID:jV8L49pw
配列で返すのが無難
0212名前は開発中のものです。2007/09/08(土) 15:54:43ID:52YGSB/b
検索する回数が多いんであれば、辞書配列と組み合わせてみるとか。
配列に格納するタイミングで辞書配列にも格納するとか。

array[3][2] = "aaa";
なら
hash["aaa"] = "3,2";
みたいな(格納方法は色々あるけど)

tjsのループは遅いから、メモリを消費したほうが効率がいいかもしれない。
0213名前は開発中のものです。2007/09/08(土) 22:31:06ID:NNwR9/3A
配列hogeの中身自体は配列objectだからそりゃfindじゃ探せない
内容である[5,10]の中のポインタなり文字列表現なりをfindに放り込まないと駄目だな
暇だしちょっと多元配列の中身探す関数でも書いてみるか少しかかる

>>208
indexは0から始まるから[5,10]のindexは2であってる
hogeが外側でhoge[n]はむしろ内側な気がするんだが
0214名前は開発中のものです。2007/09/08(土) 23:00:27ID:NNwR9/3A
//こんな感じか
//ポイント
//配列はArrayクラス(型)のオブジェクトである
//tjsの多元配列はArrayオブジェクトを要素として持つ配列に過ぎない

function recursiveFind(array, value) {
    for(var i = 0; i < array.count; i++) {
        //お馴染み配列要素ループ
        if(array[i] == value) {
            //配列内要素が検索値と一致する場合
            //インデックスを配列に格納して返す
            return [i];
        }
        if(array[i] instanceof "Array") {
            //配列内要素が子配列であった場合
            //子配列を対象に再帰
            var result = recursiveFind(array[i], value);
            if(result instanceof "Array") return result.insert(0, i);
        }
    }
    return -1; //検索値valueが見つからない場合は-1を返す
}
0215名前は開発中のものです。2007/09/08(土) 23:17:10ID:NNwR9/3A
//階層化された辞書配列にも対応するとなると面倒だな
function recursiveSearch(object, value) {
    if(object instanceof "Array") {
        for(var i = 0; i < object.count; i++) {
            if(object[i] == value) return [i];
            var result = recursiveSearch(object[i], value);
            if(result instanceof "Array") return result.insert(0, i);
        }
    }
0216名前は開発中のものです。2007/09/08(土) 23:17:42ID:NNwR9/3A
    //続き
    if(object instanceof "Dictionary") {
        //辞書配列を配列に展開する時に
        //添え字の降順で展開されるのを保障しないと駄目だけどメンドイ
        var dicarray = [].assign(object);
        while(dicarray.count > 0) {
            if(dicarray[1] == value) return [dicarray[0]];
            var result = recursiveSearch(dicarray[1], value);
            if(result instanceof "Array") return result.insert(0, dicarray[0]);
            dicarray.erase(0);
            dicarray.erase(1);
        }
    }
    return -1;
}
0217名前は開発中のものです。2007/09/08(土) 23:22:22ID:NNwR9/3A
動作チェックしてねー
うまく動かないときの修正は自分で何とかしてください
返り値の配列には
hoge = [[1,3], [4,9], [5,10], [7,3]] に対して
recursiveFind(hoge, 10)の場合は[2,1]
recursiveFind(hoge, 3)の場合は[0,1]

hoge = [%["a"=>1,"b"=>3], %["c"=>4,"d"=>9], %["e"=>5,"f"=>10]] に対して
recursiveSearch(hoge, 10)の場合は[2,"f"]が返るハズ
0218名前は開発中のものです。2007/09/09(日) 04:03:47ID:qk5Qqg96
>ID:NNwR9/3Aさん

ありがとうございます、早速試してみたのですが
recursiveFindの方は、if(array[i] instanceof "Array") {〜の所が上手く動いていないようで
エラーにはならないものの値が帰ってきませんでした。(-1も帰ってこない)
recursiveSearchの方は、while(dicarray.count > 0) {の所でエラーが出てしまいました。

自分ではちょっと分からないので、とりあえずこのままにしておきます。
わざわざ済みませんでした。
0219名前は開発中のものです。2007/09/09(日) 10:55:56ID:gBJvuiSC
//はーい、array.insertは値を返さないのが原因でしたね
//これでおk
//recursiveSearchも手直しするか

function recursiveFind(array, value) { 
    for(var i = 0; i < array.count; i++) { 
        //お馴染み配列要素ループ 
        if(array[i] == value) { 
            //配列内要素が検索値と一致する場合 
            //インデックスを配列に格納して返す 
            return [i]; 
        } 
        if(array[i] instanceof "Array") { 
            //配列内要素が子配列であった場合 
            //子配列を対象に再帰 
            var result = recursiveFind(array[i], value); 
            if(result instanceof "Array") {
                result.insert(0, i); 
                return result;
            }
        } 
    } 
    return -1; //検索値valueが見つからない場合は-1を返す 
0220名前は開発中のものです。2007/09/09(日) 11:10:27ID:gBJvuiSC
function recursiveSearch(object, value) { 
    if(object instanceof "Array") { 
        for(var i = 0; i < object.count; i++) { 
            if(object[i] == value) return [i]; 
            var result = recursiveSearch(object[i], value); 
            if(result instanceof "Array") {
                result.insert(0, i); //
                return result;      //ココが原因でvoidが返ってた
            }
        } 
    } 
0221名前は開発中のものです。2007/09/09(日) 11:12:37ID:gBJvuiSC
    if(object instanceof "Dictionary") { 
        //辞書配列を配列に展開する時に 
        //添え字の降順で展開されるのを保障しないと駄目だけどメンドイ 
        var dicarray = [];         //
    dicarray.assign(object); // Array.assignも値を返さなかった
        while(dicarray.count > 0) { 
            if(dicarray[1] == value) return [dicarray[0]]; 
            var result = recursiveSearch(dicarray[1], value); 
            if(result instanceof "Array") {
                result.insert(0, dicarray[0]); // ココが原因でvoidが返ってた
                return result;
            }
            dicarray.erase(0);
            dicarray.erase(0); //配列の短縮処理が間違ってた
        } 
    } 
    return -1; 
}
0222名前は開発中のものです。2007/09/09(日) 22:51:06ID:BYjQlIfL
そろそろうざいから消えろよ^^
0223名前は開発中のものです。2007/09/09(日) 23:06:00ID:RII2Su3r
半日もレス付いてないんだから黙ってれば良いだけだろ。
自分で蒸し返してどうする。
0224名前は開発中のものです。2007/09/10(月) 03:18:17ID:9r8dLBdh
>>223
さらに煽りたいだけだから無視するんだ
0225名前は開発中のものです。2007/09/10(月) 07:12:58ID:HRJrQ8HB
>>ID:gBJvuiSCさん
新しい記述の方で、思っているような二次元配列からの指定の値の位置を取得できました。
お手間をお掛けしまして本当にありがとうございました。
0226名前は開発中のものです。2007/09/10(月) 22:58:59ID:0vTzkYhX
すいません。
KAG上でTJSを使って背景レイヤに画像を読み込む方法が分かりません。

[iscript]
kag.fore.base.loadImages("画像ファイル.jpg");
[endscript]

というソースを記述したのですが、なぜか動きません。
「メンバ"mode"が見つかりません」というエラーが出るのです。

どなたか分かる方がいらっしゃればご指導ください。
0227名前は開発中のものです。2007/09/10(月) 23:28:53ID:HRJrQ8HB
kag.fore.base.loadImages(%[storage:'画像ファイル.jpg']);
0228名前は開発中のものです。2007/09/11(火) 09:41:44ID:5Ce72Rks
>>227
ありがとうございます。本当に助かりました。

「%[storage:」という記述は初めて見る記述です。
改めて自分の勉強不足を思い知らされました。

本当にありがとうございました。
0229名前は開発中のものです。2007/09/11(火) 11:55:35ID:u7yp+b2J
xyzzyの吉里吉里モードとかって需要あるん?
自分用にキーワード色分けとかしてみたけど。
こういうのってどこに持ってけばいいのかな。
0230名前は開発中のものです。2007/09/11(火) 12:26:16ID:fpRLOyRS
ここなりWikiなり自分のサイトなり
0231名前は開発中のものです。2007/09/11(火) 14:19:34ID:4dHR8dw4
>>228
TJSリファレンスの「オーバライド」の部分と、AnimationLayer.tjs の function loadImages() と、
これまたTJSリファレンスの「式中辞書配列」の部分をよむべし
0232名前は開発中のものです。2007/09/11(火) 14:20:16ID:4dHR8dw4
>>229
JScript モードでわりとしのいでるけど property をちゃんと処理してくれるならうれしいのでどっかあげとくれ
0233名前は開発中のものです。2007/09/11(火) 14:44:18ID:2O9Ni67C
NoEditer用のなら作ったぜ。適当だが。
0234名前は開発中のものです。2007/09/11(火) 15:01:41ID:fpRLOyRS
>>219-221
の関数使ってみたけど、これvalueの値が文字列('テスト'みたいな)だと値が返ってこないな
0235名前は開発中のものです。2007/09/11(火) 17:05:40ID:VpoQYryg
状況をもう少しkwsk

16:59:20 コンソール : tf.hoge = [
    ["文字列1","文字列2","文字列3"],
    [3,5,6],
    ["文字列7",8,"文字列9"]] = (object)(object 0x05156FC4:0x05156FC4)

17:00:00 コンソール : recursiveFind(tf.hoge,"文字列9")[0] = (int)2

17:00:02 コンソール : recursiveFind(tf.hoge,"文字列9")[1] = (int)2

17:02:35 コンソール : tf.hoge = [
    %["辞書A"=>"文字列1","辞書B"=>"文字列2","辞書C"=>"文字列3"],
    [3,5,6],
    %["辞書G"=>"文字列7","辞書H"=>8,"辞書I"=>"文字列9"]] = (object)(object 0x0516AFC8:0x0516AFC8)

17:04:07 コンソール : recursiveSearch(tf.hoge,"文字列9")[0] = (int)2

17:04:09 コンソール : recursiveSearch(tf.hoge,"文字列9")[1] = (string)"辞書I"
0236名前は開発中のものです。2007/09/11(火) 17:17:57ID:fpRLOyRS
>>235
ごめん俺の勘違いというかミスだったマジごめん
0237名前は開発中のものです。2007/09/12(水) 11:28:24ID:PQsSXN1S
昔ウィンドウズ98でKAG writerでゲームを作っていて、HDDが飛んだ
それ以来ショックで作っていなかったが、近頃また作りたくなってきた

…と思って探してみると、なんとKAG writerの配布はとっくに終了していたと…orz
なんでもバックアップはちゃんととらなイカンね
……今、KAG writerを手に入れる方法はない
となると、使い心地の近いソフトが欲しくなる。そんなのってあるのかな?
0238名前は開発中のものです。2007/09/12(水) 12:21:52ID:Vz6XBwPC
>>237
http://web.archive.org/web/20030623141331/http://funnytaste.cool.ne.jp/factory/html/kirikiri.html
あ、あんたのためなんだからねっ!!
0239名前は開発中のものです。2007/09/12(水) 13:00:33ID:x12SJbVP
KKDEの作者さんここ見てたら
テキスト表示部分の背景色や文字色を変えられるようにしてくれー
真っ白は目に痛い
02402372007/09/12(水) 13:55:01ID:jrC4Igcl
>>238
おおおおおおおおおおおぉ………( ;ω;)
ありがとう、マジにありがとう。涙が出かけたよ!本当にありがとう!!!

id変わってるが気にしないでくれ、じゃあ早速弄くってくるけぇのノシ
0241名前は開発中のものです。2007/09/12(水) 14:40:04ID:DqdGyjjF
>>238
なんというデレデレ。
0242名前は開発中のものです。2007/09/12(水) 21:50:46ID:0XzX2c3C
>>239
configフォルダ内にあるKAG3-Mode.xshdを開いて
colorもしくはbgcolorのところの設定値を変更すれば色が変わるよ。
0243名前は開発中のものです。2007/09/13(木) 08:33:48ID:Rz/1lt4j
>>242
本当だ、変更できた
でも形式が0xじゃないからやりにくいな、設定で自由に変更できるようになれば
かぐや姫Studioからの乗り換えも考えられるんだけどなあ
0244名前は開発中のものです。2007/09/13(木) 09:09:34ID:KPm+hwRS
>>243
そんなの、tjsつかって簡単なフロントエンド書けばよくね?
0245名前は開発中のものです。2007/09/13(木) 11:13:00ID:JgBvJqpA
セーブデータの削除もうちょっと簡単になってほしい
最早意味が分からないぜ
0246名前は開発中のものです。2007/09/13(木) 12:12:44ID:BMsvnmJo
>>238
横からいただいた! ありがとうっ

実は前スレでかぐや姫から吉里吉里を起動できないという相談をした者なんだが、
あれからやっぱり問題解決しなくて、ストレスためた結果吉里吉里からはなれてたんだよね。
これつかったら起動したわ。
本当にたすかった。
重ね重ねありがとう。

そしてかぐや姫よ、さらば!
0247名前は開発中のものです。2007/09/13(木) 18:14:30ID:wvYbB4ep
>>245
プラグイン無しの吉里吉里はそもそもファイル削除自体が不可能だから
KAG側が残してるしおりファイルへの参照だけを消して
ファイルはあるけど読めない、って状況を作ってるだけなのが現状
ファイル削除が不可能なのは悪意のあるスクリプトを簡単には書けないようにする為の方策なので
まぁ仕方ないと思って慣れるしか無いと思うぞ
0248名前は開発中のものです。2007/09/13(木) 22:14:48ID:8GXfwQZV
File IOすら出来ないっていうのはスクリプト言語として使いづらいがな。
現状LLじゃなくてDSLだから仕方ないか。
0249名前は開発中のものです。2007/09/14(金) 00:22:17ID:8bPP6NVF
上書きできるんだから削除不可の意味ねえ
0250名前は開発中のものです。2007/09/14(金) 04:16:45ID:wz5roroX
そういう話じゃないだろ
0251名前は開発中のものです。2007/09/14(金) 10:32:09ID:LrRMixVS
>>250

>>247
ファイル削除が不可能なのは悪意のあるスクリプトを簡単には書けないようにする為の方策

これはないって話じゃ?そもそも shellExecute できるし。
単にニーズが(その時点で)なかったから作られてないだけだと思う。
0252名前は開発中のものです。2007/09/14(金) 18:55:46ID:/mGNcP3a
悪意のあるスクリプト云々は247の妄想だな。
0253名前は開発中のものです。2007/09/14(金) 20:43:11ID:W4a2wkW4
ShellExecuteでformat c:\走らせればいい話
0254名前は開発中のものです。2007/09/14(金) 20:58:13ID:VOdlxPCf
>>253
それじゃフォーマットできない
0255名前は開発中のものです。2007/09/15(土) 01:50:46ID:xZ3SJDHD
ファイル削除よりシェルのコマンド走らせる方がよほど危険な気がする。
0256名前は開発中のものです。2007/09/16(日) 07:07:21ID:L18c5VTd
実のところ吉里吉里からシェルコマンド実行って可能なのか?
System.shellExecute("command","/c ren c:\python25 python")
こーいう構文も実行成功は返るけど結果は反映されないし
0257名前は開発中のものです。2007/09/16(日) 07:19:22ID:L18c5VTd
すまんNT系だとcommandじゃなくてcmdだな
どのみちうまくいかないけど
0258名前は開発中のものです。2007/09/16(日) 07:33:43ID:mikIfmHg
>>256
それ用のプログラム組めば?
なぜ吉里吉里に拘るのかはわからないが
0259名前は開発中のものです。2007/09/16(日) 08:02:35ID:YnGZFcp2
単に \ をエスケープしてないだけだろ
0260名前は開発中のものです。2007/09/16(日) 08:31:25ID:L18c5VTd
   。 。
  / / ポーン!
( Д )

我ながら酷い凡ミスだな
0261名前は開発中のものです。2007/09/16(日) 12:05:24ID:RmO/I0qi
for文的なタグを作れないかと思ってまずifやendifがどうなっているのか見ようと思ったんですが
MainWindow.tjsのタグハンドラ群には記述されていませんでした
これらってなんか特殊なんでしょうか?
0262名前は開発中のものです。2007/09/16(日) 12:43:04ID:tmcqWJJh
>>261
その辺は組み込みタグだよ

リファレンスのKAGParser→getNextTagの項を参照
0263名前は開発中のものです。2007/09/16(日) 13:15:02ID:RmO/I0qi
>>262
ありがとうございました!
0264名前は開発中のものです。2007/09/16(日) 20:16:19ID:JalQ3AgQ
>>261-263
うわ、ksファイルのフォーマットをお遊びでxmlベースにしてインタプリタ書くときに設計をCPU模倣したら
スクリプト書いてるのにやたらと低レベルな単語・低レベルな処理だらけで
胃に穴が空くかと思ったときの事思い出した・・・orz

フォーマットが違うせいでKAGParserのソース読んだけど使い回せる部分が全然なかったんだよなぁ。
0265名前は開発中のものです。2007/09/16(日) 21:05:16ID:yKK+KnS+
>>258
吉里吉里をけなされたと勘違いして、過剰反応しちゃった君発見!
0266名前は開発中のものです。2007/09/16(日) 21:07:59ID:YnGZFcp2
まだまだ暑いねえ
0267名前は開発中のものです。2007/09/16(日) 21:30:53ID:XWUf9YCQ
吉里吉里で出力すると文字コードはutf-16ですよね?
これを吉里吉里でutf-8に変換する事ってできませんか?
0268名前は開発中のものです。2007/09/16(日) 23:18:38ID:kjXIzAy2
utf-16→utf-8の変換テーブル書けばいいじゃん
0269名前は開発中のものです。2007/09/16(日) 23:31:57ID:yKK+KnS+
テーブルてアホか。
0270名前は開発中のものです。2007/09/16(日) 23:40:36ID:u+SFAOkd
>>267
ttp://www.exfiction.net/~nojimake/jswh/jswh11.html
この辺のjsファイルを参考に。
0271名前は開発中のものです。2007/09/16(日) 23:47:10ID:XWUf9YCQ
答えてくれた方ありがとうございます
頑張って自分で書いてみたいと思います
ですが吉里吉里でLatin-1コード?に直す方法が分かりません・・・
参考になるサイトなど無いでしょうか?
0272名前は開発中のものです。2007/09/17(月) 14:50:29ID:Kap87Mh5
質問させてください。

メッセージレイヤーに黒板の画像を当てはめ、それを半透明で表示させましたが、透ける事には透けましたが、かなり白っぽくなってしまいました。
kagの問題か、それともpng画像の問題かもわかりません。
なんらかの合成方法が問題だとは思うのですが……。

よろしくお願いします。
0273名前は開発中のものです。2007/09/17(月) 14:54:09ID:EyLNDmvj
>>272
重ね合わせの方法を変えればいいんでないの?
それか下に白っぽい色がついてるとか?
0274名前は開発中のものです。2007/09/17(月) 15:09:00ID:Kap87Mh5
>>273
下に白はついていないと思います。

重ね合わせの方法というのは絵画ソフトの方でするのですよね?
Paint,NETというのを使い、レイヤーのプロパティで不透明度をいじったのですが、前述のようになりうまくいきませんでした。
予想としては、モードで乗算(これが重ね合わせの方法?)をすればいいのかもしれないのですが、このソフトには機能が無く、またそれをしてうまくいくのかもわかりません。
GIMPも見てみたのですが、こちらは操作方法が複雑で手間取っています。
0275名前は開発中のものです。2007/09/17(月) 15:11:58ID:EyLNDmvj
>>274
>絵画ソフトの方でするのですよね?

いや、吉里吉里側で重ね合わせ方法の指定って出来たような…
今手元にマニュアル無いんではっきりとは言えないけど。
0276名前は開発中のものです。2007/09/17(月) 15:18:27ID:VeEL1ghH
>>274
元の黒板の画像と不透明度をいじったpngの画像をあげてみ
0277名前は開発中のものです。2007/09/17(月) 15:18:49ID:Kap87Mh5
>>275
config.tjs又はpositionタグで枠画像を指定した場合、opacityが使えないそうです。

>opacity no 不透明度 ( 0 〜 255 )  メッセージレイヤの不透明度を 0 〜 255 の数値で指定します(文字の不透明度や、レイヤ自体の不透明度ではありません)。0 で完全に透明です。frame に "" を指定したときに有効です。

とマニュアルにありました。
0278名前は開発中のものです。2007/09/17(月) 15:20:37ID:EyLNDmvj
>>277
opacityじゃなく、乗算とかそういうの調べてみて
0279名前は開発中のものです。2007/09/17(月) 15:49:37ID:Kap87Mh5
>>276

http://www.uploda.org/uporg1022191.png.html
加工
http://www.uploda.org/uporg1022185.png.html

です。
再現に手間取って遅れてしまいすみません。


>>278
imageタグにしかmode指定がなく、そこでしか乗算の指定がありませんでした。
おそらく枠画像を使ったメッセージレイヤでは透過モードの指定ができないのだと思います。
0280名前は開発中のものです。2007/09/17(月) 16:05:04ID:VeEL1ghH
>>279
ちゃんと透過はできてるね
うちではちゃんと下の色が透けたよ

そのpngの下にしく画像が真っ白とかいうオチじゃないよね?
0281名前は開発中のものです。2007/09/17(月) 16:08:47ID:Kap87Mh5
>>280
それはないです。

透けるには透けるのですが、白っぽくないですか?
合成の仕方によっては透過が進むにつれ下のレイヤーの画像になっていくはずなのですが、どんどん白っぽくなってしまいます。
0282名前は開発中のものです。2007/09/17(月) 16:21:18ID:hL7FDo9i
画像見るとさ、緑のところだけ透けるようにしたのを作りたいんじゃないの?
これだと全部透けてるけど。
0283名前は開発中のものです。2007/09/17(月) 16:22:50ID:EyLNDmvj
>>281
そのゲーム画像のスクショ上げてみ
0284名前は開発中のものです。2007/09/17(月) 16:43:32ID:8R4a2/cj
config.tjs
;layerType = ltAddAlpha;

;layerType = ltAlpha;
に。
0285名前は開発中のものです。2007/09/17(月) 17:00:31ID:XTuY4hlk
白っぽくなると言ってるがこれは正常な変化だぞ。
お前がmodeとopacityを混同してるだけだ
0286名前は開発中のものです。2007/09/17(月) 17:08:55ID:OMKrut/w
http://www.uploda.org/uporg1022337.jpg.html
比較しやすいように縦にしたけどAの状態の事を言ってるんだよな?

思い当たるのは
・PNG-24で保存してない
・画像がItAddAlpha形式じゃない
・マスク画像が使ってたりする

マスク画像使ってる場合は何かミスってると
透過部分が覆い焼きしたようになった記憶がある。

Bなら気のせいだ、画像か目のどっちかを調整するしかない。
0287名前は開発中のものです。2007/09/17(月) 18:32:29ID:3AiwkbzC
色が混ざってくすんでいるのを、白っぽくと見てるのかもしれん

枠画像をフォトショで開いたけど、ほぼ透明だなこりゃ
286がやってくれてるけど
枠(木目)を完全不透明にして、緑んとこの不透明度上げてみ
0288名前は開発中のものです。2007/09/17(月) 23:37:47ID:Kap87Mh5
>>282
後々はそうするつもりですが、現段階で躓いていますので。

>>283
どこが変なのか強調するためにPaint,NETでレイヤーのモードを今度は不透明度54まで下げました。
http://www.uploda.org/uporg1023195.png.html
これを背景に載せると
http://www.uploda.org/uporg1023212.png.html
となります。
不透明度を下げるにつれバックグラウンドレイヤに近づく予定が、どんどん白く明るくなってしまいます。

>>284
;layerType = ltAddAlpha;

;layerType = ltAlpha;
は公式の掲示板のログを漁ってしました。が、その意味まではわかりません。

> modeとopacity
そうなんですか。
opacityみたいなことをしたかったのですが。

>>286
Aのことです。
PNG-24・ItAddAlphaはよくわかりません。調べてみます。
マスク画像というのは、画像_m.pngというファイルでしょうか?
それ以上のことはよくわからないです。


色々試してみたのですが、kagで解決できない内容でしたら、今は私の手に負えないので諦めることにします。
お付き合いありがとうございました。
0289名前は開発中のものです。2007/09/17(月) 23:59:18ID:XTuY4hlk
肝心のシナリオファイルにどう書いてるのか晒せ
0290名前は開発中のものです。2007/09/17(月) 23:59:21ID:/t9Slj66
ん?合成モードと不透過率の指定はKAGでできたよな。
お前さんが理解してないだけじゃない?
吉里吉里のリファレンス嫁。
0291名前は開発中のものです。2007/09/18(火) 00:07:56ID:k4kw7F9w
Windows付属のペイントとかで画像作って試してみろ。
素材の作成段階で失敗してる気がするぞ。
0292名前は開発中のものです。2007/09/18(火) 00:40:28ID:QLD2gkbP
>>289
シナリオファイルは
[image storage="教室" page="fore" layer="base"]
test[p][er]
だけなので関係はないかと。
config.tjsで関係ありそうなところが
//-------------------------------------------- メッセージレイヤの設定 -----

function MessageLayer_config()
{
// ◆ メッセージレイヤの表示モード
;layerType = ltAddAlpha;

// ◆ メッセージ枠用の画像
;frameGraphic = "messageframe"; // position タグの frame 属性に相当

// ◆ メッセージレイヤの色と不透明度
;frameColor = 0x000000; // position タグの color 属性に相当
;frameOpacity = 0; // position タグの opacity 属性に相当

説明削りましたが上の部分くらいでしょうか。
フレーム枠画像にcolorやopacitiyは効果ないそうですが。


>>290
メッセージ枠画像では合成モードも不透過率の指定もできないみたいです。

>>291
画像ソフトは本当に使い方がよくわからないので、素材の作成段階で失敗している可能性は大いにあると思いますし、私もそれを疑っています。
windows付属のペイントだと透過画像が作れないので意味はないかと。
0293名前は開発中のものです。2007/09/18(火) 00:58:03ID:/PP3azJk
透過部分を作れないからいいんだよ。
ペイントの画像でも色が変化するようなら吉里吉里側に問題がある
色が変化しなければ素材に問題があると分かる
0294名前は開発中のものです。2007/09/18(火) 01:04:52ID:JXkSRRhe
>>292
画像自体はPNG-24で保存してあるから問題なし。

マスク画像(画像_m.png)は使ってるのか?
使ってるなら白くなる原因だから削除、使ってないなら気にするな。

画像形式がItAlphaになってる。
その状態でメッセージレイヤに透過した画像をframeGraphicに指定すると
それより下の画像が白っぽくなる、直すには二通りある。

1:;layerType = ltAddAlpha; を ;layerType = ltAlpha; に書き換える。
2:画像をItAddAlpha形式に変換する

ItAddAlphaへの変換は吉里吉里2のリファレンスに
付属の画像フォーマットコンバータについて書いてある。


1をやるなら>>284に謝罪汁、
0295名前は開発中のものです。2007/09/18(火) 01:12:13ID:QLD2gkbP
>>293
作ってみました。
http://www.imgup.org/iup465699.png.html
透過されませんでした。
0296名前は開発中のものです。2007/09/18(火) 01:18:02ID:QLD2gkbP
>>294
1:;layerType = ltAddAlpha; を ;layerType = ltAlpha;
これを変えたらできました!

>>284
あなたの書いたとおりでした。
ごめんなさい。


取り急ぎ報告しましたが、色々調べてまた書き込みます。
ありがとうございます。
0297名前は開発中のものです。2007/09/18(火) 01:23:36ID:5yeO/Swt
png-24ってことはRGBは全部で16bitだけど吉里吉里は16bitカラーはどのフォーマットを扱えるの?
そこら辺の仕様の問題じゃない?

png-32でも同じ結果?
0298名前は開発中のものです。2007/09/18(火) 01:26:06ID:QHQgCPFC
288の画像を見るに
明らかに加算合成(AddAlpha)しちゃってるだけなので
今回はPNGの形式は関係なし
0299名前は開発中のものです。2007/09/18(火) 01:48:00ID:QLD2gkbP
綺麗に透過できました
http://www.imgup.org/iup465707.png.html

デフォルトでは
;layerType = ltAddAlpha;
になっていますね。
枠を使わない場合はltAddAlphaの方が良いということでしょうか。

http://www.kirikiri.info/bbslog/log/008275
の記事を読んだつもりだったのですが、画像に対する知識の不安からかそっちの方に意識がいってしまい、試し忘れたのかもしれません。
重要だと思っていませんでした。


また
2:画像をItAddAlpha形式に変換する
の方法でもできました。

layerType = ltAddAlpha
なら枠画像をltAddAlpha形式に
layerType = ltAlpha
なら枠画像をltAlpha形式にする。

に注意しようと思います。
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています