1 名前:名前は開発中のものです。 [03/07/31 21:37 ID:L/7S/kPx] ノベルゲームツールを制作中の人達が集うスレです。 新たなノベルツールを作ってやるというチャレンジャー歓迎。 前スレ ▼ノベルゲームツールを作っちゃうぞ!Ver2.0 pc2.2ch.net/test/read.cgi/gamedev/1040118471/ 前々スレ ▼ノベルゲームツール作っちゃうぞ! pc2.2ch.net/test/read.cgi/gamedev/1013170036/
711 名前:691 mailto:sage [2006/09/18(月) 02:45:01 ID:iMJQ2DE5] ああ、休みが終わってしまう members3.jcom.home.ne.jp/jellyjam/p/novel4.zip とりあえず形にはなった…かな? 暇をみて手直ししようっと
712 名前:167 mailto:sage [2006/09/21(木) 21:38:12 ID:EwmQaT2V] >691 私もそろそろ休みが終わりに近付いて参りました(´Д`) プラグインに対応可能にしておこうと、悪戦苦闘中………STLが使えなくなるのは辛いorz
713 名前:691 mailto:sage [2006/09/23(土) 00:46:18 ID:GaUh6ZuC] members3.jcom.home.ne.jp/jellyjam/p/novel5.zip ・文字を一文字づつ表示させる ・コンフィグで文字表示速度変更可能にした(効果薄) ・その他いろいろ最適化? 相変わらず文字描画が遅くてぶちきれそうですよ キーボードのボタン押しっぱなしにして効果をスキップさせるとよく分かる 異常な遅さだ これ以上はもうおれの手に負えない予感がする どうしたらいいのか見当もつかん キリキリなんか文章を早送りしても全然引っかからないのに ほんと一体どうやってるんだ?????
714 名前:名前は開発中のものです。 mailto:sage [2006/09/25(月) 23:42:47 ID:mUEtTpI8] ざっと見ただけだけど、Enterキーを押してから縁付き文字を描画してるよな? 画面切り替わり時とかに画像バッファにできるがぎり縁付き文字を描画しておいて後は転送するだけってのはどう?
715 名前:名前は開発中のものです。 mailto:sage [2006/09/26(火) 01:48:00 ID:uC9Pmxg/] >713 パスカルだからソースは読んでないけど、毎フレーム完全更新してるだろ。 キー待ちで30%、文字が増えるとだんだん増えるとかアリエネー。 Direct3Dでハードウェア使ってるんならともかく、 自前で処理するなら更新量の少ないノベル系は差分更新が基本。 って、Direct3D使ってるのか。 毎フレーム、システムメモリ→ビデオメモリ転送をやってる臭い。 後バックバッファが初期化されてなくて、電脳戦士ポリゴン状態。
716 名前:691 mailto:sage [2006/09/26(火) 23:02:19 ID:5GK4Zf+o] members3.jcom.home.ne.jp/jellyjam/p/novel6.zip ・ループ内ループを少なくして速度アップ&負荷軽減? ・クリック待ちマーク表示 >>714 うん、こんな感じ 0: 文字描画先用にでかいテクスチャを用意する 1: 文字ごとに転送先矩形とα値を持ってて、ループが回るごとにα値を足していく 2: α値が0以上の文字を全て表示 3: 表示中の文字のα値が一定に達すると次の文字を作成する(ここが重い) 4: 文字を全部描画し終わったら一文字づつ表示するのを止めて、でかいテクスチャを一枚表示 > 画面切り替わり時とかにできるがぎり縁付き文字を描画 メインループと文字作成処理を別にするってことだろうか これをやるとなるとシナリオの先読みが出来なくちゃいけないよな 排他処理とかやった事ないんだけど・・・ちょっと考えてみる >>715 うーん、確かに画面全体更新してるけど、転送は気になるほどにはコスト掛かってないんだよな それよりも「文字を作る部分」が致命的に重い >>714 の言うみたいに文字を作るタイミングをどうにかすればどうにかなりそうなんだけど > 後バックバッファが初期化されてなくて ええー、D3DDevice.Clearってやつでしょ 入れてるのに・・・ あ、あとCPU占有は直ってると思ふ 長文超スマソ
717 名前:名前は開発中のものです。 mailto:sage [2006/09/27(水) 01:47:02 ID:Lg5LzC0m] >716 初期色じゃないのか。 でもPresent毎に、画像が表示されていない部分がピンクと緑に交互に点滅する。 Clearの引数が変なのか? あと文字送り時と待ち時で文字の影が微妙に変化してるのが気になる。
718 名前:691 mailto:sage [2006/09/27(水) 05:45:03 ID:OT3HMnk+] おはよーう >>717 > 画像が表示されていない部分がピンクと緑に交互に点滅する。 うーん、もしかしてロゴとタイトルのところかな? フルスクリーン時に確認できたぴょん。 Zバッファが作成されてないのにクリアしようとした?のでうまくいかなかったのかも > あと文字送り時と待ち時で文字の影が微妙に変化してるのが気になる テスト用の画像を読み込んでみたところ、画面描画が斜めに歪んでいるのを確認(´д`;) テクスチャ座標の指定方法がまずかったみたいだ。 丸め誤差かな〜とも思ったけど、座標をそれぞれ-0.5したら直った・・・ような気がする ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=19&vew=325 言われたところを手直ししてみた。 直ってるといいなぁ。 members3.jcom.home.ne.jp/jellyjam/p/novel7.zip みんなありがとう PCは一つしか持ってないので試してくれるとめちゃくちゃ助かる!
719 名前:名前は開発中のものです。 mailto:sage [2006/09/27(水) 14:57:45 ID:Lg5LzC0m] >718 直リン出来たっけ?直ってない ttp://gamdev.org/up/img/7683.jpg
720 名前:691 mailto:sage [2006/09/29(金) 05:50:49 ID:QV+p/gWm] members3.jcom.home.ne.jp/jellyjam/p/novel8.zip ・シナリオファイルにコメントを仕込めるようになった ・ラベルジャンプ実装 ・軽めの禁則処理 ・環境設定を保存/読み込み ・エフェクトスキップ(ただしシステムエフェクト以外。今のところ背景のクロスフェイドのみ。。) ・文字描画をさらに高速化 >>719 (T∀T) なんでClearがうまくいかないんだろう? ポケモソ色になる理由もわからん。。。 普通に D3DDevice.Clear(1, nil, D3DCLEAR_TARGET, $FFFFFFFF, 1.0, 0); ってしてるだけなんだけどなぁ Zバッファもステンシルも作ってないのに何でこれじゃ駄目なんだ? 原因がわからないんで、画面クリアする方法として白いテクスチャを貼るようにした 環境設定の「ソフトウェアクリア」で適用できる かなりの力技だ・・・
721 名前:167 mailto:sage [2006/09/29(金) 08:10:48 ID:7dA9h7AY] DLL対応として、黙々とソースコードを書き換え中。 対した成果にもならないのに、御苦労様と自分を褒めてみやがります(;´Д`) >691 >ポケモソ色になる理由もわからん。。。 一昔前のゲームによく発生した現象ですなぁ、確か同様にDelphi+QuaDで作られたGeoってゲームも発生した筈。 案外、QuaD側の何らかのバグかもしれません。あるいは、ハードウェアとの相性か。
722 名前:名前は開発中のものです。 mailto:sage [2006/09/29(金) 18:06:46 ID:bhyX8J2r] >720 >D3DDevice.Clear(1,?nil,?D3DCLEAR_TARGET,?$FFFFFFFF,?.0,?); 第一引数が0でないなら、 第二引数には正しいD3DRECT配列をセットする必要が。 環境設定を選択したり呼び出そうとしたりすると、強制終了する。
723 名前:691 mailto:sage [2006/09/29(金) 21:55:49 ID:QV+p/gWm] >>721 ライブラリってハード等の内部を知らなくても使えるんだけど、 何か問題があったとき何がいけないのかすら分からず困るって今回実感したっす・・・ これまで報告された不具合は、自分の環境では何ともないのもあるんだけどなぁ ともあれDll対応がんがってください! >>722 > 第二引数には正しいD3DRECT配列をセットする必要が おーそうだったのか早速やってみたよ 強制終了については、恐らく文字描画部分においてロックした範囲外に描きこんでいるか、 もしくは画面転送時のテクスチャ座標の不正だと思う。ここじゃないかと思われるところに手を入れてみた。 もしこれでも駄目なら、アプリケーションのログ(AppLog.txt)が出力されるようになってるので、 そのログに「■ TConfiguration を作成し終わりました」って一文があるかどうか確認お願い致します(´д`;) この一文がなければコンフィグクラスが作成すらされてないようだから問題は文字描画だと思われる。 (テスト用なので余計なファイルを含んでおらず軽いです) members3.jcom.home.ne.jp/jellyjam/p/novel_test.zip
724 名前:名前は開発中のものです。 mailto:sage [2006/09/29(金) 22:05:02 ID:bhyX8J2r] >723 00013: TConfiguration を作成します 00014: ■ TConfiguration が TTitle に割り込みました ■ 00015: 環境設定背景テクスチャ をパターンNo.7に登録しました 00016: TTitle を削除しました 00017: TConfiguration を削除しました 00018: ■■■ アプリケーションは正常に終了しました ■■■
725 名前:691 mailto:sage [2006/09/29(金) 22:24:50 ID:QV+p/gWm] >>724 thx 不具合の該当個所が分かったので見直してみる
726 名前:167 mailto:sage [2006/09/30(土) 01:54:31 ID:CWRN1laE] >691 そこでオススメ、ライブラリの改良ですよ。 ある程度言語に精通していれば、少し位の改良なら可能な筈です。 不具合と思うのなら見つけて修正しちゃいましょう、私もyaneSDKをホイール対応に書き換えましたし。 ただ、注意すべき事としてはライブラリの改良に夢中になって制作が進まなくなってしまうかもしれません。 経験者は語る、ですよ。アハハハハハ('A`)………orz
727 名前:691 mailto:sage [2006/10/01(日) 04:52:48 ID:dnondVMz] わっかんねー クリッピングは適正に行われている。不正な範囲への描画はしてないはずなんだ。 そもそもそれが強制終了の理由ならおれのマシンでも落ちてるだろうしなー そうすると文字描画以前の問題、「そもそもテクスチャが作成できていない」ことも考えられる もしくは・・・何らかの理由で画像が失われているとか? >>724 さんへ 誠に申し訳ないのですが、さらに詳細なログを吐くものを用意しました 根本的に直ってないと思われますので ”必ず” 落ちると思いますが、試してみてはいただけないでしょうか? 前回のログを見る限り、メモリにゴミは残していないと思われますので、その点では安心ですね(ぉ members3.jcom.home.ne.jp/jellyjam/p/novel_test.zip
728 名前:691 mailto:sage [2006/10/01(日) 05:03:16 ID:dnondVMz] >>726 ウヘヘ QDいろいろ書き換えてますよ デフォルトだと起動時に自動的にウィンドウモードで起動してしまい、 その後、再度適正なサイズでフォームを初期化しなおさなければならないのでフォームがちらつくんですよね それがイヤなんで、強制初期化をしないようにしてあります ともあれライブラリ無しじゃおれのような日曜プログラマがゲーム作るなんて考えられませんね こんなものがタダで手に入るんですからスバらしい世の中になったものです(しみじみ
729 名前:名前は開発中のものです。 mailto:sage [2006/10/02(月) 01:29:09 ID:UlsNOh/C] 00013: TConfiguration を作成します 00014: ■ TConfiguration が TTitle に割り込みました ■ 00015: 環境設定背景テクスチャ をパターンNo.7に登録しました 00016: 文字属性をセットしました 00017: 数字用のをテクスチャを作成しました (256, 32) 00018: 文字0の描画を行います 00019: LockedRect(6, 0, 19, 23) 00020: 文字0の描画が終わりました 00021: 数字テクスチャ をパターンNo.8に登録しました (略 00056: 文字9の描画が終わりました 00057: 数字テクスチャ をパターンNo.17に登録しました 00058: ボタン ■ゲームに戻る をセットしました 00059: ■タイトルに戻るテクスチャを作成しました (256, 32) 00060: TTitle を削除しました 00061: TConfiguration を削除しました 00062: ■■■ アプリケーションは正常に終了しました ■■■
730 名前:691 mailto:sage [2006/10/02(月) 06:52:30 ID:SjsAmGkd] >>729 うおおおおおお 超ありがとう おかげで原因を特定できたと思う!! 選択肢も実装できたんで今夜にでもあぷするね
731 名前:691 mailto:sage [2006/10/03(火) 06:32:43 ID:VF5p6dxQ] ohayo- members3.jcom.home.ne.jp/jellyjam/p/novel9.zip ・リターンキーの押しっぱなしを禁止にした ・スキップはコントロールキーで行うようにした ・選択肢を作れるようにした ・ファイル間のラベルジャンプを可能にした ・フレームレートを60に戻した(描画処理は2フレームに一回) ・ゲーム中にF2を押すとタイトルに戻れるようにした ・文字のオーバーサンプリング品質を2x2から4x4にした 強制終了の原因は文字描画じゃなくて、テクスチャをクリアする部分だった そこで範囲エラーが出てたみたい 見当違いのところを見直してたんだから見つからないわけだ(´Д`;) これで駄目だったらおれは首を吊ってお詫びするしかないだぜ?
732 名前:名前は開発中のものです。 mailto:sage [2006/10/03(火) 23:33:39 ID:o1GE8YJf] >731 ソフトウェアクリアにチェックが入っていると、 ロゴからタイトル、タイトルからスタート、の画面切り替わりの一瞬、ピンク(or緑)が出る。 チェックを外してあると問題ない。
733 名前:691 mailto:sage [2006/10/04(水) 23:14:32 ID:kQAZxApl] >>732 おk、サクッと直したぜ つか>>722 で教えてもらったClearがしっかり機能してるみたいだから、 もうソフトウェアクリアは要らないな バックログ用のスクロールバーを作ってるんだけど、 ログのページ数によってツマミの大きさが変化するようにしたいなぁ そうすると、ただツマミの画像を用意するだけじゃ駄目だから、結構骨が折れる・・・ ちょっと商用ゲームの体験版行脚してくる ≡┌| ∵|┘
734 名前:167 mailto:sage [2006/10/05(木) 00:48:01 ID:GiAiv8xj] >691 進んでいるようで羨ましい限りです、頑張って下さい(´Д`) こっちは、string→char[]→mystr(自作文字列コンテナ)………全然、進んでる気がしませんorz STLがDLL←→EXE間で使えればこんな苦労もせずに済むのですがorz
735 名前:名前は開発中のものです。 mailto:sage [2006/10/05(木) 01:09:37 ID:Rdmm7845] 自作文字列コンテナとか作ってないでDLL、EXE間は普通にchar*で受け渡しすればいいんじゃないの?
736 名前:167 mailto:sage [2006/10/05(木) 08:08:52 ID:GiAiv8xj] >735 関数間のやりとりは勿論それで構わないのですが、 問題は構造体としてデータをやりとりする時なのです(´Д`) そういう時にはchar[]では足りず、とはいえ互換性やメモリ関係でSTLは使えずorz という事で、急遽stringと関数名で互換性を持つ自作文字コンテナを作っていたりします。 (c_strとsize、コピーコンストラクタと代入演算子程度なので難しくはありませんが) で、その変更に伴ってコードのあちこちを弄繰り回しているワケで…どちらかというと、そっちの方に時間がかかっているワケです。
737 名前:名前は開発中のものです。 mailto:sage [2006/10/05(木) 10:10:15 ID:XYVQ+Y1d] えーと、それはコンパイラが替わるとすぐ使えなくなる糞プラグイン仕様ですか?
738 名前:167 mailto:sage [2006/10/05(木) 18:00:25 ID:GiAiv8xj] >737 どうでしょう、あるいはそうかもしれません(´Д`) 現状ではSTLをDLL←→EXE間で使わず、データの受け渡しは関数あるいは構造体で行うようにしています。 そしてその構造体は私が定義したもの以外はほとんど使っていません(今調べてみたら、HWNDとRECT位です) また、アラインメントもソースコード側で設定するようにしています。 しかし、クラスや構造体のメモリ配置が異なるコンパイラ間で一致しているという保証は無いっぽいです。 よって、現状では異なるコンパイラでプラグインが作成できるという保証はありません(´Д`) (ただ、COMとかの事を考えるとWindowsの標準的なコンパイラ(VC、BCC)はメモリ配置が一致してるっぽいです) (実際のところ、テストしてみなければ真偽は分からないのですが) つまるところ、あらゆるコンパイラに対応といった形式は取らない可能性が高いです。 BCCとVCだけに対応してたら良いかな〜、といういい加減かつお気楽思考で。 というか、構造体のメモリ配置すら一致していなければハンドルの受け渡しも出来ないんですが…。 という事で、現状は糞一歩手前プラグイン仕様(仮)です(´Д`)
739 名前:名前は開発中のものです。 mailto:sage [2006/10/05(木) 18:31:29 ID:WFfOZN/r] 吉里吉里のプラグイン機構がなかなか無理矢理で参考になるかもしれない
740 名前:167 mailto:sage [2006/10/05(木) 19:02:45 ID:GiAiv8xj] >739 めっちゃソースコード多いですね、全部読んでたら人生終わりそうです(´Д`) とりあえず、プラグイン関係を見させてもらいます。情報提供、ありがとうです(´Д`)
741 名前:691 mailto:sage [2006/10/07(土) 08:59:03 ID:wJ08v4YK] members3.jcom.home.ne.jp/jellyjam/p/novel10.zip ・バックログできたかも(詳しくはRead Me参照 ・文字表示速度がいんちき臭かったので見直した ・ソフトウェアクリア廃止 ・一部のシステム用画像を常に保持するようにした というわけで以前に比べてメモリ喰います。 といってもビビるほど占有したりしないですが・・・。 バックログの文字描画スピードが気がかりだったんだけど、 最適化を繰り返したおかげか、何とか実用に耐えるぐらいにはなってると思ふ。 CPUパワーによっては重く感じるかもしれないんで、ちょっと試してみてくれませんか。
742 名前:名前は開発中のものです。 mailto:sage [2006/10/10(火) 01:14:00 ID:VVRIseRt] Youその調子でスクリプトじゃなくてGUI化汁!
743 名前:691 mailto:sage [2006/10/11(水) 00:29:21 ID:szAi/qJj] ---------ここからチラ裏 現状報告および開発メモとか愚痴とか 1:ずっと気になっていた文字列の左端が切れる原因がわかった! 縁の幅を考慮してなかったからみたいだぜ members3.jcom.home.ne.jp/jellyjam/img/text.png 2:MMXによるピクセル操作について 8バイトづつ処理しようとしたらループ内の命令が多くなって逆に遅くなった(´Д`;) 3:LockRect市ね 今までテクスチャ全体をロックしてたんだけど、それよりも必要な矩形だけを ロックしたほうが速くなるんじゃなかろうかと考えて実践してみた つまりちょっとした描画ついてもその都度LockRectを呼ぶ事になるわけだが、これがまた逆に重い… なるべくLockRectを呼ぶ回数を減らすようにしたほうが速いのかも 4:ビットマップのパレットがわかんないんです(><) ここまでチラ裏-------------- >>742 すみませんよくわかんないです(><)
744 名前:167 mailto:sage [2006/10/11(水) 12:58:19 ID:v5NKuri3] abyss-21.hp.infoseek.co.jp/Release.zip アップデートしました、し か し 変 更 点 は あ り ま せ ん ( ; ´ Д ` ) 内部仕様を大幅に変更しただけです、しかしこの変更のおかげでプラグインが実装できたかも? 二三日以内に、サンプルのプラグインを作成してうp出来るかもしれません(´・ω・`)
745 名前:167 mailto:sage [2006/10/11(水) 13:04:40 ID:v5NKuri3] 追記 >743 GUI化は専用のエディタを作らなければなりなせんよ、よってスクリプトを先に作るべきかと。 たとえば、Text "発言者名", "内容";という命令があった場合、 Text→発言者名と内容を入力→スクリプトをアプリケーション側が記述といった感じでしょうか。 簡単に言えばホームページ作成ソフトと同じですね、HTMLを弄らなくてもノベルゲームが作れるというか。
746 名前:名前は開発中のものです。 mailto:sage [2006/10/11(水) 13:09:20 ID:9Q/4jY+z] 高機能版Yuuki!を目指しちゃいなYO!
747 名前:691 mailto:sage [2006/10/12(木) 00:23:32 ID:m2DwlIiA] members3.jcom.home.ne.jp/jellyjam/p/novel11.zip (音なし) ・文字色・フチ色を自由に変更できるようにした ・ホイールの回転で読み進められるようにした ・文字キャッシュの検索方法を変更して高速化? 速度アップのためにいろいろやってみたけど、速くなったんだかなってないんだか・・・ 特にメッセージスキップはもっと速くなって欲すぃなぁ 現状を文字で表すなら「ぅおおおおおお・・・・!」だとして、 希望としては「ぅふぬぉおおおおおぉぉぉぉぉお・・・・・!!」ぐらいにはなって欲しい >>745 エディタかぁ ゲームよりそういうのを作るほうが好き( ´,_ゝ`) >>746 同じDelphi製ということで、実は密かに目標・・・というか参考にしてたりして エディタがユニークだと思う
748 名前:691 mailto:sage [2006/10/12(木) 04:29:15 ID:m2DwlIiA] members3.jcom.home.ne.jp/jellyjam/p/novel12.zip すまん、高速化のいい方法を思いついたので上げなおしだ メッセージスキップがスーパー速くなったかも試練 あと句読点ウェイト入れてみたよ つーか寝てねーんだよ! 今日も仕事あqswでrftgyふじこlpあzsxdcf うわあああああああああああああああああああああ
749 名前:名前は開発中のものです。 mailto:sage [2006/10/12(木) 22:55:03 ID:4adqTnrf] 大学生の俺は暇組み、更に学祭中という神イベント発生中。
750 名前:名前は開発中のものです。 mailto:sage [2006/10/12(木) 22:56:06 ID:4adqTnrf] はい日本語おかしいですね orz こんな俺は地方駅弁orzorz
751 名前:名前は開発中のものです。 mailto:sage [2006/10/13(金) 19:50:48 ID:DxADPv/2] 時代は私大だ、国立なんて話にならん。
752 名前:691 mailto:sage [2006/10/13(金) 20:39:29 ID:YV5yxr+U] 流れに逆らってすまんが ゲーム部分に構造的欠陥がみっかったので一部作り直すことにした。 結果として実行速度を落とさず、且つ処理量を大幅に削減することができた。 超すごいぜおれ! こんな感じ members3.jcom.home.ne.jp/jellyjam/img/text_test1.png フチを太くしてみたり members3.jcom.home.ne.jp/jellyjam/img/text_test2.png 文字間隔を変えてみたり members3.jcom.home.ne.jp/jellyjam/img/text_test3.png そんな超すごいおれからみんなに質問があるんだけど・・ 吉里吉里にルール画像を使ったトランジションってあるけど、あれどういうふうにやってるんだろう? ルール画像を参考にして単純にα値を加算していくのかと思ったんだけど、ルール画像を調べてみると RGB(0, 0, 0)のピクセルがあるんだよぅ このピクセルは加算していっても意味ないよねぇ
753 名前:167 mailto:sage [2006/10/13(金) 22:20:01 ID:0R6SaG7C] >691 おめでとうございます!…とも言ってられませんなぁorz 私も頑張りませんと(´・ω・`) 下記の話ですが、私もよく分かりません(´Д`) ただ、トランジションの種類にもよるかと思われます。 ・最終的に、「完全」に入れ替わる場合 ・一部混合された状態が、「完全」である場合 恐らく上がトランジションの効果だと思われますが、その場合は誤魔化しているのではないかと。 具体的には、α(α値)×a(比例定数)+1みたいな。いや、想像なので答えにならないかもしれませんが。
754 名前:名前は開発中のものです。 mailto:sage [2006/10/13(金) 23:36:08 ID:XAQthbNe] ソース見てないから判らないけど alpha = min(max(a + t,0),255) a : ルールアルファ t : -255 → 255 こんな感じじゃないの。 Direct3Dでやるのは難しかったような気がする。
755 名前:名前は開発中のものです。 mailto:sage [2006/10/14(土) 02:49:19 ID:QHMCKQ0j] 普通にPixelshaderかな
756 名前:名前は開発中のものです。 mailto:sage [2006/10/14(土) 08:38:07 ID:wDIV82eQ] >755 ノベルの動作環境にピクセルシェーダを要求なんて、今現在のところギャグじゃね? マルチテクスチャでSetTextureStageStateを弄ればなんとかなりそう? もしくはRenderTargetなテクスチャを使ったマルチパスでも可能なのかな?
757 名前:名前は開発中のものです。 mailto:sage [2006/10/14(土) 09:59:35 ID:Tkny+AqF] www.nhk.or.jp/strl/tvml/japanese/player2/index.html このくらいはやってくれよ
758 名前:691 mailto:sage [2006/10/14(土) 13:23:33 ID:7hCa6/d9] おおーすげーレスついてる >>753-754 > α(α値)×a(比例定数)+1 > alpha = min(max(a + t,0),255) ふーむなるほど こんなのよく思いつくなぁ >>755-756 初めて目にする単語ばかりで頭がクラクラしたけど、最期の力を振り絞って調べてみたよ ピクセルシェーダって、また別にスクリプト書かなくちゃいけないのか・・・ アセンブラみたいだけどこれまた難しそうだなあ あと実行環境に縛りがあるみたいだね マルチテクスチャについては、特にここを読んでみた ttp://platz.jp/~moal/mtexture.html ああ、えーと? 何が書いてあるのかすら分からないんですが日本語の再勉強からはじめた方がいいでしょうか うー、この両者はおれにとってはまだ敷居が高そうです とりあえずPascal+MMXでゴリゴリ書いてみて、それで速度が出ないようなら試してみますー フレーム毎に全画面書き換えするのが怖くもあるけど、操作するのはαだけだから それほどクリティカルな速度遅延にはならないはず、と勝手に楽観してます >>757 ttp://gedo-style.net/g/?v=273092&d=d.jpg
759 名前:名前は開発中のものです。 mailto:sage [2006/10/14(土) 14:31:31 ID:tsJdaQzl] >>754 >Direct3Dでやるのは難しかったような気がする。 これはギャグのつもりか? 普通にalphaテストで出来るよ。
760 名前:691 mailto:sage [2006/10/14(土) 16:47:20 ID:7hCa6/d9] members3.jcom.home.ne.jp/jellyjam/p/novel13.zip うーんできちゃったかもしれん テクスチャのαチャンネルをクリアあるいは$FFにするためにMMX使ったけど、それ以外はPascal直打ちー それでも"そこそこ"速度は出てるみたいだ 最適化したらもう少しだけ速くなるかも? ゲーム中、4回トランジションを行っており、 効果終了までそれぞれ 100, 60, 120, 140 フレームを要するようになってる 命令について詳細は Scenarioフォルダ参照のこと コントロールキーでメッセージスキップさせちゃうと効果もスキップしちゃうので注意だぜ ところでZソートがおかしいらしく、文字の描画順がヘンな事に気付いた まったく、次から次へと問題が見つかるなぁ
761 名前:691 mailto:sage [2006/10/14(土) 17:36:27 ID:7hCa6/d9] ゲェェーッ文字のα値の計算がおかしい! 一日に何回もすまん、ちょっと修正した 上のリンクに上げ直したよ
762 名前:名前は開発中のものです。 mailto:sage [2006/10/14(土) 20:59:33 ID:NApT4IfZ] alphatestじゃ滑らかじゃないからヤダヤダ
763 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 00:20:45 ID:H7M4nsmQ] >759 これの一番下こと? ttp://www.platz.or.jp/%7Emoal/colorkey.html アルファテストだと描くか描かないかの二択だから、 クロスフェード的な切り替えは出来ないんじゃ? って意味か>762 書いてて解った。 >760 例によって強制終了。 最初の _BgDraw Transition を _BgDraw CrossFade にかえると、 最初のBGを表示するところまで延命するけど文字が出る前に死。 ついでに環境設定も死。
764 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 00:35:43 ID:H7M4nsmQ] >760 ついでに思いつき。 毎回書き換えなくても、 一度ルールアルファを絵に書き込んだのなら、 あとはD3DTSS_ALPHAOPのD3DTOP_ADDとD3DTOP_SUBTRACTで、 頂点カラーの操作だけで出来そうな。
765 名前:691 mailto:sage [2006/10/15(日) 01:06:29 ID:ZmNwMkpc] 一撃死キタ─────(゚皿゚)────────!!!! もしかしたら LockRect の D3DLOCK_DISCARD が悪さをしてるのかもしれん! いやきっとそうに違いない!そうだったらいいな しかし該当する部分で書き換えたのはそこぐらいだものな D3DLOCK_DISCARD フラグを0にしたテスト版です 例によってログを吐きつつ実行しているので、動作がもっさりするかもしれません うごけ〜うごぉけぇえ〜 members3.jcom.home.ne.jp/jellyjam/p/novel_test.zip > D3DTSS_ALPHAOPのD3DTOP_ADDとD3DTOP_SUBTRACT さっそく調べてみます
766 名前:691 mailto:sage [2006/10/15(日) 02:35:05 ID:ZmNwMkpc] >>764 SetTextureStageState(0, d3d8.D3DTSS_ALPHAARG1, Dword(D3DTA_TEXTURE)); SetTextureStageState(0, d3d8.D3DTSS_ALPHAARG2, Dword(D3DTA_DIFFUSE)); SetTextureStageState(0, d3d8.D3DTSS_ALPHAOP, Dword(D3DTOP_ADD)); を設定しつつ頂点色を 0x0〜0xFF へインクリメントしてみた。実行速度は確かに速い! でも最初にルールのα値をそのまま書き込んじゃうと、白いところが最初から白くなっちゃう(´д`;) (当たり前だ!) でもこれ、なんかすごくおしいような気がするぜ もうちょっと研究してみるか
767 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 02:37:25 ID:H7M4nsmQ] 環境設定とトラジ未使用で生存。 1: C:\Work\novel_test\imgs\Bg1.bmp を読み込みました 2: ルール画像 C:\Work\novel_test\imgs\左回り.bmp を読み込みました 3: 背景の描画方法はルール画像によるトランジションが選択されました 4: テクスチャのαチャンネルを塗り潰します...
768 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 02:41:11 ID:H7M4nsmQ] >766 前半はSUBTRACTの255->0で
769 名前:691 mailto:sage [2006/10/15(日) 03:54:36 ID:ZmNwMkpc] members3.jcom.home.ne.jp/jellyjam/p/novel_test.zip >>768 でけたー!さいこー トランジションは直ったかもしれない ループ内でアンロックしてた・・・ なんでおれのPCはこれで動くんだ? おまえどれだけ頑強なのかと問い詰めたわけだが 環境設定は何がいけないのかわからん・・・ もうちょっと見直しが必要だ
770 名前:691 mailto:sage [2006/10/15(日) 09:18:55 ID:ZmNwMkpc] みんな落ち着いて聞いてほしい おれもだいぶ落ち着いてきた さっき友達からグラボ借りてきてドライバ入れたらWindowsがおかしくなった そしてOS再起動したら 作 業 し て い た H D D が ぶ っ 壊 れ た BIOSでも認識しないし電源を入れるとカラカラ音がしてシュゥウウウ・・・っていう OS入れなおしてみたけどだめだった。なぜかDVD-ROMまで応答しなくなった なんだこれ おれがなにをしたっていうんだよ最悪だ なんでよりによってこのタイミングでこのドライブなんだよ 各種パスワードも2chのログも全部消えたのか 眠くなってきたよパトラッシュ・・・
771 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 09:53:53 ID:yU568J+m] 今は、おやすみ
772 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 10:19:33 ID:TsWQJW5K] 766,768のやり方は軽くていいんだけどその代わり吉里吉里でいうvague値が使えないから トランジション用のテクスチャをUSAGE_DYNAMICで作って CPUでアルファ値を書き換えるってやり方もそのうち試してみてもいいと思うよ と流れを読まずに下記子
773 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 10:51:53 ID:TsWQJW5K] ついでにSUBTRACTは古いグラボで対応してないのがあった気がするんで 機会があったら調べてみるのもいいかもね と流r
774 名前:691 mailto:sage [2006/10/15(日) 13:25:52 ID:ZmNwMkpc] あーもうあったまきた 見てろよこうなったらサーバに残ってたソース使って絶対完成させてやるからな! ただし明日からな! >>773 実はおれもその話が気になってた D3DTSS_ALPHAOPを使ったものと、環境依存のないPascalを使ったものの二種類を用意しておけば問題ないかもな
775 名前:名前は開発中のものです。 mailto:sage [2006/10/15(日) 19:31:36 ID:H7M4nsmQ] ご愁傷様です。 これに懲りずに頑張れ。 ついでに、これに懲りてバックアップ多めに。 >773 SUBTRACTが駄目でも、MODULATEを使えばそれなりに見せられないかな。 >772 これか。 ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Trans.html 確かに今のやり方だとvagueが最大?で固定されてしまうのかな。 うーん思いつかない。
776 名前:691 mailto:sage [2006/10/17(火) 21:43:49 ID:HTib+2UI] おいすー およそ>>760 程度にまで復旧できたぜ! 高速スキップ、トランジション、文字色変更、バックログ、ホイール操作、文字キャッシュ検索高速化など。 つーかカスタマイズしたライブラリまで消えちゃって、これを作り直すのに時間を割いたわけだが(´д`;) まったくおれの集中力と粘り強さには毎度まいど驚嘆させられるよな とはいえメッセージスキップから復帰すると100%落ちる(!)のでまだうpできねーです・・・ 一回作ったんだから何とかなりそうなものだけどなかなかうまくいかないなぁ >>775 そのページ読んでみたけどvagueって面白いパラメータだね αを計算するとき、しきい値を考慮すればできるかな? うーむ、境界がガクガクになりそうな予感・・・
777 名前:691 mailto:sage [2006/10/21(土) 04:53:57 ID:D3IMVVB2] members3.jcom.home.ne.jp/jellyjam/p/novel14.zip ・ウィンドウ位置を保存できるようにした ・トランジションの実行方法をPascalとDirect3Dの二種類から選べるようにした ・ループ内ループをさらに減らして最適化 負荷ちょっとだけ減りました。スキップ速度はこのくらいあればいいよね? あー、次は変数と条件分岐か・・・
778 名前:名前は開発中のものです。 mailto:sage [2006/10/21(土) 08:49:29 ID:5+bS6DmJ] >>691 「指定されたファイルが見つかりません。」ですた……
779 名前:691 mailto:sage [2006/10/21(土) 12:47:23 ID:D3IMVVB2] >>778 (; ・`д・´) 檄スマソ拡張子間違ってた! なんかJ-COM垢の機嫌が悪いみたいであっぷろーどできなくなっちゃたから、 ゲムデブにご協力いただくことにしますた ttp://gamdev.org/up/img/7904.zip ついでといっちゃあなんだが タイトルに戻るとき、音を全部消すようにできてなかったので直しといた
780 名前:167 mailto:sage [2006/10/21(土) 20:24:51 ID:veRCNjBt] 御久し振りで御座います(´Д`) 私は現在、プログラマが死後に堕ちるであろうリファクタリング地獄の三丁目に居りますorz 何時終わるのやら………誰かボスケテ(;´Д`) 一応、次回更新時には ・自動改行 ・Z座標の実装 ・プラグイン仕様の完全実装 を目標に出来たら良いなとか思ってみたりもしないでもないです。
781 名前:名前は開発中のものです。 [2006/10/22(日) 05:29:18 ID:0GnJFT5M] 良スレage
782 名前:名前は開発中のものです。 mailto:sage [2006/10/23(月) 23:15:09 ID:phivSpR5] >>779 いいですな〜。 軽快に動いてます。 トランジションも良い感じ。 作ってみたいという気になりますた。
783 名前:691 mailto:sage [2006/10/24(火) 06:22:55 ID:z/n6rwSL] >>782 おお〜ありがとう 感想をいただけると張り合いが出るなぁ このところ仕事が大変でなかなか進まないけど、今後ともこのスレともどもよろしく願いますよ(←偉そう if文のオペランドのとり方に少し迷ってるよ これまでの命令文の書式を踏まえるなら _if (Hoge=0), *labelname ってな感じだろうけど、分岐でラベルジャンプしかできないのはなんかかっこわるいよな 条件式のあとに好きな命令を複数入れられたらいいんだろうけど… _if (Hoge=0) then _Color $FFFFFF _Goto *labelname _endif; とか。 でもこれじゃパーサかコンパイラ作るのと同じじゃねとか思ったりして あくまで「ノベルツール」の本分を忘れないようにしないといけないよな
784 名前:名前は開発中のものです。 mailto:sage [2006/10/27(金) 10:41:03 ID:c6GTcHI3] どっちが見やすい・理解しやすいかは プログラマーとプログラマーでない人では感覚が全然違うかんね 難しいところだね ガンガレ
785 名前:691 mailto:sage [2006/10/29(日) 21:14:45 ID:uPpqMaj3] あんま進んでねぇーーー members3.jcom.home.ne.jp/jellyjam/p/novel15.zip ・リンカ(選択肢)のの色を動的に変更できるようにした( !LinkerColor !LinkerEdgeColor ) ・タイムウェイト( !TW )の挙動を直した 以前からタイムウェイトの挙動が気になってたんでこの際直しといた ちなみに0〜255までの数値を指定できるぜよ 今回もエラーチェックは甘めなので、添付のソース書き換えるにしても 変な座標とか数値とか指定すると簡単に落ちると思ふ 条件分岐? なにそれ( ´∀`) 条件式で凝ったことやろうと思うとけっこう大変なんだこれが
786 名前:名前は開発中のものです。 mailto:sage [2006/10/31(火) 22:38:08 ID:sRR/DbRF] 空気読まずスマソm(__)m スキャナー選びでもの凄い悩んでんだけどお勧めのスキャナーない?
787 名前:名前は開発中のものです。 mailto:sage [2006/11/01(水) 18:27:31 ID:VwaCyLKm] スキャナはA4までだと辛いよ
788 名前:名前は開発中のものです。 mailto:sage [2006/11/01(水) 18:59:30 ID:hxUT5DqW] ってことは結構高め?
789 名前:名前は開発中のものです。 mailto:sage [2006/11/01(水) 22:07:04 ID:p3enbp+j] >>785 おまえ元クロヒツジもとい元マグロ漁船のぬだろwwwwwwwwwwwwwwwww
790 名前:691 mailto:sage [2006/11/01(水) 22:16:11 ID:xDE8tosI] いまのとこ ・ゲーム中、テキストの表示・非表示を切り替えることができるようにした ・文字列型 と 32bit符号付数値型 、真偽値型の変数を使えるようにした うpはもう少し煮詰めてからにしよう。 変数の宣言・代入について。 現状、代入は即値のみ・オペランドによって変数の型を自動的に判断するようになってる。 例えば !var hoge, 255 //これは数値型 !var hoge, -255 //これも数値型 !var hoge, 'UNKO' //これは文字列型 !var hoge, True //これは真偽値型 とか。今後都合が悪くなるようなら仕様変更もありえるな。(←無計画すぎ! ちなみに数値型はオーバーフロー・アンダーフローが起きないように注意して使うのが必須条件さね。 考えることが多くてそこまで面倒見切れん。 if文の条件式、即値ならすぐできるんだけどなぁ !if (Hoge<255) //これなら簡単 !if (Hoge<255) and ((not Hage) or Unko) xor (Hige='ABCDE') //こんなのどうやったらいのか・・・ 逆ポーランド法とか応用したらできるかなぁ 以上、現状報告でした!
791 名前:691 mailto:sage [2006/11/01(水) 22:24:45 ID:xDE8tosI] >>789 ( `∀´)ケケケなんのことやら おいらはただの数字コテですぜ
792 名前:名前は開発中のものです。 [2006/11/01(水) 23:27:39 ID:3J8+zwro] >790 !if( Foo<>0 ) and ( 1000/Foo
793 名前:名前は開発中のものです。 mailto:sage [2006/11/01(水) 23:28:49 ID:3J8+zwro] 書きかけで送ってしまった。 >790 !if( Foo<>0 ) and ( 1000/Foo > 5 ) then... とかだとRPNだとアカンよ、
794 名前:691 mailto:sage [2006/11/02(木) 22:13:42 ID:Dhql3Jxs] >>793 むむ? なんでなんで? kwsk divide by 0 とかは関係ないよね
795 名前:名前は開発中のものです。 mailto:sage [2006/11/02(木) 23:08:39 ID:C7j+kj57] そのとおり、0除算が出るから。 常識的にはFooが0の時には( Foo<>0 )が成立しないので後が何であろうとも全体として不成立になるはず。 しかし、RPN処理の場合は正格評価になるので( 1000/Foo > 5 )を必ず評価してしまうことになる。 (Foo 0 <> 1000 Foo / 5 > and あたりになるかな?) これは望ましい状態とは言いがたい。 なお、notとxorは正格評価で問題ない。
796 名前:167 mailto:sage [2006/11/03(金) 10:28:34 ID:MzOzsI/Z] >795 横レスですが、成る程、参考になります(´Д`) とはいえ、RPNの便利さは捨てられませんが………orz
797 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 11:49:55 ID:GIcTFPfW] おまけ:いくつかのスクリプト/プログラミング言語でのANDの評価(ORも同様)。 C/C++ && 短絡 *1 java && 短絡 VB And 正格 AndAlso 短絡 delphi and 短絡 scheme and 短絡 perl &&,and 短絡 TJS2 && 短絡 NScripter *2 *1 C++で演算子オーバロードした時は正格 *2 なし:式を扱えない
798 名前:691 mailto:sage [2006/11/03(金) 20:02:48 ID:LiNNIOVd] >>795 すごくよくわかった。795タンは物知りだなぁ(*´∀`*) それと>>797 を見る限り、短絡評価のほうが誤解がなくてよさそうだね うーん、どうしたらいいんだろう (a) Foo 0 <> 1000 Foo / 5 > and (a-1) Foo 0 <> (a-2) 1000 Foo / 5 > (a-3) <a-1> <a-2> and (a)をこういうブロックに大別して…、普通に上から順に式を評価していくだろ? 評価の過程で divide by 0 が出そうだと判明したら、 実際の計算はせず、「そのままだとエラーが出そうだ」という情報だけを記憶しておく。 んで(a-3)にきたら、まず<a-1>をみて、偽なら<a-2>の評価は無視して全体の評価として「偽」を返す。 <a-1>が真の場合、続いて<a-2>の評価を見るわけだが、「エラーが出そうだ情報」を記憶しているときは これ以上続けるわけにもいかんので、これまでの作業をすべて放擲して if 文を抜ける、とか。 なんだ・・・おれは何を書いているんだ?わけわかんなくなってきt ここまで↓作ってはしゃいでたら(-2*-5)とかの単項演算子が使えないことに気づいたorz members3.jcom.home.ne.jp/jellyjam/img/RPN.png 付け足していくより最初からやり直したほうがはやそうだ… また明日か…
799 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 20:44:41 ID:GIcTFPfW] >798 こんなんはどう? RPN作る/処理するのが面倒になるけど。 A and B A #dup not #ifskip<N> #pop B #marker<N> A or B A #dup #ifskip<N> #pop B #marker<N> #dup スタックの一番上を複製する #pop スタックの一番上を捨てる #ifskip<N> スタックの一番上を取り出し、 trueなら#marker<N>まで読み飛ばす falseならそのまま続行 #marker<N> 読み飛ばされる ※入れ子になる場合があるのでNが重複しないよう気をつけること。 A and B and C A #dup not #ifskip<N1> #pop B #dup not #ifskip<N2> #pop C #marker<N2> #marker<N1> ( Foo<>0 ) and ( 1000/Foo > 5 ) Foo 0 <> #dup not #ifskip<0> #pop 1000 Foo / 5 > #marker<0> 三項演算子もできるかな A?B:C A #ifskip<N1> C #ifskip<N2> #marker<N1> B #marker<N2>
800 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 22:23:23 ID:GIcTFPfW] >798 > members3.jcom.home.ne.jp/jellyjam/img/RPN.png (25*Hage/24)が 25 Hage 24 / *、つまり/が*より優先になってる(or 右結合になってる)けどOKなの?
801 名前:167 mailto:sage [2006/11/03(金) 23:12:17 ID:MzOzsI/Z] 複雑なRPNですね一度基盤を(自力で)作り上げたのに、今から組み直すのはぞっとします(;´Д`) とりあえず、今はVer1.0を目指して頑張っていこうかなと。作業が八割方終了したので、近々新Ver出せそうです(´Д`)
802 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 23:15:24 ID:LErpqGYA] 【スクリプトをちょっと紹介させてください】 アドベンチャーゲーム用スクリプトシステム「MICoスクリプト」を開発しました。 軽いこと&商用ゲームでの使用可能な高性能を目指して設計しており 複雑な演出も簡単に作れるシステムです。 詳しい紹介は公開サイトにありますので、よろしければ使ってみてください。 公開サイト ttp://mico.x0.com
803 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 23:37:17 ID:pcqCA54V] ダウンロードできません
804 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 00:20:08 ID:s0zwtZjj] URLに¥をつけるなんて、相当●●だなぁ。大丈夫か?>>802 ttp://mico.x0.com/files/MICo100c.zip ttp://mico.x0.com/files/Sample01.zip
805 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 12:59:51 ID:zX4Hlg4d] ぬはDelphiなんだよな。のらだいこさんとこのやつは見たのか?
806 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 14:03:18 ID:uWIJc3Ba] のらだいこ本人乙。
807 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 20:39:01 ID:zX4Hlg4d] 俺は違うぜwwwwwww通りすがりのVIPPERwwwwwwwww
808 名前:名前は開発中のものです。 mailto:sage [2006/11/05(日) 14:24:28 ID:bBy3ooVM] 再び空気読まずスマソ ペンタって何インチぐらいがいい?
809 名前:691 mailto:sage [2006/11/06(月) 06:03:55 ID:/PkNNPJx] オハヨー members3.jcom.home.ne.jp/jellyjam/p/parser.zip ここ↓のを参考にして、Delphi に移植してみた。これはすごい! ttp://www.h4.dion.ne.jp/~zero1341/winback2.htm 実際の計算は行わず、中置記法を逆ポーランド記法に返還するだけのものだ。 ↑に倣って、式が変だったりするとエラーを出力するようになってるはず。 ちなみに演算子の優先順位は以下の通り。Delphi と一緒やね。 優先順位は括弧を使って変更できるよ。 1 位(最高) not,-(単項演算子、RPN 上では neg に変換される) 2 位 *,/,mod,and 3 位 +,-,or,xor 4 位(最低) =,<>,<,>,<=,>= しかし式が複雑になるほど変換するコストが気になるなぁ 果たしてループ内でストレスなく機能してくれるだろうか? インタプリタの限界はどこだ。
810 名前:691 mailto:sage [2006/11/06(月) 06:47:54 ID:/PkNNPJx] >>799 んー、難しい! これ、not はどこに掛かってるの? だめだ、仕事終わってからまた考えよう。 >>800 あと右結合、直ってると思いますぜよ >>801 ガンガレ。超ガンガレ >>805 情報thxですよ。こんな便利なものがあるとは知らなかった。 んでも、今やってることってそれほど難しいことじゃないから、まずは自分で作ってみたいんだよね。 などと大見栄を切ってみるテスト。もう後には引けないぜ? >>808 わかんないけど33インチぐらいでいいんじゃね ttp://www.pentaputter.com/products/index.html
811 名前:名前は開発中のものです。 [2006/11/06(月) 07:07:41 ID:WD4G+Tat] >810 A and B → A #dup not #ifskip<N> #pop B #marker<N> を例にする(A,Bは真偽値を返すRPN式)。 []はスタック状態(左がスタックトップ)、 //以降はコメント。 ●Aがtrueの時 [] A #dup not #ifskip<N> #pop B #marker<N> [true] #dup not #ifskip<N> #pop B #marker<N> [true,true] not #ifskip<N> #pop B #marker<N> [false,true] #ifskip<N> #pop B #marker<N> //偽だったので読み飛ばしは無し [true] #pop B #marker<N> //結果はBのみで決まるのでAは要らない [] B #marker<N> [B] #marker<N> //マーカは読み飛ばす [B] (END)