■吉里吉里/KAG/TJS雑談質問スレ■その26 at GAMEDEV
[2ch|▼Menu]
[前50を表示]
200:名前は開発中のものです。
12/07/19 00:34:07.22 UgaRbJ1P
200

201:名前は開発中のものです。
12/07/19 04:43:47.90 g+V+f+Ik
@macro name=bo1
@layopt layer="massege1"

[button graphic="bo1" exp="kag.fore.layers[1].visible=true"]

@endmacro
---------------------------------------------
こんなかんじでボタンを押すと対応画像レイヤー表示してます
そして消す時は消去ボタンを visible=false で消去してるんですが...

上記ボタンを再度押した時にレイヤー表示offにするにはどうしたら良いでしょうか?

押す>表示
再押>消去
また押す>表示

ボタンを1個にして表示/非表示をしたいのですが....




202:名前は開発中のものです。
12/07/19 07:31:22.37 Hzj2EXcQ
[button graphic="bo1" exp="kag.fore.layers[1].visible = !kag.fore.layers[1].visible"]
!でtrueとfalse反転

203:名前は開発中のものです。
12/07/19 09:51:10.61 g+V+f+Ik
>202
すすすすっすす素晴らしい!
ありがとうございますだー!
きっちり動きました!

またよろしくご指導お願いしますorz

204:名前は開発中のものです。
12/07/19 22:57:05.82 fcwxvPD7
シナリオファイルって分けた方がいいんでしょうか?
それともfirst.ksに全て収録すればいいんでしょうか。
通例なんか教えてもらえるとありがたいです。

205:名前は開発中のものです。
12/07/19 23:09:00.29 ztk7ESZj
分けた方が管理しやすいと思ったら分ければいいし
全部一つにまとめた方が楽だと思ったらそうすればいいし

206:名前は開発中のものです。
12/07/19 23:33:21.63 1JmeiXuz
吉里吉里のメッセージって文字数と行数どのくらいが一般的でしょうか?

207:名前は開発中のものです。
12/07/19 23:46:04.75 DMqGBxOO
吉里吉里というか普通にエロゲーとかノベルゲーとか作ってる種類の作品を参考にどのくらいがいいか決めてくればいいじゃない

208:名前は開発中のものです。
12/07/20 13:03:23.97 OUEcOo8n
夏休みが始まったのか?

209:名前は開発中のものです。
12/07/20 13:22:47.98 5eMh2pdL
Deeたんの彼女のために大切な要素は以下の5点である。

・ツインテ (Twin tail)
・不道徳 (Immoral)
・愚行 (Nonsense)
・ニーソ (Knee socks)
・従順 (Obedience)

これらをまとめて『TINKO』と呼ぶ。

210:名前は開発中のものです。
12/07/20 13:25:15.17 +cwXUPrf
理想の彼女ちん子さんかぁ

211:名前は開発中のものです。
12/07/22 00:56:24.61 Fu8ZBkHj
吉里吉里でメッセージ枠内での1行当たりの文字数や
行数を制限する場合どのようにすればいいのでしょうか?

フォントのサイズや行間字間弄って3行くらいで改ページ

みたいな地道な作業をするしかないんでしょうか。

212:名前は開発中のものです。
12/07/22 09:54:47.85 aFcQ/oyj
>>211
メッセージレイヤーのサイズを変更するんじゃ駄目なの?
1と>>3-5とか読め。

213:名前は開発中のものです。
12/07/22 10:18:34.10 ru8MLx9t
ダメダメダメダメダメダメダメ来年は、ダメ来年はただたするぬうほをねあけ!るる?むみはぬすあうてめよしけへめよよみひひひたかあう
どうしたらレベルあがるのーーーーーー

214:名前は開発中のものです。
12/07/22 10:22:37.89 aFcQ/oyj
夏休みかー

215:名前は開発中のものです。
12/07/23 09:39:31.45 1+t/RB9F
htmlで作られたフレームページみたいのを吉里吉里で作るには
(左に文字か画像でリンク→右にデータ(文字や画像)を呼び出す)
リンク前とリンク後のページを作ってリンクで呼び出すのか
それとも他の方法があるのかを教えてください。



216:名前は開発中のものです。
12/07/23 09:48:10.70 fm4aoOIh
メッセージレイヤー複数使って、左にメッセージレイヤーA、右にメッセージレイヤーB
→メッセージレイヤーAにリンク並べる
→押されたら適当なラベルに飛んでメッセージレイヤーBの中身を消去した後に情報表示

ってすれば?

217:名前は開発中のものです。
12/07/23 20:38:57.08 Ff6PNKoM
質問です
どこかにシナリオファイルは長くても細かくksファイルに分けても
変わらないとあった気がしたので
現在1つのksファイルにシナリオをひとまとめにしています
しかし作っているゲームが上から下へ順番にシナリオが流れていくのではなく
要所要所で条件にあったイベントのラベルに飛んでいるので
もしかして1イベント1ksファイルで呼び出したほうが
ラベルを探す手間なく処理が早いのではないかと疑問に想いました
もしご存知の方がいらしたら多少でも違いがあるのかでも
教えて貰えたら嬉しいです

218:名前は開発中のものです。
12/07/24 00:04:36.82 Wr2IeOWX
気にするようなオーバーヘッドは無いと思うけど
差が気になるならループ文つくって開始時と終了時の時間をはかって検証してみ

219:名前は開発中のものです。
12/07/24 02:48:11.64 xSqQyOS5
>>217
M単位に及ぶような長大な、または非常に多くの分岐を持つシナリオを管理する時に、
どこに何が書いてあるかパッと見てわからなくなるからファイルを分けてるんだと思うよ。俺はそう。
吉里吉里やKAGのオーバーヘッドより扱う人間のオーバーヘッドが先に来る、と。

220:名前は開発中のものです。
12/07/24 03:47:41.89 74u1eaEP
10年くらい前の古いPCだとM単位のファイル開くときにオーバーヘッドはあった気がする

221:名前は開発中のものです。
12/07/24 05:39:18.16 bslXFx6R
シナリオエディタのラベル検索機能かなんかで
容易に場面の頭出しとかできるなら、まとめていいのでは

222:名前は開発中のものです。
12/07/24 13:09:45.43 C0c98s8i
ファイルわけておくと修正パッチの影響範囲を最小限におさえられる

223:名前は開発中のものです。
12/07/24 14:03:44.39 C0c98s8i
あと、スクリプト作業で長いファイルは達成感が得にくくだれるのと、確認作業が面倒になるので、できれば30kb、最大でも50kbを上限に分割したほうが精神的に良い(経験則)

224:名前は開発中のものです。
12/07/24 20:56:05.99 43P4h+j/
デメリット
・見直したくなった時、どれがどこにあったか分からなくなる事がある
・ファイルをいくつも開かないといけなくなったりする

225:名前は開発中のものです。
12/07/24 21:08:27.48 t8ey6tv1
検索はフォルダーごとgrepできるエディタつかえば問題にならないよ

226:名前は開発中のものです。
12/07/24 22:24:40.48 tm5+Vxo9
開発中止宣言が出ましたね

227:名前は開発中のものです。
12/07/24 23:13:01.95 Jstw7kAK
まじで?

228:名前は開発中のものです。
12/07/25 04:19:49.64 LamyZPnL
シナリオは一番最初に吉里吉里でゲーム作った時は1つに全部入れた
その後はシーン別に入れてる
ks一つにするとデバグが面倒すぎるのが大きいと思う
1つだと最初に入れた構文が後々になって影響してたりと
手に負えない状態が起こる

今はメインのシナリオにはシナリオのコールぐらいしか無いなぁ


229:名前は開発中のものです。
12/07/25 07:02:36.03 0vpzVvRZ
『社長が訊く』ブラウザとかいう気持ち悪いアプリ作ってたの
KKDEの人かよ・・・なんかガッカリ

230:名前は開発中のものです。
12/07/25 08:38:23.83 bY98Tk6Q
>>229
オマイは、潔癖症まるだしのリアル厨房女かよ

231:名前は開発中のものです。
12/07/25 09:35:48.61 oQRAlQIm
w

232:名前は開発中のものです。
12/07/25 18:33:43.89 dWGmRKnt
>>217です
>>218-225,>>228
回答ありがとうございます
気にするほどではないもののやはりデメリットもあるんですね
パッチにまで考えが至らず目から鱗でした
アンケートでMeでプレイしている人もいたので
ksファイルはわけて作る事にします

233:名前は開発中のものです。
12/07/26 02:16:32.82 z8JK3CdH
OP再生すると二、三年使ってるXPでは色調反転したような酷い再生のされかた。
最近買った7では普通に再生。
これは何が問題ですかね?


234:名前は開発中のものです。
12/07/26 02:56:52.20 ukHDEnyP
レイヤー再生を使え

235:名前は開発中のものです。
12/07/31 19:54:47.87 j3nuZzZq
KAGで折れ線グラフって表示できませんか?
棒グラフはできても折れ線グラフがどうやっても作れません。
なにかうまいやり方はないでしょうか?

236:名前は開発中のものです。
12/07/31 21:32:17.26 9/0ZnSj+
>>235
LayerExDrawプラグインでがんばれ

237:名前は開発中のものです。
12/08/01 23:17:46.74 VJj+OEJn
>>235
自分はfor文で1ドットづつ打った。当然アンチエイリアスなんてない

238:名前は開発中のものです。
12/08/01 23:21:54.13 SLkK3dYF
>>236がどう見てもただしいw

239:名前は開発中のものです。
12/08/01 23:29:49.35 ASG7kv4C
>>235
それは直線を描く方法がわからないのか
直線で折れ線グラフを実現する方法がわからないのかどっちだろう

240:名前は開発中のものです。
12/08/02 04:35:53.10 nhwJ+1/2
算数や数学の話になってきたりしてな。
ちょっと面白い事やろうとすると奴らが立ちふさがってきやがる……
数学で高校卒業を断念した俺にはとてもとても

241:名前は開発中のものです。
12/08/02 14:43:16.12 bHqH0f+G
>>235です。
>>236
教えていただいてありがとうございます。
今までKAGのタグでできる範囲でしかやってこなかったので、LayerExDraw自体初めて知りました。
どうやらがんばれば作れそうなことはわかったのですが、プラグインを接続?というのができませんでした。
もう少しTJSについて勉強しないとどうしようもなさそうです……。

>>237
すみません、for文がわかりませんでした。
TJSのforステートメントというのでしょうか?

>>239
直線を描く方法がわかりません。
無知ですみません。


242:名前は開発中のものです。
12/08/02 14:49:06.32 z6EpSCLB
まあそのレベルなら大人しくKAGで頑張ってたほうがいいな

243:名前は開発中のものです。
12/08/02 15:51:05.40 PefCP4Vk
>>241
棒グラフが作れるなら
棒の幅を1ピクセルにして敷き詰め かつ棒のてっぺんだけを描けばいいじゃん?
中学で習うであろう一次関数(y=ax+b)を使うんだ。あのグラフを思い出すんだ

244:名前は開発中のものです。
12/08/02 18:52:39.47 nhwJ+1/2
1x1ピクセルの画像をpimageで貼り倒すKAGサブルーチンで対処したら
なんかほほえましくていいかもしれない

245:名前は開発中のものです。
12/08/02 21:16:36.32 tEPrb32o
地点AからBまで直線引く関数とか何かって無かったっけ

246:名前は開発中のものです。
12/08/02 21:20:44.61 z6EpSCLB
プラグイン入れないとない

247:名前は開発中のものです。
12/08/02 21:59:04.74 KC4f3+gE
Override.tjsがきちんと読み込まれなくなってしまったのですが、原因は何が考えられるでしょうか?

Override.tjsではMainWindow.tjsのgoToStart()を上書きしているのですが

function goToStart(){
 System.inform("入った!");
 //以下、いろいろな処理
}

としても「入った!」が表示されません。

ちなみに、Override.tjsを読み込んでいるInitialize.tjsの

if(Storages.isExistentStorage("Override.tjs"))
KAGLoadScript("Override.tjs");

にはきちんと入っているようです。

原因が分かる方がいたらお願い致します。


248:名前は開発中のものです。
12/08/02 22:47:42.53 9TylehNr
function goToStart(){
 System.inform("入った!");
 //以下、いろいろな処理
}

これでMainWidnow.tjsのgoToStartは上書きされません

249:名前は開発中のものです。
12/08/03 02:06:39.68 C8XwI9Hq
1920x1200のモニタが一つ接続されている環境で、WindowEx.dllを使ってSystem.getMonitorInfo()を実行すると以下のようになります。画面外にあるはずの時にモニタが返ってきたり、画面内にあるはずの時に void になったりするのは、使い方を間違っているからでしょうか。

01:45:12 コンソール : System.getDisplayMonitors().count = (int)1
01:45:38 コンソール : System.getDisplayMonitors()[0].work.w = (int)1920
01:45:40 コンソール : System.getDisplayMonitors()[0].work.h = (int)1147
01:46:00 コンソール : System.getMonitorInfo(false, 1199, 0) = (object)(object 0x05A96508:0x05A96508)
01:46:04 コンソール : System.getMonitorInfo(false, 1200, 0) = (void)
01:46:13 コンソール : System.getMonitorInfo(false, 0, 100000) = (object)(object 0x05A9AFF8:0x05A9AFF8)
01:47:15 コンソール : System.getMonitorInfo(false, -1, 0) = (void)
01:47:21 コンソール : System.getMonitorInfo(false, 0, -1) = (object)(object 0x05A9AFF8:0x05A9AFF8)

>>247
Override.tjsに書くなら、以下でいけるはず。

KAGWindow.goToStart = function() {
System.inform("入った!");
//以下、いろいろな処理
};


250:名前は開発中のものです。
12/08/03 16:42:12.00 DEMtdafV
Deeたんエロオヤジすなあ

251:名前は開発中のものです。
12/08/04 02:06:02.98 zH+g1yAN
>>249
確かにおかしい。バグじゃないかな。
System.getMonitorInfo(false, 500, 200, 1, 1);
のように1x1領域をチェックすればとりあえず想定どおり
動くみたいだけど…根本修正してほしいよね。


252:名前は開発中のものです。
12/08/05 02:40:49.34 JxOA4bBL
>>249

WindowEx.dll のソースコードを見た。バグだ。
getMonitorInfo()で、座標指定の時の1754行目と1755行目で、
本当は param[1]とparam[2]を指定しなきゃいけないところが
param[0]とparam[1]になってる。

1752 case 3: // 座標指定
1753 POINT pt;
1754 pt.x = (LONG)param[0]->AsInteger();
1755 pt.y = (LONG)param[1]->AsInteger();
1756 mon = ::MonitorFromPoint(pt, flag);
1757 break;

確認したら、公式はちょっと前に修正されたみたいね。
一応、251の方法で回避はできる。

しかし…こんなバグが残ってるなんて、よっぽど使われてないんだなぁ…。


253:名前は開発中のものです。
12/08/05 03:39:44.09 gdrvZuV+
そのへんのプラグインはこのスレに書けばだいたいすぐなおるよね

254:名前は開発中のものです。
12/08/05 05:07:40.64 JxOA4bBL
>>253
それでいいのかな、公式に書かないといけないんじゃないかな、
とは思うものの、すごく助かるのは助かるよね。
アンテナ広いメンテナーの方々に感謝。


255:名前は開発中のものです。
12/08/05 11:44:38.13 oi4xNQnN
集合痴だからな

256:名前は開発中のものです。
12/08/05 12:55:38.72 XS7fIZvL
大体あってる

257:名前は開発中のものです。
12/08/06 02:58:48.52 6wRb2Hwx
TJSで、あるインスタンスに、そのインスタンスのスーパークラスの
メンバを参照する関数を「後から」追加するにはどうすればいいで
しょうか。

例:kag.leftがpropertyなどでWindowクラスのleftをオーバーライド
している場合に、Windowクラスのleftを表示する関数を kag に
追加する場合、こうだと思っていたのですが、
kag.func = function { dm(super.left); } incontextof kag;
これだと「スーパークラスが存在しないかスーパークラスを特定
できません」と怒られます。


258:名前は開発中のものです。
12/08/06 03:20:17.46 6wRb2Hwx
以下で実現できることは知っていますが、superを指定したいのです。
kag.func = function { dm(.Window.left); } incontextof kag;


259:名前は開発中のものです。
12/08/06 03:44:06.31 +9M0Wrqe
残念ながら super はどうやってもクラス定義中以外では使えない。
オブジェクトのクラスや親クラスを直接取得する方法がないのは
TJSの欠陥よね

全クラスをグローバルに作ってて、単独継承しかしてないなら、
隠れインターフェース経由で以下で対応できる

function getSuper(obj) {
var superName = Scripts.getClassNames(obj)[1];
return superName !== void ? global[superName] : void;
}

260:名前は開発中のものです。
12/08/06 04:38:15.78 6wRb2Hwx
>>259
ありがとうございます。そういう方法があるんですね。
その方法で実装しようとおもいます。


261:名前は開発中のものです。
12/08/09 06:42:27.53 5fT1y0O0
吉里吉里3はハッタリだったね

262:名前は開発中のものです。
12/08/09 06:46:12.74 3UUV0rya
つ 吉里吉里Java


263:名前は開発中のものです。
12/08/09 14:02:34.44 726MuRD5
ぎりぎりJava

264:名前は開発中のものです。
12/08/09 15:35:12.46 3rvMzfMZ
Deeたんってオタク系の変態というよりはベンチャー企業の
セクハラ大好きパワハラ大好き体育会系重役って感じだよね




URLリンク(twitter.com)
でぃー子♀@クネクネ動く猫しっぽ制作中
@harmonia_www エロゲではシェア33%以上を誇るゲームエンジンの作者でつ。
それとは関係ないけどとアメリカに支店、ベトナムに子会社があるとあるIT企業の
取締役でつ!!

URLリンク(twitter.com)
でぃー子♀@クネクネ動く猫しっぽ制作中
@satouni02 いやーむかし女の子が「ちょっやめっ」とかいうの全部無視して
手マンしまくってたらそのうちぐてーっとして恍惚の顔になってぐにゅんぐにゅん
膣内がうごいてたけど「イッてるの?」ってきいても「イッてないよぉ><」とか
いってていまいちわからんですばい


265:名前は開発中のものです。
12/08/10 00:53:48.43 Ob6L7C1p
今シェア33%以上もあるか?

266:名前は開発中のものです。
12/08/10 01:01:28.53 bUW23Yx7
ある

267:名前は開発中のものです。
12/08/10 01:11:36.37 Ob6L7C1p
本人乙
ねーよ

268:名前は開発中のものです。
12/08/10 01:17:16.28 IAoWZsRR
Deeたん実在説とかまだ信じてる奴がいたのか

269:名前は開発中のものです。
12/08/10 02:21:10.11 FxXuLnvz
妹さんがいるんだから兄さんだっているだろ

270:名前は開発中のものです。
12/08/10 02:26:07.38 Y+OM/bgx
昨年のデータだと、新作の25%が吉里吉里

271:名前は開発中のものです。
12/08/10 07:27:00.72 TOnppI03
25%って商業ですか? 同人も含めてですか?(全部カウントするのは無理でしょうけど)

272:名前は開発中のものです。
12/08/10 07:38:21.03 i0Qf1DqE
Deeさん痛すぎて面白いなw

273:名前は開発中のものです。
12/08/10 09:11:16.11 oMZ9kWYE
>>270
低価格ゲーはほとんど吉里吉里

274:名前は開発中のものです。
12/08/10 12:43:08.15 gntNwDjW
俺のエロゲーの100%が吉里吉里

275:名前は開発中のものです。
12/08/10 13:02:38.19 Y+OM/bgx
>>271
商業

276:名前は開発中のものです。
12/08/10 19:29:44.01 A3LbA3eC
学ぶ力には三つの条件があります。

第一は自分自身に対する不全感。
自分は非力で、無知で、まだまだ多くのものが欠けている。
だからこの欠如を埋めなくてはならない、という飢餓感を持つこと。

第二は、その欠如を埋めてくれる「メンター(先達)」を探し当てられる能力です。
メンターは学校の先生でもお母さんでもネットの中の無名の人でも、生きた人間ならどんな人でも、
生涯にわたる師ではなく、ただある場所から別の場所に案内してくれるだけの
「渡し守」のような人でもいいのです。
自分を一歩先に連れて行ってくれる人は全て大切なメンターです。

第三が、素直な気持ち。
メンターを「教える気にさせる」力です。オープンマインドと言ってもいいし、
もっと平たく「愛嬌(あいきょう)」と言ってもいい。

「学ぶ姿勢」のある人は、何よりも素直です。
つまらない先入観を持たないから、生半可なリアリズムで好奇心を閉ざさない。
素直な人に聞かれると、こちらもつい真剣になる。知っている限りのことを、
知らないことまでも、教えてあげたいという気分になる。そういうものです。

以上、この三つの条件をまとめると、

「学びたいことがあります。教えてください。お願いします」

という文になります。これが「マジックワード」です。
これをさらっと口に出せる人はどこまでも成長することができる。
この言葉を惜しむ人は学ぶことができないのです。
学ぶ力には年齢も社会的地位も関係がありません。
>>273さんも、早く学ぶ力を身に付けてください。

277:名前は開発中のものです。
12/08/10 20:02:39.76 oMZ9kWYE
誤爆か

278:名前は開発中のものです。
12/08/12 10:52:59.80 hQpm+Z4+
拾ったゲームをバイナリで開いたらハッキリ吉里吉里の文字列で吹いた。

279:名前は開発中のものです。
12/08/12 12:11:25.19 fAkWPCru
吉里吉里のリポジトリ、どのブラウザで開いても文字化け
してしまうんだけど、エンコーディング何にすればいいの?
例:
URLリンク(sv.kikyou.info)


280:名前は開発中のものです。
12/08/12 12:42:00.28 Vdl4sVoP
「バイナリで開いたら」ってすげーアホっぽい

281:名前は開発中のものです。
12/08/12 12:45:05.21 NLvo2BE1
>>278
何がおもしろいのか全くわからん。

282:名前は開発中のものです。
12/08/12 12:49:41.63 QM3o57vQ
tracが腐ってる。
直接開けばok

283:名前は開発中のものです。
12/08/12 13:26:55.91 HOTsLmE0
豚切り/初心者的な質問で申し訳ありません。
pimageにはflip属性がありませんが、
画像を反転させた状態で追加読み込みは可能ですか?

284:名前は開発中のものです。
12/08/12 14:25:01.03 6V5yNBx1
KKDE3 開発始めるらしいな。

285:名前は開発中のものです。
12/08/12 16:39:26.99 ILpjKAhQ
吉里吉里3まだー?

286:名前は開発中のものです。
12/08/12 20:52:53.69 b+2mjcOD
>283
できるか? といえば、できるが、
容易にできるか? といえば、できない

初心者向けの解決策として、表示結果だけを求めるならば

件の問題を対処するには、
反転させた画像素材を、別途用意しておいて
必要に応じて pimage すれば
動作結果は、 pimage に flip属性があって 反転しているように見える

pimageタグで、flip属性 を使用できるように、tjsで改造して機能を追加する
なんてことをするのは、
自分自身が初心者であると感じているうちは、手を出さないほうがいい
中級者、上級者でも、てこずる解決方法です







287:名前は開発中のものです。
12/08/13 00:44:45.13 Lux0SRZN
>286さん

283です。自分もそのように反転画像を作る解決策は考えていましたが、
立ち絵の表情差分にその方法を適用すると数が多いため、悩んでおりました。

しかしやはりtjsをカスタマイズする必要があるのですね…
上級者でもてこずる方法とは恐れ入りました。
flip属性は、レイヤそのものを反転させられてこそ、という
仕様における考え方なのでしょうか。

難しいという事実は残念ではありますが、
返信ご丁寧にどうもありがとうございました。楽をせずに頑張ってみます。

288:名前は開発中のものです。
12/08/13 00:58:00.65 B4eV59Qm
ていうかflip属性ってなんだよimageにそんなのあったのか。
先週反転画像用意したばっかりだよバカじゃん。

289:名前は開発中のものです。
12/08/13 01:30:52.02 sOLXU1to
998 名前:[名無し]さん(bin+cue).rar[sage] 投稿日:2012/08/12(日) 04:30:37.03 ID:G9gQhxyp0
>>X Wheelは便利だけどさ、あれって吉里吉里製のゲームと相性悪いよね
>>X Wheel起動したままだとホイールが効かなくなるんだよな
>>吉里吉里のゲームはかなり多いし、何かX Wheelと似た機能の他のフリーソフトないもんかね
エンジン設定ツールが付いてるものは、ホイール検出をウインドウメッセージにすればおk
付いていない場合は他の付いてるゲームのエンジン設定ツールをそのままフォルダにコピーすれば使える

ただ、どっちにしてもホイールを使うとフルスクリーン時のメニューバーがグレイアウト点滅状態になって
セーブロードとかEXITとかがここにしか無い場合は面倒なんだよね

290:名前は開発中のものです。
12/08/13 13:11:11.35 Lux0SRZN
再び283ですが、難しい方法でもやはり将来の向学のために
pimageのプログラムによる画像反転について
TJS改造他、何かしらの解決策をお伺いできればと思います。

ここに書けるだけのアドバイス、ヒントだけでも構いませんので
どなたか、どうぞよろしくお願いいたします。

291:名前は開発中のものです。
12/08/13 15:22:51.35 5I823miX
>290
MainWindow.tjs にて、pimage タグは以下のようになっている

pimage : function(elm)
{
// 部分追加画像読み込み
getLayerFromElm(elm).loadPartialImage(elm);
return 0;
} incontextof this,


AnimationLayer.tjs にて、loadPartialImage()を定義している

function loadPartialImage(elm)
{
// 部分追加読み込みを行う
// この読み込みメソッドは レイヤそれ自体の
// 色調補正、フリップなどの設定に従う
// (従って pimage タグ自体には色調補正や
// フリップ関連の属性はない )

件の案件を解決するには、上記の2点を踏まえたうえで、
独自に pimage の挙動を tjs で作る必要がある


292:名前は開発中のものです。
12/08/14 13:46:46.03 f50Zlp43
>291さん

290です。AnimationLayerのほうに書かれてあったのですね!
自分は作品内でアニメーションしないので、そちらの解説は読み込んでいませんでした。

場所がわかっただけでも非常に参考になりました、ありがとうございました。
TJSのことも含め、良い機会だと思って勉強してみます。

293:名前は開発中のものです。
12/08/14 20:53:09.28 Hs9NZRCR
できませんで結論が出そうになってるけど、283のようなことは
デフォルトでできるよ。

[image layer=0 page=fore storage=uni]
[pimage layer=0 page=fore storage=unifore dx=10 dy=10]
[p]
[image layer=0 page=fore storage=uni]
[pimage layer=0 page=fore storage=unifore dx=10 dy=10]
[s]

とやると、二番目のuniforeはlayer=0に付随して反転して
貼られる。座標も反転する。試してみて。


294:名前は開発中のものです。
12/08/15 00:06:46.36 P4cLP8gu
ありゃ、二番目の[image]にfliplr付け忘れてた…

295:名前は開発中のものです。
12/08/15 12:08:23.44 xMq6NM8w
>294さん

283です。ご丁寧にどうもありがとうございました。
その挙動は確認しております。自分も書き方が悪かったですね…

今回は、立ち絵が衣装デザインの関係で左右別の反転した状態で
作成されており、ただ表情だけは使い回しできると判断したはいいものの
表情素材だけの反転ができない、矛盾した状況になってしまっていました。

もともと立ち絵のベース画像も体の向きを同じに作ってフリップすれば
問題は解決するのですが、イラストの子に仕事を負担させる前に
先に自分で出来ることがあればと質問させて頂いておりました。

お手数をおかけしてすみません。お気遣い本当にありがとうございました!

296:名前は開発中のものです。
12/08/15 16:24:08.93 XPgiqops
>>295
画像の反転なんて画像ソフトで左右反転して
差分ファイル用意するのに大した労力いらないじゃん
フォトショならアクションとバッチで一発でできるし
イラスト担当に負担掛けたくないなら
フリーの画像編集ソフトでもDLして自分でもできる
TJSの勉強にも意欲的なのはいいけどその程度のことで
開発の手が遅れるのは勿体無いよ

297:名前は開発中のものです。
12/08/15 19:27:57.09 U6NcMWRm
>>296
手間はかからないけどファイルの容量は量が多ければかなり増えるよね。(上では表情に関してだけど、他の場合の話も含めて)
少しだけならそれでも問題ないんだろうけど。

298:名前は開発中のものです。
12/08/15 19:36:49.97 lVLyLt5F
画像の大・中・小を用意する問題と比べると、「別に画質は左右反転しても変わらない」
っていう違いはあるな

299:名前は開発中のものです。
12/08/15 22:01:34.37 CcilJX3Q
いやいや、自分で絵を描いたことがあれば分かると思うけど
左右反転しても見れる顔をかくのって大変だよ
絵描きに話してやらせた方が良い

300:名前は開発中のものです。
12/08/15 23:13:40.55 U6NcMWRm
>>299
そんなん最前提の話だろ

301:名前は開発中のものです。
12/08/24 04:16:52.78 3iPyoMfF
吉里吉里3は出る出る詐欺でしたね

302:名前は開発中のものです。
12/08/24 04:19:08.68 dLzVl9KJ
Deeたんのある限り我々は何度でも蘇る

303:名前は開発中のものです。
12/08/24 20:05:17.39 Ixy0/vmm
どこぞのゲームメーカーブランドの新作出す出す詐欺と合わせてお楽しみください

304:名前は開発中のものです。
12/08/26 20:57:32.65 wQNjsAGz
吉里吉里4クルー?

305:名前は開発中のものです。
12/08/30 00:29:54.20 lv3hFZFG
TJS2の "const" は、ソースコード上は単純に無視されるようインプリされているように見えるのだけど、ArrayのsaveStructのところには意味があるように書いてあって、どっちが正しいかご存知の方教えてください。
URLリンク(devdoc.kikyou.info)


306:名前は開発中のものです。
12/08/30 02:22:46.03 gMuJE7QQ
TJS中のconstはvarの代わりに使える(例:「const hogehoge = 0;」等)
でも実際にはconst変数ではなく書き換えが可能(未実装なので)

辞書や配列の前の"(const)"は上記ページに書かれている通り
高効率(高速かつ省メモリ)で内容が評価される
でも定数以外の項目を書くとエラーで弾かれるので注意

saveStructで(const)つきで保存されるのは,確かKAGの巨大セーブデータで
ロード時にメモリ不足で落ちることがあったための対策で入ったような記憶


307:名前は開発中のものです。
12/08/30 03:29:12.38 vJF014XK
tjs初心者なのですが、C++みたいに、thisのワードをつかって、
そこからメンバ変数なりにアクセスしていくことはできますか?

また、Visual Studioのようにインテリセンスで楽々開発していけるような、
IDEってありますか?

this->... で開発するスタイルになれてしまって、
いちいち関数名を書くのがめんどくさくて……タイプみすもしそうですし。

308:名前は開発中のものです。
12/08/30 14:19:33.14 b7OD1br9
吉里吉里3が2013年中に出る確率を教えてください(出来れば本人から)

309:名前は開発中のものです。
12/08/30 16:52:10.58 LuwVr1d1
Twitter垢とって自分で聞いてください

310:名前は開発中のものです。
12/08/30 18:20:43.72 8ggvKMfc
ネタじゃなくマルチプラットフォームの吉里吉里が気になってるってことなら
吉里吉里Javaを追う方が利口よ

311:名前は開発中のものです。
12/08/30 18:30:04.94 vJF014XK
質問です。
tjsの辞書配列って順次アクセスはできないのですか?

for (var i = 配列の最初; i != 配列の終端; ++i)
{
if (hoge == hogehoge)
}

みたいな感じで重複部分がめんどうなので、ループで処理したい場所がわりとあります。
普通の配列を使うと、管理が面倒なのでできれば辞書配列をつかいたいのですが……。

312:名前は開発中のものです。
12/08/30 18:34:12.03 CR8Fmp9/
辞書は Array.assign してから処理するのが定石だと思う。
URLリンク(hpcgi1.nifty.com)

313:名前は開発中のものです。
12/08/30 18:36:36.14 8ggvKMfc
そこでScriptsExプラグインを華麗に適用

314:名前は開発中のものです。
12/08/30 18:47:25.42 vJF014XK
>>312
おーなるほど、
二個ずつとばしてなんとかする感じですね。
ありがとうございます!

315:名前は開発中のものです。
12/08/31 06:14:03.67 qBGpNTrs
吉里吉里3とは今にしてみれば何だったのか……?(´・ω・‘)

316:名前は開発中のものです。
12/08/31 21:53:14.09 MyEtrE7N
吉里吉里3は何がどうよくなるの? マルチプラットフォームとか以外で

317:名前は開発中のものです。
12/08/31 21:59:26.87 2umGQ0Tm
むしろDeeたんの機嫌が悪くなる

318:名前は開発中のものです。
12/08/31 22:06:52.33 MfCrXR4m
悪くはならんだろw
発言の○○○○度には磨きがかかるだろうけど

319:名前は開発中のものです。
12/08/31 22:09:15.92 2umGQ0Tm
吉里吉里を習得する上で最大の壁はDeeたん

320:名前は開発中のものです。
12/09/01 06:18:55.01 3EsOs3mB
すいません、質問です。

・マウスイベント処理を使って、メッセージレイヤを拡張したい。

Message.tjsのclass MessageLayerにonMouseDownを見つけ確認がてら触ってみたのですが、
メッセージレイヤ上をクリックしても反応がありません。
System.inform("call");
と記述してチェックしたところ呼びだされていませんでした。
hitThresholdの値を変更しましたが無意味でした。

メッセージレイヤのマウスイベントが呼びだされる方法を教えてください。
templateフォルダのコピペプロジェクトで確認しています。
それとも、なにか根本的に間違ってます?
on〜とついてるし、イベントハンドラとあるのにメッセージが飛んでこない理由がそもそもわからなくて。
お願いします。

321:名前は開発中のものです。
12/09/01 17:16:02.59 ransYfxN
質問です。
playbgmで鳴らしているBGMがplayseで鳴らした効果音が鳴る度に
音量が急に下がり、徐々に音量が戻っていくというようになります。
playseで鳴らしたBGMの時にはならないのですが、
これは何が原因でしょうか?

322:名前は開発中のものです。
12/09/01 17:16:53.51 5ZN1GHOE
なんかフェードイン関係のマクロでも使ってるんじゃないの

323:名前は開発中のものです。
12/09/02 01:49:11.86 UodBJEeH
音声台詞時にはBGMをしぼるプラグインとか入れてそうだよな

324:名前は開発中のものです。
12/09/03 00:15:05.05 2QjuY5XQ
>>320
実験してみた
MessageLayerクラスのonMouseDownイベントが呼ばれるのは
メッセージレイヤ上に置かれた リンクテキスト をクリックした時

325:320
12/09/03 02:00:16.37 n9rvNLh2
>>324
ありがとうございます。
疑問はまさにお答えていただいたことで、
リンクテキストがない時に、onMouseDownイベントが反応しないのか?でした。
onMouseDown関数にリンクテキストに関する処理が書かれているのならまだしも、
関数にすら飛んでこないので意味がわからなかったのです。

あれから調べてみましたが、上記の原因はどうやらonHitTest関数にあるみたいでした。
リンクテキストの件では、internalHitTest関数内のfindLinkの戻り値がリンクテキストの無い場合はfalseを返すため、
その結果がonMouse〜に影響していました。

というわけでいろいろお手数をおかけしました。
メッセージキューイングの順序がわかればよかったのですが…

326:名前は開発中のものです。
12/09/03 02:25:32.49 UX96RwYv
>>325
吉里吉里新版リファレンスの Layer.onHitTest 見なされ

327:名前は開発中のものです。
12/09/03 02:28:04.51 n9rvNLh2
>>326
ほんとだ…俺がまず見るべきはこれだったのか・・・
ありがとうございます

328:名前は開発中のものです。
12/09/03 06:13:02.71 KnmGucWV
>>319
つか最大の敵の気もするw
ちっとは3の開発でやる気見せろ
Nスクの方はちゃんと2が出たらしいが

329:名前は開発中のものです。
12/09/03 06:16:27.73 8XRU72BH
なんでノベルゲー開発ツールの作者はキチガイばっかりなん?

330:名前は開発中のものです。
12/09/03 09:04:55.92 mT08Ygkv
何か凄いことすればキチガイが許されると思ってるからじゃないの?
もしくは大衆がキチガイを受け入れざるを得ない状況を楽しんでるか

331:名前は開発中のものです。
12/09/03 09:14:11.87 9nCE33Vy
吉里吉里を作らなかった人格者より
吉里吉里を作ってくれたキチガイのほうに感謝する
俺にとってはそれが全て

332:名前は開発中のものです。
12/09/03 17:37:05.83 +Ne1mH6U
情報系が基地外みたいなのは文化

333:名前は開発中のものです。
12/09/03 20:49:48.70 ncHorYN9
作者ごとにそれぞれタイプの違う方向にいっちゃってるのが面白いといえば面白い……か

334:名前は開発中のものです。
12/09/03 23:14:54.65 iUJl2+ud
質問です。
linkするときに、自動的にリンク先を決めるようなことをするにはどうしたらいいのでしょうか?

現状では、ふつうに列挙しているのですが、
要素数が多いとのと条件分岐で使う予定でめんどくさいなぁと思ったので……。

[link target="*hoge1"]あ[endlink][r]
[link target="*hoge2"]い[endlink][r]

これを……

for (var i; i < hoge.count; ++i)
{
[link target="*hoge[i]"]hoge[i].name[endlink][r]
}
こんな感じににしたいです。(KAGですのでfor文では書いていませんだが)
そして、こんな感じの文で処理をすると、iの値が最後になるので、どうしても上手く行かなくて……

335:名前は開発中のものです。
12/09/03 23:28:23.42 ncHorYN9
[link target="&'*hoge'+i"]hoge[i].name[endlink][r]


336:名前は開発中のものです。
12/09/04 13:40:19.79 VKvvjtnb
>>335
やってみましたが、どうにも上手くいきませんでした……。
なんというか、クリックされたらそのクリックされたオブジェクトを受け渡す感じにしたいのです。

for()
{
//以下部分を順次探索なり、条件文で処理して表示させる
選択肢:めろん←例えばめろんをクリックすると……*ジャンプ先に行き、
選択肢:りんご
}

*ジャンプ先
//このジャンプ先の処理自体はどの選択肢をクリックしても同じですが、
//処理対象が選ばれたオブジェクトになる。
//例えば、同じ「切る」でも「めろん」か「りんご」かの違いです。

という感じの仕様です。
オブジェクト自体が無理でも辞書配列のkeyさえ渡せればなんとかなるのですが……。

337:名前は開発中のものです。
12/09/04 18:51:10.52 OERGP69/
linkタグのexp属性でクリックした時に式を評価できるから
f.clickedなり適当な変数にkey入れるようにするだけでいいんじゃね?

338:target=
12/09/04 19:55:06.28 sjsgrzG7
んだんだ

[link target=*branch exp="&'tf.tmp='+tf.i"]略[endlink]
...
..
.
[s]

*branch
[if exp="tf.tmp==1"]
[jump target="*s1"]
[elsif exp="tf.tmp==2"]
[jump target="*s1"]
[else]
[jump target="*s1"]
[endif]

339:名前は開発中のものです。
12/09/05 02:58:40.52 Y0Mutfvy
Dee氏はマゾ臭いからこのスレでも他人のフリして自分を
こきおろして快感覚えてそうw

340:名前は開発中のものです。
12/09/05 17:20:21.12 2MC47uwu
ペロ…これはDee

341:名前は開発中のものです。
12/09/05 20:23:01.11 R54TDq9G
吉里吉里3が出ていればまだしばらく変態やりながら求心力保てたのにな・・
吉里吉里3は出さない、でも変態は続けますじゃあねえ・・

342:名前は開発中のものです。
12/09/05 20:32:54.51 dM73rIDd
普通の変態になっちゃう

343:名前は開発中のものです。
12/09/05 20:50:01.43 XYLqdSNU
変態でもオタク系変態ならまだいいんだが体育会系セクハラ親父系の変態が入ってるからな

344:名前は開発中のものです。
12/09/05 20:53:42.60 2MC47uwu
ぜひ>>343氏の変態学の講義を受けてみたいな

345:名前は開発中のものです。
12/09/05 21:14:40.96 XYLqdSNU
オタク系変態
 ●具体的なマンガ・アニメ・ゲームのキャラに絡めた発言が多い
 ●エロトークはエロ漫画・エロゲに出てくるような二次ネタを前提にしていることが多い
 ●リアル女に対しては多少エロトークをすることはあるが基本的に及び腰でお姫様扱い
体育会系変態
 ●リアル女を見かけるとガツガツ絡んでいく
 ●(女に対する)エロトークは実際のセックスネタなどを使うことが多い
 ●はぁセックスしたい 風俗いきたい など直球発言が多い
 ●ちんこ まんこ などの小学生的エロネタを言うのは他の変態もありうるのだが、妙にしつこい
セクハラ親父系変態
 ●自分のリアルにおける収入や地位などをアピールすることが多い
 ●リアル女を見かけると多少距離を置きつつもしつこく絡み、脈ありとみると非常に馴れ馴れしくなる
 ●ある程度親しくなった女には胸揉ませろとか普通に言う
 ●マジメ系ネタとエロネタを合わせた寒い発言をする

346:名前は開発中のものです。
12/09/06 14:41:56.76 RoK3Q8oX
お世話になります。

アドベンチャー物で、クリア後にゲームのCGのみを閲覧するページについてですが
サムネイルをクリックして、基本CG画像を出すところまで出来ましたが
引き続きクリックで差分(例えば5枚)を全て見せるには、どのようにすれば良いかご教授ください。

秀和システムの参考書にあるテンプレのスクリプトですと、1枚閲覧したら最初のサムネイル画面まで戻るので
差分を全部紹介してから最初の画面に戻るには、どんな風にスクリプトを書き込めば宜しいでしょうか?

347:名前は開発中のものです。
12/09/06 16:11:16.24 Hu03WtG7
>>346
おおかたのCG閲覧はこんな動作だと思うので

1サムネクリック→2CGが表示→3画面クリック→4サムネ画面に

こう変更

1サムネクリック→2CGが表示→3画面クリック→[差分ループ判定]→4サムネ画面に
             ↑______________________________________|

CG差分を見た/見てないとか枚数とか
個々のシーンによってループ条件は違うと思うので、変数などで管理して工夫
とりあえずtf.cgcount=0とか作って
@if、@jump、cond属性あたりを用いて5回ループさせてみんしゃい

348:名前は開発中のものです。
12/09/06 17:15:20.56 RoK3Q8oX
>>347
ご厚意ありがとうございます。

ただ、勉強不足でたいへん恐縮ですが用語に関してサッパリなので
実際のスクリプトで例えて頂けないものでしょうか

出来れば引き続き宜しくお願い致します。

私もいろいろ試しているのですが、本編で画像表示に使うimage storageの応用ではないみたいですね。

349:名前は開発中のものです。
12/09/06 18:19:16.68 sRKei9Bd
コピペさせろってか?
レスからたった一時間で両手挙げるのはどうかと思うわー

350:名前は開発中のものです。
12/09/06 19:49:56.50 kOO0ImXR
出来ないことは諦めろ
言葉だけ丁寧にすれば手取り足取り教えてもらえる訳じゃない

351:347
12/09/06 20:34:53.27 Hu03WtG7
>>348
そちらのスクリプトがどんなのか分からないのに
質問だけ投げられたら、こっちは概念しか返せないよ
そのうえで「具体的なのくれ」では無償労働の依頼やね

その調子じゃ分岐するノベルゲーも苦労しそうだ
まず本編作ろうぜ
最後までできた暁には、CGモードも自然と作れるようになってるよ

画像表示の命令は@image storage=〜で合ってるけど
画像の内容を変えるにはif文で実行する命令を選択したり
もしくはエンティティでstorageを指定したり

352:名前は開発中のものです。
12/09/06 20:47:12.52 Hu03WtG7
あ「ループ」の意味わかる?プログラムの処理が同じところをグルグル回ること
(一般的には@jumpで以前のラベルに戻る処理)
無限に回り続けるのはまずいので、条件命令@ifなどで
条件(5枚表示した、とか)を満たしたときに無限ループから脱出させる

ご希望の動作をさせるためには
・上述のループ処理
・表示内容を順に変えていく処理 ヒント>>351
が必要

353:346
12/09/06 21:43:29.27 RoK3Q8oX
>>351
ヒントありがとうございます。
何とかやってみようかと思います。

album.ks
album_init.ks

ただCG鑑賞モードを構築する上の2種類のksのどちらを重点的に書き換えするのかが分からない状態でして
そちらを教えて頂ければと思います(すみません)。

現在、album.ksファイルの今の状態が下記のようになります。

; サムネイル画像が選択された(サムネイル画面からクリック)
*album_select
; イベント絵を前景レイヤに読み込み、表示
[image storage="&tf.album_storage[tf.album_select+20*sf.album_page]" layer="&tf.album_layer" page=fore visible=true left=0 top=0 index=1999999]
------------------------------------
(※この間に画像呼び出しのスクリプトを書き加えるものだと思って作業していました)
------------------------------------
; クリックを待つ
[waitclick]
; イベント絵の前景レイヤを非表示にする
[layopt layer="&tf.album_layer" page=fore visible=false]
[unlocklink]
[s]

(ここでサムネイル画面に戻ります)

すみませんが、何卒宜しくお願い致します。

354:名前は開発中のものです。
12/09/06 22:54:50.62 41lq8MvN
>>337-338
ありがとうございます。

まわしてみたのですが、一旦ループを最後まで回しているので、
tf.iの値が、for文の終了条件の値になってしまい、不正な値になってしまいますorz

リンク先はlink文にexpを入れることで、ひとまとめに出来たのですが、選択肢のループ構造は難しいようです。
愚直に全部書くか、吉里吉里そのものを改造するしか、方法しかないのかぁと諦めました……。

355:名前は開発中のものです。
12/09/06 23:43:04.83 kOO0ImXR
346も354も、まずは自分で分かる構文で全部書くべき
分からないならその機能は諦めろ
ちゃんと続けていけば、そのうち何言われていたのか分かってくるから

356:名前は開発中のものです。
12/09/07 01:52:44.19 Pe8ZiBvW
このくらいのループ処理とかならgoogle先生に聞きながらやればできるだろ。
ほとんど答え載っているようなもんだし

357:名前は開発中のものです。
12/09/07 02:41:34.18 VnyU+LY1
ふむう
・改造箇所は>>353の部分で合ってる。どの命令が、>>347の図の中のどれに対応しているか見極めよう
・[image storage="&〜 の&以降が何言ってるか分からない場合は諦める
 というより自分でイチから作った方が動くかも
・参考書とやらは俺ら持ってないので、それを前提に話されても困る

同人(ノベル)ゲーム界隈に元気があるのは良いことなので、作り手を俺は応援する!
しかし最低限の事は自分で解決しなければ、ゲームが完成しないんだよね
まぁCGモードが無くってもゲーム本編の面白さに影響はないってw

358:346
12/09/07 08:55:38.07 asYtRRfj
>>357
改造箇所が合っているという情報だけでも助かりました!
今後はここに絞って、いろいろ試してみたいと思います。

今回はお付き合い頂いて、本当にありがとうございました。

359:名前は開発中のものです。
12/09/07 18:29:08.72 T/D6KsDh
背景だけじゃなく、メッセージボックスの画像や立ち絵もグレースケールで表示したい場合って
別途それ用に画像を用意しないといけないのでしょうか?


360:名前は開発中のものです。
12/09/07 19:24:23.55 4MGmxwGd
>>359
Layer.doGrayScale() ってのがあるよ
セピアっぽくするのは無理

完全なグレースケールだと冷たい感じがするから別に用意したほうがいいと思う

361:名前は開発中のものです。
12/09/07 19:25:21.48 lr1doojE
セピアっぽくするのはガンマ値いじればできる
リファレンスに載ってるので参照

362:名前は開発中のものです。
12/09/09 00:27:57.82 UoexBhAR
TJS2で辞書配列の作成がやたらめったら遅い。多分コレが該当してる。
URLリンク(www.geocities.jp)
配列で作り直して速度はなんとかなったけど、分かり辛くてメンテが
大変で困ってる。吉里吉里3なんか要らないから、辞書配列周りを
もう少し高速化してくれ…!

363:名前は開発中のものです。
12/09/09 01:51:24.80 nEuJaSQ1
辞書配列はよく使うところだしねえ

高速化の余地があるのかわからんけど、機能削減したLightDictionaryとかでもいいから
なんかあるとうれしいな

364:名前は開発中のものです。
12/09/09 02:13:33.81 AWFXq19t
>>362
そんなに差がでるってことは、C++のMAPとかと全然作りが違うんかな?

……辞書配列つかいまくってるけど、
自分のマシンは自作したばっかで高速だから、
本当はすげー重いとか考えると怖いなぁ。

365:名前は開発中のものです。
12/09/09 04:05:50.63 UoexBhAR
>>364
実測してみたら、数千要素くらいからがくっと速度が下がる。気持ち
O(n^2)になっているような。特にassignStructでコピーすると顕著。
件のURLにあるように、ちょっと長いゲームではセーブラベルが
数万くらいにはなるので、これや、これに付随するデータを保存する
のが大変なの。
逆にいえば、そんなに大きい辞書配列を使わなければ、そんなに
困ることはないだろうね。

>>363
うーん、きっと機能削減しちゃうとそれはそれで困る場面が
出るし、使う方も混乱するだろうと思うから、元のまま高速化
できないか考えた方がいいと思うんだ。

吉里吉里のソースコード見てみたけど、さらっと見るには範囲
大きすぎて、(assignStructは単純に要求に応じて確保してる
だけみたいだけど)どうやってるか正確にわからない。ので、
高速化できるかどうかまだわからない。内部仕様書が欲しい…。

高速化できたとして、pluginみたいな形で元のDictionaryを
置き換えることってできるのかなぁ。そうでなければ、BCCの
環境一式揃えて全コンパイルになってしまうから、手が出せ
ないねぇ…。

366:名前は開発中のものです。
12/09/09 09:32:01.28 AWFXq19t
いっそC++とか組み込めたりできんのw?
あんまりにも重いなら、その部分だけはtjsじゃなくてC++使うとか。

367:名前は開発中のものです。
12/09/09 12:00:23.88 UoexBhAR
>>366
辞書配列じゃなくて普通の配列なら速いことがわかっているので、今は
普通の配列で組みなおして速度的には問題なくなっている。ただ、
複雑になってメンテが大変なのをなんとかしたいんだよ。

C++でも組めるけど、それは更に面倒だし、単機能のためだけにdll書く
のもなー、というのが本音。辞書配列ならかなり簡単に書けるから…。

以下みたいなスクリプト書いて所要時間をプロットしてみたら、
見事な二次曲線になってた。辞書配列の要素数には要注意だね。
for (var i = 1; i <= 40; i++) {
var tick = System.getTickCount();
var hash = %[];
for (var j = 0; j < 1000*i; j++)
hash['abc'+j] = j;
dm('tick('+i+') = ' + (System.getTickCount() - tick));
}


368:名前は開発中のものです。
12/09/09 12:03:58.05 UoexBhAR
ちなみに同じスクリプトを配列ベースにすると、40000要素数の時に
手元の環境では辞書配列の1/100以下の時間で終わる。うーん面白い。

369:名前は開発中のものです。
12/09/09 12:41:53.87 AWFXq19t
ソースも読まずにかつ検証もせずにすげぇ適当なこと言うけど。

そんだけ時間に差があるってことは、もしかして、内部的に頻繁にソートとかしてんのかね?
重複を許さない仕様なら、ソートを一切せずに、線形探索をしているのかも?
ハッシュテーブルとか使ったら早そうだけどなぁ。

370:名前は開発中のものです。
12/09/09 15:07:27.31 UoexBhAR
線形探索しているから、じゃないはず。もしそうなら、既存の
巨大な辞書から要素を取り出す作業も同じくらい遅くなるはずだけど、
そうなっていないから。「作成」が遅いみたい。だから今はメモリ
かなーと思っている。要求の度に素直に確保してるんじゃないかなー、
と。作成時にソートしているかどうかはまだ不明。
ハッシュ持てば早くなるのはその通りだけど、要素の種類がたくさん
あるから、適当なハッシュ関数が作れるのかどうか。
ソースは↓のあたりね。
URLリンク(sv.kikyou.info)



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4730日前に更新/249 KB
担当:undef