[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 09/10 11:21 / Filesize : 163 KB / Number-of Response : 448
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

▼ノベルゲームツールを作っちゃうぞ!Ver4.0



1 名前:名前は開発中のものです。 [2007/01/21(日) 00:29:07 ID:VX21mS5F]
ノベルゲームツールを制作中の人達が集うスレです。
新たなノベルツールを作ってやるというチャレンジャー歓迎。

前スレ
▼ノベルゲームツールを作っちゃうぞ!Ver3.0
pc10.2ch.net/test/read.cgi/gamedev/1059655064/

前々スレ
▼ノベルゲームツールを作っちゃうぞ!Ver2.0
pc2.2ch.net/test/read.cgi/gamedev/1040118471/

前々々スレ
▼ノベルゲームツール作っちゃうぞ!
pc2.2ch.net/test/read.cgi/gamedev/1013170036/

169 名前:168 mailto:sage [2007/05/12(土) 23:58:23 ID:NQu8FU6d]
>>↑の続きです

また、複数レイヤのトランジションで例えばクロスフェードなどの場合は
個々のレイヤをレイヤ単位の不透明度付きで描画していってもうまくいかないため
(トランジションが30%まで進んでいる場合、
レイヤ1を不透明度30%で描画、その上にレイヤ2を不透明度30%で描画、
さらにレイヤ3を不透明度70%で描画しても、
レイヤ1:レイヤ2:レイヤ3:の不透明度は30:30:70にはなりません)
おそらく途中にバッファを介して、
1、開始前に表示されるレイヤすべてをバッファ1に描画
2,終了時に表示されるレイヤすべてをバッファ2に描画
3,バッファ1とバッファ2でトランジション
というちょっとやっかいな手順を踏む必要があります。
なので、すべてのレイヤに
A,トランジション前に表示されているのか?
B,トランジション後は表示されているのか?
の情報をつける必要があるのですが、
これをやるのに自分の中では面倒な方法しか思いつかず
(トランジション開始前に、すべてのレイヤの属性を設定するなど)
吉里吉里のような感じではできそうにありません。

優先順位の違うレイヤのトランジションは別にできなくても構わないと思うのですが(^^)、
複数レイヤのトランジションは何とかサポートしたいです。

170 名前:168 mailto:sage [2007/05/12(土) 23:58:55 ID:NQu8FU6d]
>>↑の続きです

NScripterでは複数レイヤのトランジションはサポートしていないように見えます。
吉里吉里では各レイヤに表画面と裏画面を用意してトランジションを行っていますが、
1,BGのみのトランジション
2,子レイヤのみのトランジション
3,BG&子レイヤのみのトランジション
で場合分けがされており、
また片方のレイヤが無い場合や、トランジション後に表裏のレイヤ内容を
ポインタのみ入れ替えるか/内容をコピーするかなどと
いろいろな場合が想定されており、自分には大変複雑なものに見えます。
しかしながら、表/裏画面をレイヤ単位で導入することはなかなか上手いやり方だとも思います。

個人的には設計はできるだけシンプルなものにしたいのですが、
実際にトランジション実行を記述するスクリプトのことも考えると、
なかなかそれがうまくいきません。
みなさんはいったいどうやっていますか?
智恵を貸してください。よろしくお願いします。

171 名前:168 mailto:sage [2007/05/12(土) 23:59:49 ID:NQu8FU6d]
>>167
おお! おめでとうございます!

これからも頑張ってください^^

172 名前:名前は開発中のものです。 mailto:sage [2007/05/13(日) 17:14:47 ID:qATYs8FJ]
>>168
とりあえず吉里吉里の仕様をもう少しきちんと調べてみることからはじめては?

吉里吉里のレイヤの機能としてのトランジションは単純。隠れバッファに
リアルタイムで合成した結果を本来のバッファの代わりに合成系に参照させてるだけ。

・複数のレイヤを別個にトランジションはできる
これはトランジションがレイヤ単体の機能だからできて当然。

・複数のレイヤをいっしょにトランジション、は、トランジションの機能じゃない(後述)

・優先順位の違う(画面に同時に出てる)レイヤ同士でトランジションはできない。
正確には実行はできるが、更新されるのは「トランジションを実行したレイヤ」だけ。
トランジション先のレイヤは単なる元データで処理がおわった瞬間にさしかわる。
これは仕様で、吉里吉里では、表示レイヤと非表示レイヤ間でしか
トランジションさせないのが定番。

実際のところ、吉里吉里は、「トランジション機能」と「親子レイヤ機能」の
2種類の機能の組み合わせで画面の表現を実現してるのに注意。

親子レイヤってのは、168が >>169 でいってるバッファを介して〜に該当するものね。
吉里吉里の合成系は、子を親が確保したバッファにいったん合成するのを再帰合成してる。
つまり、168 が言うところの「やっかいな手順」は別の基本機能なので、
トランジション機能的にはその結果だけを使えばよいので単純なままで問題ない。
吉里吉里の「子レイヤをふくめたトランジション」ってのは、
トランジション処理を、この親子合成処理の前にするか後にするかの違い。
分割統治で個別のロジックをシンプルにしてる例ですね。

吉里吉里本体はシンプルなんだが、KAGはたしかにかなり複雑。
これは「裏」「表」を参照する固定名の変数の維持にこだわってるせいで、
動的にレイヤを生成・廃棄するような概念をとれば素直に扱えるはず。

173 名前:167 mailto:sage [2007/05/14(月) 00:54:31 ID:qwgQqJvf]
テスト&デバッグは完了したのですが、一つだけ原因不明なバグが残り………。
それを解決してからアップロードすることにします、とはいえ解決するのはいつになるやらorz
それと、BCCへの対応を打ち切りました。DLLでクラスのやりとりをする時、BCCとVCでは色々と
違いすぎて完全に対応するのが無理なのです。主に、マイクロソフトの独自仕様が悪いのですがorz

>168
ありがとうございます、ノベルツール作成中なら住人になりませんかと誘ってみたり。

174 名前:名前は開発中のものです。 mailto:sage [2007/05/15(火) 01:07:06 ID:T8/AV/rN]
>>172
吉里吉里本体はMDIアプリのような感じでレイヤーを管理しているのですね。
確かに、これならかなり上手く実装できそうです。
ありがとうございました。

あと、吉里吉里のリサーチについてなのですが、
自分は本体のソースをみて挫折した記憶がありますorz
今のところ付属のリファレンスしか参考になるものがないのですが、
仕様はいったいどうやって調べたのですか?
サイトや本などでも構いませんので、教えて頂けると嬉しいです^^

>>167
クラスエクスポートを異なるコンパイラ間で行うのは難しそうですね。

あと、ありがとうございます。
自分は手が遅い方なのでなんとも言えないのですが、
そのうち参加できればいいなと思います^^

175 名前:名前は開発中のものです。 mailto:sage [2007/05/15(火) 04:50:14 ID:tt2J8rXQ]
>>174
普通に「TJS2リファレンス」を片手に「吉里吉里2リファレンス」を
精読すればだいたいのところはわかると思うぞ>仕様。
「Kag System リファレンス」は別に読まなくてもいい。

親子合成やトランジション時の細かい挙動はちょっとリファレンス
だけではよくわからないので、そういう時は十数行レベルの
サンプルをかいて確認。画像ロードとかが簡単に動くから
サンプル書くのは難しくない。

本体のソースはなかなか手がでないけど、けっこう数がある
サンプルプラグインのソースを見れば、内部的なレイヤの挙動は
だいたいわかると思う。おおむね原理は想像の範囲内。

吉里吉里のプラグインは VC でも BCC でも MinGW でも
書けるってのは便利だね。

176 名前:167 mailto:sage [2007/05/15(火) 18:53:59 ID:5BtIaTXv]
バグが見つかったので、ようやくアップロードできそうです。
とはいえ、今週は多忙なのでやはり週末になるかと思われます(´Д`)

177 名前:名前は開発中のものです。 mailto:sage [2007/05/16(水) 01:26:51 ID:O6tjl5U2]
>>175
なるほど〜
とりあえずは、サンプルプラグインを参考にしながら
開発を進めていきたいと思います。
ありがとうございました。

>>176
了解です。



178 名前:167 mailto:sage [2007/05/19(土) 22:35:15 ID:+FLBuyt4]
というわけで、色々とバグを修正の末Ver0.97をアップロード致します(´Д`)
基本的な機能はほぼ完成した状態です、後は多少煮詰めればVer1.0に上げようかなと。
インターフェースを弄るスクリプトの命令が存在しませんが、それは仕様とさせて頂きます(´Д`)
(ヘルプにて記述している通り、プログラマが組み込み用途に用いることが前提なので………………)
abysslib.hp.infoseek.co.jp/index.html

179 名前:名前は開発中のものです。 mailto:sage [2007/05/21(月) 01:14:48 ID:o/Nqs/5K]
> シミュレーションゲームやロールプレイングゲームなどに、AVGのシステムを組み込みたい方を対象としています。

この組み込み方についてのチュートリアルはつけなくていいのか?

180 名前:167 mailto:sage [2007/05/21(月) 08:58:51 ID:LQe2eeUy]
>179
もちろん付けますよ、ええ(;´Д`)
現在、プログラマ向けのヘルプは記述中な状態で………。

181 名前:167 mailto:sage [2007/06/17(日) 22:41:47 ID:z3UGnVRR]
うわぁ、閑散としてるなぁ………まあ、私も書き込んでいなかったのですが(´Д`)
現在、尚もヘルプを記述中です。記述中なのですが、少し更新してみました(。。

182 名前:167 mailto:sage [2007/06/24(日) 19:12:41 ID:pmjsdB4s]
スランプを脱し、HTMLでリファレンスを記述中です。
また、多少のバグフィックスを行いました。具体的には、
・「DMA」を「TMA」に変更
・CommandHeap::GetIteratorにエラーチェックを追加
といった些細なものです。一部のクラス名が変更されましたが、まだ正式版ではないということで………(;´Д`)

183 名前:167 mailto:sage [2007/06/26(火) 01:49:50 ID:8MbLCTwn]
尚もHTMLでリファレンスを記述中、こうしてヘルプを書いてみると些細なバグがぽろぽろと出てきますね………。
というわけで、多少のバグフィックスを行いました。具体的には、
・「DRAWMANAGER_CHPRIORITY」を「TASKMANAGER_CHPRIORITY」に変更
といった些細なものです。今回もシンボル名の変更ですが、列挙子のシンボル名なのでまあ問題はないでしょう(´Д`)

184 名前:名前は開発中のものです。 [2007/07/28(土) 23:24:17 ID:dq8f9rET]
期待age

185 名前:114 [2007/08/05(日) 15:06:22 ID:oDdNXnxw]
久しぶりにスレ発見
俺のも形になってきたが、800*600の画像を二枚重ねるだけでFPS割れする
DirectXまじうざす

186 名前:名前は開発中のものです。 mailto:sage [2007/09/21(金) 00:47:30 ID:aEhX7Z7/]
ほしゅ
過疎ってるけど、がんがって〜!

187 名前:名前は開発中のものです。 [2007/10/19(金) 00:17:35 ID:MlCrP2zp]
よーし、Javaで作るぞ



188 名前:167 mailto:sage [2007/10/20(土) 12:27:25 ID:DeAtrpzg]
お久し振りです、色々と多忙で中々制作に手をつけられておりません(汗
リファレンスを尚も記述しており、ほぼ完成させました。
今週末中に、リファレンスだけでも完成させたいものです(´Д`)

今後は………
・プラグインの作り方
・ウェブページの更新
・サンプルゲームの制作
あたりを頑張っていこうかと考えております。

abysslib.hp.infoseek.co.jp/index.html

189 名前:167 mailto:sage [2007/10/22(月) 00:50:42 ID:/UJ8IviV]
リファレンスが完成致しました(今週末という条件からは約半時間程オーバーしましたが)
次は、プラグインの作り方を書いていこうかと。

190 名前:167 mailto:sage [2007/11/05(月) 09:34:56 ID:vUmvc+qv]
PluginTemplate(プラグインのテンプレートプロジェクトファイル)を追加しました。
プラグインの書き方は、これからヘルプに追加していく予定です。

191 名前:名前は開発中のものです。 mailto:sage [2007/12/07(金) 02:30:57 ID:jkawqV4X]
ガンガレage

192 名前:名前は開発中のものです。 [2008/01/09(水) 12:18:19 ID:01/Y0s2Y]
今度使ってみるage

193 名前:名前は開発中のものです。 mailto:sage [2008/01/11(金) 20:29:09 ID:dupThDrj]
やっぱプログラムの技術が付いてくると
自分で開発ツール作りたくなってくるんかな

194 名前:名前は開発中のものです。 mailto:sage [2008/01/29(火) 19:40:58 ID:UX2s5iVw]
すいません、基本的なことなんでしょうが考えても答えが出なくて…OTL
クロスフェードトランジションなんですが、普通にアルファブレンディング
したら背景が透けて見えてしまいますよね?例えば

背景(100%) * 立ち絵1(50%) * 立ち絵2(50%)

と合成をしたら、見える結果は

背景(25%) 立ち絵1(25%) 立ち絵2(50%)

となってしまいます。

吉里吉里等他のノベルツールを見る限り、重なっている部分は透過せず、
重なってない部分は背景が透過するようになっていますが、このようなトランジション
を実現するためにはどうしたらいいのでしょうか?


195 名前:名前は開発中のものです。 mailto:sage [2008/01/29(火) 21:35:15 ID:OdZNDpZD]
ブレンド関数から等式たてて解けよ

196 名前:名前は開発中のものです。 mailto:sage [2008/01/29(火) 23:05:50 ID:UX2s5iVw]
そのブレンド関数を教えてもらえませんでしょうか?どうも条件分岐が
必要な気がするのですが…。

197 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 07:19:58 ID:Lnk072md]
吉里吉里のソースをみて、何とか解決の糸口がつかめそうです。
ありがとうございました。



198 名前:名前は開発中のものです。 mailto:sage [2008/01/30(水) 23:09:26 ID:mjMXPOGW]
合成先のα値を考慮しなくていいのなら、
立ち絵同士を一度作業用ビットマップに半透明アルファ合成したあと、
その結果を背景にアルファ合成するのが一番簡単だと思うよ。
α値を考慮する場合は合成関数が複雑(で低速)になるけど、
素直に背景から順に描画できるから、クロスフェード自体は単純にできる。
フォトショップのレイヤ合成式とかが参考になるかも。
まぁ階層レイヤのサポートとかがないのなら前者でいいと思うが。

ところで、テキストの遅延描画ってどう扱ってる?
今の仕様だと、レイヤへの画像処理は一度内部でキューイングして、
フレーム更新時に一括描画するようになってるんだけど、
ノベルでテキスト描画が30FPSや60FPSじゃちと遅すぎる。
だからといってテキストだけ例外扱いするのも汚いし……。
レイヤへのテキスト描画→親レイヤを更新→画面を更新
というパイプラインを考えていたんだけど。

199 名前:名前は開発中のものです。 mailto:sage [2008/01/31(木) 09:17:24 ID:PW/lMgRs]
>>198
ありがとうございます。難しく考えすぎていたようです。
吉里吉里でも大方そのとおりに処理してました。

>ところで、テキストの遅延描画ってどう扱ってる?
Windowsのテキスト描画APIはよくしらないのですが、グリフのキャッシュ
はしてますか?テキスト描画はかなり時間を食う処理なので、せめて一度
現れたグリフはキャッシュしておかないと(AAを使う場合は特に)遅いです。
そのFPSはいくらなんでも遅すぎるので、おそらくキャッシュせずにいちいち
フォントを描画しているからだと思うのですが…

200 名前:167 mailto:sage [2008/02/21(木) 19:31:37 ID:5b5pMclc]
お久し振りです、ここ最近制作を再会しております(´Д`)
現在はプラグインの作り方を記述中です、今週末までには完成するかと。
一応は目処として、今月末までにVer1.00にする予定です。

abysslib.hp.infoseek.co.jp/index.html

201 名前:167 mailto:sage [2008/02/21(木) 19:33:08 ID:5b5pMclc]
>193
そういう人は結構居るんじゃないかと(私はその一人です)
やっぱり、自分の技術の証となるのは自分で作ったものなわけで。


202 名前:名前は開発中のものです。 mailto:sage [2008/02/21(木) 23:09:59 ID:E3qVPNIm]
どちらにせよある程度の規模のものになると、エンジンを作ることになりますしね。


203 名前:167 mailto:sage [2008/02/22(金) 20:55:09 ID:jh5iaM9E]
プラグインの作り方を含め、当初予定していたヘルプの記述を全て終えました。
パフォーマンスの改善を行った後にVer1.00に上げ、サイト全体も色々と変える予定です。

abysslib.hp.infoseek.co.jp/index.html

204 名前:名前は開発中のものです。 mailto:sage [2008/02/26(火) 09:18:20 ID:WlqAATX2]
楽しみにしてますよ〜

205 名前:167 mailto:sage [2008/02/28(木) 12:15:32 ID:DcPvHY26]
Ver1.00になりました(´Д`)
ヘルプの方も色々と誤字などを修正し細かいところですが書き改めてみました。
サイト全体を変えるのには、もう少しかかりそうです。

・一部ビデオカードで不正終了していた不具合を修正(yaneSDKのバグですが)

abysslib.hp.infoseek.co.jp/index.html

206 名前:167 mailto:sage [2008/03/01(土) 20:03:40 ID:bCAcnPBr]
サイト全体を色々と変えるのには手間がかかります、もう一週間ぐらいはかかりそうです(´Д`)
なので、アンケートでも取ってみます。

現在、AbyssLibのScriptPlayerはyaneSDKを用いて制作しております。
ですが、他のライブラリを用いても制作できるようにAbyssLibは作っております。
ですので他のライブラリでScriptPlayerを作ってみようかと思うのです、オススメのライブラリはありますでしょうか?
DirectXが最多票になってしまう気がしますが、オススメのライブラリをお待ちしておりますm(_ _)m

207 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 01:11:37 ID:L45HwFVi]
どういう意味でのライブラリを求めてるのか知らないけれど、
移植も考えるならSDLとか?



208 名前:167 mailto:sage [2008/03/02(日) 10:50:11 ID:fWG1GsJc]
>207
ゲーム制作に多用されているライブラリを、と考えております。
勿論、AbyssLibはライブラリを使わずDirectX(まあDirectXもライブラリですが)を用いて動作させることも可能です。
個人的には、LunaかSDLかぐらいが有名なゲームで用いられるライブラリかな、と。
まあ、D3DXでぱぱっと作っちゃっても構わないわけですが…ウインドウの初期化処理とかがめんどくさいんですよ、ええ(´Д`)

209 名前:167 mailto:sage [2008/03/02(日) 11:41:14 ID:fWG1GsJc]
そして書き忘れていたので追記を
Ver1.00になった際に、(yaneSDKを用いているScriptPlayerを除き)VC2008での動作を確認しております。
まあ、常識的なコードの書き方をしているから当たり前の話なのですが(´Д`)

210 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 13:13:42 ID:sJ/XLfez]
Irrlicht とかが画面だすのは簡単だたよ。

211 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 16:57:08 ID:3Hl2wphL]
ソース読んでないのですが、yaneSDKにアクセスする部分はラッパーで
包んであるのでしょうか。お疲れ様です。

Irrlichtは私も使ってますが、2D機能が弱くて、追加で2〜3k行程度の2Dライブラリ
を自作しました。
なのであんまりお勧めしません。

212 名前:167 mailto:sage [2008/03/02(日) 18:50:01 ID:fWG1GsJc]
一週間かかると書きましたが、一日で何とかなりました(´Д`)
改装も終了しましたし、これからはサンプルを用意しつつ要望をフィードバックしていこうかと。

現時点での「他のライブラリ」の候補は、DirectX、Luna、SDLあたりで。

>210
ググって調べてみたところ、本格的な3Dライブラリなようですね。
3Dゲームにも使えるということを証明する為に実装を………何だか、勉強が必要な気がします(3Dの)

>211
そうですね、グラフィック機能・サウンド機能・ユーザー入力機能の全てをラッパーで包んであります。
よって、どのライブラリからでも純粋仮想関数を継承し実装する形で利用できるかなと。
まあ、まだ机上の理論なので実際に他のライブラリを使うと不具合が出るかもしれませんが。

213 名前:167 mailto:sage [2008/03/02(日) 19:00:02 ID:fWG1GsJc]
付け忘れていましたので

abysslib.hp.infoseek.co.jp/index.html


214 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 00:22:12 ID:0yLnpI9I]
あの、今自分用の小型エンジンを作ってて、
スクリプトはコンパイル方式を採用しているのですが、
スクリプトの修正&コンパイル後も
セーブデータの互換性を保つ方法ってどんなのがありますか?

具体的な例を挙げると、
 スクリプトをコンパイル&公開 …… 1
 バグ発見のためスクリプトを修正
 修正パッチを公開 …… 2
の1と2の間でセーブデータの互換性を保ちたいのです。

現状では、仮想マシンの作業メモリと実行アドレスを保存することで、
任意の位置でのセーブを実現しています。
ただ、コードに変更がないことを前提にロードしているので、
スクリプトを変更してコンパイルすると、
戻って欲しい位置に復帰してくれないという状況です……。

215 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 00:49:09 ID:8wOrV/Xh]
>>214
>現状では、仮想マシンの作業メモリと実行アドレスを保存することで、
この方式でセーブしている限り無理です。抽象化したセーブデータの構造を
とらないと、この問題に対応するのは難しいです。

216 名前:167 mailto:sage [2008/03/03(月) 02:02:06 ID:0A1OCtBB]
>214
此方と同じ方式ですね、此方はその辺は諦めきっております(´Д`)
諦めるのもひとつの手かと、誤字脱字の修正レベルならセーブデータに互換がありますし。

………答えになっていませんですか、そうですか(;´Д`)

217 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 21:48:13 ID:0yLnpI9I]
なるほど、位置情報でセーブする限りは難しいということですね……。
誤字脱字はさすがに修正できないと困るので、
シナリオはデータベース化してスクリプトから分離しようと思いますが、
商業エンジンとかの演出強化パッチとかってどうやってるんでしょう。。。
一行ごとにユニークなラベルを振るとか……?



218 名前:名前は開発中のものです。 mailto:sage [2008/03/03(月) 23:27:34 ID:EF19HyRy]
ポインタの概念が分かってればそうやろうとは思わんかね?

219 名前:167 mailto:sage [2008/03/05(水) 14:37:22 ID:8GmHp0Qk]
AbyssLibがyaneSDK以外のライブラリでも動作することを証明しようと、
ScriptPlayerをSDLで制作しようとしていましたが………断念しました、すみません(;´Д`)
理由は、SDLの煩雑さに………以下で理由を挙げますと、
・VC2003、VC2005、VC2008での動作を確認する必要がありますが、
 SDL、SDL_main、SDL_ttf、SDL_image、zlib、libpng、libjpegをコンパイルする必要があります。
 おまけにそれらをコンパイルすると、たかがサンプルにDLLがいくつもついてくるわけで………。
・個人的に気に入りません。周辺ライブラリで補えよと言わんばかりのところとか。
 SDL_ttfは内部でサーフェスの確保と解放を繰り返しているようで遅すぎますし。
よってSDLは断念します、また挑戦してみるかもしれませんがDirectXとLunaを優先します。

>217
位置情報でセーブする場合、誤字脱字や引数の修正程度なら影響を与えないかと。
影響を与えるのは、命令の位置を変更する行為(挿入・削除・順番の並び替え)だと思われます。

そもそも、スクリプトを大幅に修正して(大幅に=誤字脱字や引数の変更程度ではないこと)、
それでもセーブデータをそのまま使えるようにというのがおかしい気がします。
たとえば作品AとBがあり、それらは同じノベルツールで作られていたとします。
それらのスクリプトを比較した場合、シナリオ量にもよりますが差異は70%とかになるでしょう(適当)
それらでセーブデータの互換を持たせようとするのは論外ですが、
スクリプトの修正を%で表したとき、1%、2%、3%………どこからがAとBのように違うとプログラムにみなさせるべきでしょうか?

位置情報以外でセーブする場合、たとえば抽象化してセーブする場合、
今度は正常にロードできるかが不安になると思います。
(ありえないぐらい単純にしたたとえばなしですが)セーブ位置の命令と前後の命令を記録するように
した場合、同じパターンがスクリプト内に存在した場合ロード時にそっちになってしまうかもしれません。
当然そこまで間抜けな作りにはしないでしょうけれど、より複雑にしたところでそういったバグが生じる確率は
0%にはできないと思います。より複雑にすると、ロード時間が増えてしまう気もしますし。

220 名前:167 mailto:sage [2008/03/05(水) 14:39:36 ID:8GmHp0Qk]
>218
ポインタでたとえると、スクリプトの修正はメモリを弄る(データの再配置など)に該当すると思います。
ポインタの概要というのは位置情報のセーブと同じでそれではできないような気がします。

以上、思いつくままに書いてみました。間違ってたら申し訳なく(´Д`)

221 名前:214 mailto:sage [2008/03/08(土) 12:20:15 ID:25l4JxkE]
みなさんどうもありがとうございます。

あれからいろいろと発想を変えて考えてみましたところ、
やはりスクリプトを変更可能な形での完全復帰は難しいと言うことで、
逆に、現状のスナップショット的なシリアライゼーションを
システムのサポートから外してしまおう、という結論にたどり着きました。

これにより、スクリプトに実装できるオブジェクトの幅が広がると同時に、
プログラム構造の簡便化が図れるのではないかと思っています。
もちろんセーブ・ロードはゲームに必須の機能なので、
代わりにデータベースファイルへのアクセス用オブジェクトをサポートして、
状態の保存と読み込みを各スクリプトに一任するという形にするつもりです。

とりあえず明日までに実装してみて、駄目そうならまた考えてみます。

222 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 15:51:24 ID:O2hDer12]
>>221
スクリプト側に状態保存を一任とかすると、すごいバグの温床になるよ……(経験者談)

アドベンチャー系のゲームの場合は、発想をまるごとかえて、

・オブジェクトへのプロパティ設定が実際に画面や音声に反映されるのを遅延する仕組み

を作ったうえで、

・任意のシナリオファイルの頭から指定行(再生位置)まで以下の2種の再生ができるプレイヤー
 a. 画面を更新しつつ再生
 b. 画面更新なしでプロパティの設定のみ行い、再生して位置がきたら全オブジェクトの画面を構築

をつくっておけば、どんなに複雑な処理をしてしまっても、セーブ情報としては、

フラグ系+現在のシナリオ+現在の行(テキスト)番号 

だけでよくなる。
ロードするときには該当位置まで一気に内部再生してしまうわけ。
常に前回からのプロパティ差分を記録、とかデータの保持を工夫すれば逆再生も可能。

シナリオをいじると、行が前後する可能性はあるけど、たかだか数行程度なので、
ユーゼの許容範囲内。使えないことに比べると断然よい。

あと、長すぎるとシナリオ末尾のロードにすごく時間がかかるようになってしまうので、
適度にシナリオを切り分けて、その頭では常に全オブジェクトが破棄されたところから開始、
とか工夫する必要はある。フラグ系も常にシナリオの間で処理するようにしておかないと危ない。

一般的な ADVなら、よっぽど変なことをしてない限りは、100kぐらいまでの分量なら2〜3秒
以内に読み飛ばせると思う。

223 名前:167 mailto:sage [2008/03/22(土) 22:31:09 ID:Mh8Q2q/k]
お久し振りです、関数をひとつ追加しVer1.01に格上げしました(´Д`)
現在は、DirectX9を使用したScriptPlayer2を作成中です。
意外と、直接DirectXを弄るのって面倒ですね(´Д`)

224 名前:167 mailto:sage [2008/03/27(木) 21:20:23 ID:AYfrO4G4]
セーブ/ロード画面のバグを修正し、Ver1.02にしました。
また、ScriptPlayerのカラーキーを(0, 0)のRGBから、RGB(0, 255, 0)に変更しました。
他にも細かい変更がありますが、それはサイトの方を見て頂ければと。

abysslib.hp.infoseek.co.jp/index.html

225 名前:167 mailto:sage [2008/04/05(土) 20:03:27 ID:S56PFwNU]
そして誰もい(ら)なくなった(´Д`)
セーブ/ロード/環境設定のバグを修正し、新規に関数を加え、
既存の関数の仕様を修正しVer1.03にしました。スクリプトの仕様も若干変えており、
BasicCommandsがVer1.01になっております。とりあえずこれで暫く据え置いて、
DirectX9.0cで動作するScriptPlayer2の開発を続けます(´・ω・`)
これが完成すれば、3Dゲームにノベルエンジンを乗せるといった
変態的なことが出来るようになる筈です。

abysslib.hp.infoseek.co.jp/index.html

226 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 13:09:02 ID:ZZArlQe5]
>>225
いつか使わせてもらおうかと思っているのでがんば。

227 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 18:07:29 ID:Aw4zSfHm]
>このクラスは単独で利用される事を前提に設計されています
シングルトンは?



228 名前:167 mailto:sage [2008/04/06(日) 21:40:25 ID:KQbfR7n9]
昨日頑張ったので今日はお休みです、Nezが面白いです('='

>226
頑張ります(´・ω・`)
>227
Singletonパターンはポリモーフィズム不可となってしまいます。
NovelPlayerは派生前提のクラスですので、そうしてしまうとまずいのです(´Д`)

………しかし、ググってみるとMonoStateパターンというのがあるのですね。
これなら、派生と唯一の保証が同時にできそうです。次回アップグレード時には変更しておこうと思います。

229 名前:167 mailto:sage [2008/04/24(木) 00:27:18 ID:tTzhnCFW]
ScriptPlayer2を作りつつ、Ver1.04にしました。
変更点は、初期化時に初期化フラグを指定するようになりました。

そして、MonoStateパターンはNovelPlayerクラスには不向きなことが発覚。
よって、唯一であることを設計で保証することはどうにもできなさそうです(´Д`)

abysslib.hp.infoseek.co.jp/index.html

230 名前:167 mailto:sage [2008/05/23(金) 20:30:14 ID:ceSRwxFD]
お久し振りです、現況報告をしておきます。

今現在、引き続きScriptPlayerを作成しております。
グラフィック機能とユーザー入力機能の作成を完了、
現在はサウンド機能を手がけるまえにスクリプトのtext命令における
改行処理を改善しております。

以前のtext命令における改行処理は、文字サイズ×文字数で規定サイズを超えないかを
チェックし、超えていた場合改行を挿入するという形にしておりました。
ですが、これだとプロポーショナルフォントの場合に明らかにおかしなことになってしまいます。
ですので、今はGetGlyphOutlineを利用し一文字一文字のサイズを取って改行処理を行うようにしてます。

………ですがここで問題発生、なぜか一部の文字列で文字が途中で切れるといった現象が発生してしまっています。
数日間原因を追っているものの原因は不明で、さきほどようやくyaneSDK内に原因があることを突き止めました。
これを突き止め、改善した後にスクリプトおよびAbyssLibのバージョンを上げることになります。

231 名前:名前は開発中のものです。 mailto:sage [2008/05/24(土) 13:37:00 ID:2xbvH38B]
Java SEとJava MEでスクリプト互換なADVエンジン作ってる俺もここにいて良い?
java ME版はとりあえず画像・エフェクト・サウンド以外は実装されてるから実機で動くブツがあるんだが。

232 名前:167 mailto:sage [2008/05/24(土) 16:15:18 ID:wIfHDoSg]
>231
一人だけだと寂しいので、是非どうぞ(´Д`)

233 名前:231 mailto:sage [2008/05/27(火) 14:58:53 ID:LVQuf83F]
バイナリとスクリプトだけ持ってきた。
テキスト垂れ流しがループするだけだけど
実機ではw-zero3でのみ動作確認済み。
ttp://sourceforge.jp/projects/lixm/downloads/31287/ayame_test.zip

234 名前:167 mailto:sage [2008/05/31(土) 15:29:52 ID:cDHtMtgR]
>233
落としてみました〜…が、どうすれば動作するのやら(´Д`)
Javaは弄ったことがないので分かりませぬ、教えて頂ければと。

235 名前:167 mailto:sage [2008/05/31(土) 15:40:40 ID:cDHtMtgR]
そしてAbyssLibをVer1.05に、プロポーショナルフォントの問題は原因不明です(;´Д`)
yaneSDK内のバグであるのは明らかなのですが…折を見て精査しようと思います。
とりあえずはScriptPlayer2のSound周りを実装していこうと思います、完成したら
漸くサンプルの製作に取り掛かれますので(´・ω・`)

236 名前:167 mailto:sage [2008/05/31(土) 15:41:16 ID:cDHtMtgR]
いっつも忘れてるなぁ…orz
abysslib.hp.infoseek.co.jp/index.html

237 名前:名前は開発中のものです。 mailto:sage [2008/06/06(金) 09:50:02 ID:oQ0IjW0F]
>>234
PC上で実行するならJDKとWTKインストールしてパス通してjadをダブルクリックで
インストールがエミュレータ上で開始されるからインストールが終わったらメニューから開始。
実機ではMIDP2.0端末なら動くから端末のインストール方法に従う。
BSDで公開してるから再うpおkだからOAPでもいけると思うよ。

ソース?まだ公開しない。



238 名前:167 mailto:sage [2008/06/24(火) 17:33:27 ID:sm4oPcBg]
お久し振りです、漸くScriptPlayer2の完成が見えてきました。
MP3の再生に苦労しておりましたが切り捨てることで解決、実装してもライセンスの問題がありますし…(´Д`)
現在はテスト中です、早ければ明日か明後日にでもアップロードできると思います。
ScriptPlayerやAbyssLibにいくつかバグが見つかったので、それも直してからということで。

ScriptPlayer2の完成で、yaneSDK以外でも動作可能なことが証明されます。
よって、今後はプログラム的な面ではなくサンプル制作に取り掛かろうかと。
で、短いノベルパートでも作ろうと思うのですが…シナリオなんて書いたことありませんorz
何か良い手はありますか?

プログラム的な面では、ScriptPlayer2の強化をしていきたいかなと。
今現在、サウンドはMIDI/WAVE/OGGをサポートしてますが、OGGが非ストリーム再生です。
よってOGGを再生しようとすると、読込でハングアップしているように見えますw
そこをストリーム再生に対応させたいかな、と。

あとは、余裕があったらIDEなんかを作ってみたいですね。
今はスクリプト式ですが、GUIでも作れるようになったら門戸が広がるんじゃないかと。

まあ、何れにせよ組み込み用というニッチな用途なのですがw

abysslib.hp.infoseek.co.jp/index.html

239 名前:167 mailto:sage [2008/06/24(火) 17:36:27 ID:sm4oPcBg]
>>237
ありがとうございます、って携帯端末用なのですかっ!?
凄いですね、でも何だか同じニッチ仲間のかおりがしますw

240 名前:167 mailto:sage [2008/06/24(火) 17:56:55 ID:sm4oPcBg]
ああ、あとScriptPlayerのプロポーショナルフォントについてのバグですが、
調べてもまったく原因が分かりませんorz ですので、修正は後回しにしようかと…。

241 名前:231 mailto:sage [2008/06/25(水) 03:42:36 ID:XEInH/6C]
シナリオ書けるけど書こうか?

242 名前:167 mailto:sage [2008/06/25(水) 22:20:04 ID:IYU4+aQR]
VC2003にてScriptPlayer2の動作テストを完了させました。
というわけで、VC2005、VC2008用でテストを行おうとしたところ…。
SDKの問題にぶち当たりました、DirectMusicが入ってないとか何とか…。
もう本当にマイクロソフトは………。

>>231
宜しければ是非にお願いしたいです。
作品ではなくサンプルですので、お気楽に提供してくださればと。
スクリプトの記述は此方で行いますので、演出効果の指定などあれば嬉しいです。

243 名前:167 mailto:sage [2008/06/27(金) 02:10:02 ID:ir5KQ5HR]
ScriptPlayer2をアップロードし、他色々と細かなことを行いました(詳細は更新履歴を参照してください)

今後の方針は
1.ScriptPlayer2の強化(ストリーミング再生対応)
2.サンプル製作(ADVサンプル、SLGサンプル、STGサンプル)
といった感じで考えております。バグ報告、要望などなど大歓迎です。
さて、それじゃあ寝ます。明日早いのに………λ

abysslib.hp.infoseek.co.jp/index.html

244 名前:231 mailto:sage [2008/06/28(土) 21:19:12 ID:XOIOwuqi]
>>241
おkわかった。
演出指定とフラグ・分岐指定はマなら分かる程度の疑似言語でかいとくよ。
というかうpろだがないのでどこか使える場所を教えてほしい。

245 名前:231 mailto:sage [2008/06/29(日) 17:51:00 ID:I2D0z5Pb]
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0297zip.html

出来たよ。詳しくはunzipして中身読んでくれ。

246 名前:167 mailto:sage [2008/06/29(日) 19:23:41 ID:nXA5Td6M]
今現在、Oggのストリーミング再生に取り組んでいるのですが…DirectSoundが分かりづらいですorz
ネットを漁っても資料があまりなく…ぽつぽつとあったのを見比べながら、手探りで作ることになりそうです。

>>231
ありがとうございます、ダウンロードさせて頂きました!
来週末ぐらいまでには、形にしたいと思いますので〜。

247 名前:名前は開発中のものです。 mailto:sage [2008/06/29(日) 19:36:59 ID:1ldhxsw/]
がんばれちょうがんばれ。



248 名前:名前は開発中のものです。 mailto:sage [2008/06/29(日) 20:01:12 ID:5puWeDo2]
ツールを作ってみたいのですが、どこから手をつけていいのかわかりません。
一応C言語ならわかります。

環境、Visual C++ 2008 EE

249 名前:167 mailto:sage [2008/06/29(日) 20:50:52 ID:nXA5Td6M]
ちょwwwDiablo3www発売までにある程度完成させないと作業放り投げちゃいそうwww
…Oggのストリーミング再生は、とりあえず設計とヘッダだけ完成しました(´・ω・`)
とりあえず、来週末までには何とかできそうです。
それにしてもDirectX Graphicsの本はあってもDirectSoundの本はないのですね、
Soundの方が分かりにくいと思うのに…。

>>248
ゲームを作るにせよツールを作るにせよ、
C++をはじめに勉強するのをオススメします。クラスを覚えたら色々と幸せになれるかと。

250 名前:231 mailto:sage [2008/06/29(日) 21:00:49 ID:GLV8FDV4]
>>246
問題は絵師が居ないことだな。
シナリオはかなり話が荒いが4時間で全て作ったんで勘弁してくれ。

251 名前:167 mailto:sage [2008/06/29(日) 21:49:02 ID:nXA5Td6M]
>>231
絵は著作権フリーのものを漁ってみようかなと。
サンプルなので、寧ろ大仰でない方がありがたいですw

252 名前:167 mailto:sage [2008/07/05(土) 22:03:00 ID:EM8uOWnZ]
ここ最近、調子が良いのか毎週末無駄にレスしてますね(´Д`)
進捗報告です、まずはじめにADVサンプルは手をつけてすらおりませんorz
231さん、本当に申し訳ないです…代わりに、Oggのストリーミング再生は75%ほど完成しております。
デバッグを含め、調子が良ければ明日にはアップロードできるかと。ADVサンプルはそれから手をつけ、来週末までに完成させます。

253 名前:名前は開発中のものです。 mailto:sage [2008/07/05(土) 22:37:39 ID:htOeiExQ]
>>252
IDirectSoundNotifyは挙動が怪しいことは知ってるかな?無駄な心配かもしれないけど。

254 名前:167 mailto:sage [2008/07/06(日) 19:32:31 ID:afX0fIC8]
19時26分現在、設計し直したサウンド周りのテストを行っております(´Д`)
何事もなく無事に終われば、ScriptPlayer2に反映させる予定です………間に合うのかなぁ(´Д`)

>>253
はい、存じておりますよ。
・再生位置がずれる
・停止→再生時にノイズが乗るの二つですね?
前者はサウンドドライバが原因なのでDSBCAPS_LOCSOFTWAREを指定することで、
後者は無音バッファを常に再生することで解決可能らしいです。今現在はそういった実装を行っております。

255 名前:167 mailto:sage [2008/07/07(月) 01:40:12 ID:B1iyMnC8]
………間に合いませんでした(;´Д`)
理由は今の今まで、無音バッファの作成→再生に苦労していたことです。
DirectSoundBufferへの渡し方を間違えており………今、漸く無音バッファの作成と再生に成功しました。
ScriptPlayerへの反映はこれからです、とはい今日は遅いのでもう寝ます。
今週前半にアップロードできればなぁ、と(;´Д`)

256 名前:231 mailto:sage [2008/07/07(月) 03:58:42 ID:QupOJ94Q]
スクリプト化はまだですかいね?

本題だが、もろに続くシナリオで伏線張りまくりなわけだが
ぶっちゃけ続き考えてあるからどうせなら制作速報VIPで一本つくらね?
熱くてロボットなシナリオを用意してますよ。

257 名前:167 mailto:sage [2008/07/07(月) 17:19:28 ID:B1iyMnC8]
とりあえずScriptPlayer2への反映が完了しました。
恐らく、今夜にはストリーミング再生対応版をアップロードできるかと思われます。

>>231
>>252の通り全く手をつけられておりません、すみません(;´Д`)



258 名前:167 mailto:sage [2008/07/07(月) 23:18:25 ID:B1iyMnC8]
強化ScriptPlayer2をアップロードしました。
変更点は、
1.ストリーミング再生に対応
2.対応音声形式からMIDIを除外
です。
MIDIに対応することも可能なのですが、
それを行うとコンパイルするのに過去のSDKから
DirectMusicコンポーネントを持ってこないといけなくなりますので…(´Д`)

ScriptPlayerおよびScriptPlayer2は一段落、
今後はバグフィックスと機能拡張に努めていこうと思います。
1.バグフィックス
2.機能拡張(要望次第で)
3.サンプル制作(シナリオを頂いているADVと要望を頂いているSLGを優先的に、STGなんかも作れればいいかなと)

abysslib.hp.infoseek.co.jp/index.html

259 名前:167 mailto:sage [2008/07/09(水) 14:15:15 ID:3maLZ88e]
今日はお休み〜ヽ(´―`)ノ
というわけで、現在ADVサンプルに手をつけております。
早ければ、今週末にはお見せできるかなと………。

それとScriptPlayer2についてなのですが、
現在完成しており手をつけるとしたらD3DXから離れるぐらいです。
D3DXから離れることで、
・DLL Hell(特にD3DXのは酷い)から逃れられる
・それにより、DirectX 9.0cさえ入っていれば確実に動作する
といった二点が挙げられます。それに対し、
・DirectX 9.0cの最新版さえ入れてれば確実に動作するからいんじゃね?
・D3DXからDrawPrimitiveに移行するのが面倒臭い
・そもそも3Dゲーム作ってるんじゃなし多少遅くてもD3DXでいんじゃね?
・そもそも、ScriptPlayer2自体ライブラリへの組み込みサンプルだし…
といった感じなのですが、ここをご覧の方々はどう思われますでしょうか?

260 名前:167 mailto:sage [2008/07/09(水) 14:23:14 ID:3maLZ88e]
>>231
レスし忘れがありましたので。
ライブラリ・サンプル制作の傍らにとはなりますが、
余裕は割とありますので此方は別に構いませんよ。

261 名前:231 mailto:sage [2008/07/09(水) 14:41:58 ID:Fwq47F32]
>>259
移植性を高めるためにOpenGL/AL使うとか。

>此方は別に構いませんよ。
ロボットものとしてはやっぱりロボット操縦して戦うパートもほしいわけで、
元もと組み込み用途なら理論上できるよね。
誰か3Dアクション作れる人は居ないかね?
ちゃんとやるなら絵師も欲しいし。

262 名前:167 mailto:sage [2008/07/09(水) 16:06:47 ID:3maLZ88e]
>>231
移植は…ライブラリ製作開始時には考えていたのですが、今は考えていないのですよ(;´Д`)
理由は単純に移植性を考えるとWindowsAPIすら使うことができなくなるわけで………。

そうですね、組み込み用途なので理論上可能です(実証はこれからサンプルを作るということで)
3Dは…勉強しなきゃ駄目ですね、ずっと今まで2Dオンリーでしたので。

263 名前:231 mailto:sage [2008/07/09(水) 17:41:31 ID:gE4cMeoC]
じゃあまずはサンプルで上げた部分の完成が先か。

264 名前:167 mailto:sage [2008/07/10(木) 00:10:00 ID:MfiFXGOk]
報告です。
………すみません、今週末までにADVサンプル完成しないかもorz
今までの単体機能テスト的なサンプルとは異なり、こじんまりとしたゲーム製作的なサンプルだと色んな不具合が出ています。
今出ている不具合の解決だけでも、AbyssLibとBasicCommandsのアップグレードが必要になりそうです。
解決策はもう分かっているのですが、問題はマニュアルの修正が………orz
と、とりあえず00だけでもでき次第お披露目しますので(;´Д`)

265 名前:231 mailto:sage [2008/07/10(木) 10:56:36 ID:f30wTD23]
単体テストはパスして統合テストはパスしなかったんですね。わかります。
というか統合テストやった?

266 名前:167 mailto:sage [2008/07/10(木) 17:03:53 ID:MfiFXGOk]
>>231
単体テスト的なサンプルというのは、ひとつひとつの命令をテストするサンプルのことです。
つまり、今までこの命令とこの命令とを組み合わせると…とかをやっていなかったわけで。
そういうのは、実際に作ってみないと露見しないと思うのですよ。

というわけで現在はライブラリを修正中、今日中に全て終わると良いなぁ。

267 名前:167 mailto:sage [2008/07/11(金) 20:09:54 ID:Av6xBhfZ]
報告〜
不具合の修正が完了しました、あとはZipをまとめるのとマニュアルの修正だけ…。
明日朝までには何とかっ…!



268 名前:167 mailto:sage [2008/07/12(土) 01:42:42 ID:ucE3c2Sf]
アップデート完了しました、まだ直したいところは沢山ありますが今はここまでということで(;´Д`)
禁則処理が載ってるページってあるのでしょうか、情報求む………。

269 名前:名前は開発中のものです。 mailto:sage [2008/07/12(土) 08:17:27 ID:ImROmzsK]
KAGのソースコードかfirefoxの禁則処理やってる部分






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<163KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef