「TTD (Tonyu 3Dライブラリ)」トップへ
|
[Ver0.11]
Tonyu1用のサンプルのみ(あまり整備していない)
Tonyu2用のサンプルは後日22-12-05 02:30 by
マッキー
|
|
[ver0.10 T2]
Tonyu2にてきとうに移植してみた残骸があったので、アップしてみました。
[操作]
↑↓キー:前後移動
←→キー:左右回転(Y軸回転)
AZキー:上下移動
SXキー:上下回転(X軸回転)
DFキー:傾き回転(Z軸回転)
QWキー:ズーム
1キー:はみ出したポリゴン修正ON,OFF
3キー:マルチ画面ON,OFF
スペースキー:ポリゴン、ワイヤーフレーム、点のどれかに描画切り替え21-04-29 02:05 by
マッキー
|
|
[ver0.10]
・バグ防止機能の追加
・システムの構造を大幅に変更
コメントで話題になったあのバグをついに解消しました!!
またしばらく作る機会が少なくなるので、今の状態で公開することにした。
これもまだ試作品です。
とりあえず、サンプルの「最初の世界」をやって、ver0.03と比較してみてください。
古いPCでも安定して動くと思います。
数字キーを押すと、ver0.10の新機能のオン・オフができます。
1キー:処理スキップ機能
2キー:はみ出し修正機能
3キー:点滅軽減機能
4キー:CPU負担軽減機能(これはTonyu 1.26の機能)
処理スキップ・はみ出し修正・点滅軽減の3つの機能をオフ(数字を0)にすると
ver0.03と同じ状態になります。
ちなみにFPSは59,60くらいになるように設定しました。
処理が重くなったわけではありません。
あと、新規に3Dを作ることもできます。
MyChar.tonyuに作り方が書いてあるので、それなりの3Dが作れると思います。
作り方は説明不足ではありますが、興味があったら自分のオリジナルの3Dを作ってみてください。
(S_3D,S_P,S_DR,S_Zのプログラムを見なくても作れるようになっています)11-08-23 02:04 by
マッキー
|
|
[ver 0.03b]
ドライブモード修正。
ver 0.03のコメントに修正版をアップすることにした。
ver 0.03のコメントで、ダウンロードしてください。10-01-11 04:21 by
マッキー
|
|
[ver 0.03]完成!
[ver 0.03a]修正!
[ver 0.03b]修正!
<改良点>
・処理速度アップ
・ジョイスティックをサポート(左アナログ対応)(Jキーで使用可)(10ボタン式なら、フルサポート)
・ドライブモードの仕様を変更
・操作方法を表示
・表示/非表示切替可能(Pキー)
・描画方法は、C→Aに変更(最近のパソコンはAのほうが処理早いのが多い)
(描画方法を試して、早いほうに設定してください)
ちらつき修正機能付きのは、今回はやめました。
このバージョンが、一番処理が速かったからです。
次のバージョンでは、処理が重くなることが予想される!
本当に早いかな? 感想お願いします。
ジョイスティックも試してみてください!
ちなみに、マップ自体はあまり変わってないです。
いや、全く変わってないはず!
ちらつき修正バージョンは、できるかわかりません。
(8月に完成できなかったみたいに・・・)
それができたら、公式なサンプルを作ります。10-01-09 04:08 by
マッキー
|
|
プレイさせてもらいました
tonyuで3Dを再現することは
ロマンがあっていいんですけど
僕にはどこから取り組めばいいのかわからず
アップロードセンター時代から
皆さんの3D活動を見守っていました
戦闘機モード素晴らしいです(・∀・)イイ!!
完成、お疲れさまです10-01-09 04:51 by
羊
|
|
ありがとうございます。
確かに、Tonyuで3Dは難しいので、ロマンといえばロマンかもしれません!!
一応、サンプルなのですが、まだ試作段階なので、
他の人にもわかりやすいプログラムは、書いてません。
将来的には、できるだけ皆さんにわかりやすくプログラムを書いて、
サンプルとして、成り立たせる予定です。
それまで、首を長くしてお待ちください!10-01-09 12:44 by
マッキー
|
|
ver0.02を新たにダウンロードしました。
そして、Windows XP SP3のディスプレイアダプタ「Intel(R) G45/G43 Express Chipset」でやると...
か、軽い!FPSとFPS2ともに63出てました。ほとんどちらつきもないです。
戦闘機モードの旋回も軽く、前回のWindows Meとは大違いでした。
ハードの性能によって描画能力に差が出たのでしょうか?10-01-08 11:22 by
S.Percentage
|
|
ハードの性能が良くなると、描画速度は上がるのは、ほぼ確実だと思います。
でも、ちらつきはハードの性能は関係ない気がします。
どんなに、CPUやグラフィックボードなどの、ハードの性能が悪くても、
描画速度が遅いだけだと思います。
ちらつきは、OSやDirectXのバージョン、
つまりソフトが、原因だと自分ではそう思ってます。
(ちゃんと試してないのでわからない)
たぶん、プログラムで何とかすれば、ちらつかなくなると思ってます。
原因は、多角形(setPolygon命令・drawPolygon命令)を広く表示しすぎるからだと思います。
広すぎると、表示されなくなる環境と、そのまま表示される環境がありました。
平面が、画面外からはみ出したときに、画面端で止めるとうまくいくはずです。
今は、3次元をほったらかしにしてます。
ちらつき修正機能をON・OFFできますが、まだ、ちらつき修正機能は表示がおかしいです。
今度は、OFFにしても表示がおかしくなるようになりました。
たぶん、プログラムを大きく変えたので、その時にミスしたかもしれません。
描画速度は、さらに速くなりました。(重い計算を繰り返してる部分があったので取り除いた)
近いうちに、OFFの時のバグを直したのを、アップする予定です。
ONの時のバグを直したのは、まだ先の話になりそうです。10-01-08 18:09 by
マッキー
|
|
描画速度は、ソフト(DirectXとTonyu)の実行効率と、CPUのクロック数とビデオ(グラフィック)カードの処理速度で決まります。
つまり、CPUが古すぎて、クロックが500MHzを切っていても(つまり1命令20ナノ秒)、ソフトが速い動作をしていて、グラフィックカードが250MHzくらいの早さで描画すれば、総合的には速くなるわけです。
ちらつきは、画面を消したり書いたりするせいで起こっている現象です。
C言語でDirectXを使うことができるライブラリに、DxLibがありますが、
あれはちらつき防止のために、「裏画面」というバッファを使っています。
描画順序は、
裏画面をクリア
↓
すべてのオブジェクトを裏画面へ描く
↓
裏画面を表画面(ディスプレイ)へ転送
です。
Tonyuの描画方法はわかりませんが、オブジェクトがupdateを実行したときに書き換えるので、結果的にグラフィックカードの速度がTonyuの実行速度を超えている、または、ほとんど同じなら、ちらつきが起こるわけです。
裏画面を使えば、すべてを裏画面へ描いた上で表画面をすべて裏画面の画素に変えるので、表画面の画素がなくなることは(まず)ないと思うので、ちらつきは起こらないわけです。
ゲームの実行速度は、ソフトだけでなく、ハードにも影響しているということです。
CPUが500MHzでもオブジェクト150個(仮定)でFPSが62ということはまずないはずです。10-01-09 10:32 by
S.Percentage
|
|
すみません。今まで、ちらつきといってきましたが、
もしかしたら、これはちらつきではない気がします。
移動中に、平面がバグって違う座標に、一時的に描画してしまって、
移動してるので、それが直ったり、バグったりの繰返しをしてます。
それで、ちらついて見えたわけです。
なので、カメラの位置によってバグが起きて、違う座標に描画してしまったということです。
実際、2000だと、止まっている状態でShiftを2回押した場所に行くと、常に描画がおかしい場所がありました。
常におかしいので、ちらついてません。
98でもちらつきませんでした。98はさらに表示のおかしい場所がありました。
その様子が、添付ファイルの画像です。(OSによって必ずこのようになるのかは、わからない)
今まで、ちらつきと言ってきたのは、実はカメラの場所でおかしくなるところがあったということです。
画面を見る限り、「処理速度が遅くてまだ中途半端にしか描画されてないのが、表示されてる」気がしません。
明らかに、おかしい場所に描画してるのです。10-01-09 12:31 by
マッキー
|
|
車や山を近づいて斜めから見ると上下左右にちらつきがおきて時々中が見えます。
車とか山を中から見たときはちらつきはおきませんでした。
豆乳でこんなこと出来るのがすごい!
後、戦闘機モードが面白い09-07-30 15:14 by
renf
|
|
感想・ちらつき報告ありがとうございます。
やっぱり、ちらつく環境は多いようですね。(ちらつかないところもある)
ちらつき方も、少しだったり、ひどかったりしますし。
今のところ、ちらつかないようにするための、「バグ修正あり」モードをつけてるところです。
まだできてはいませんが、実験では、「戦闘機モード」で旋回する時に、いきなり重たくなったりしました。
ちなみに、「バグ修正なし」の方は、前のバージョンより軽くなりました。
平面の表示数を減らしたわけではないので、見た目は変わってません。
重たい計算を少なくしたので、格段と速くなったはず。
とりあえず、「バグ修正あり」が完成したら、
8月頃には、できればアップする予定です。
それができれば、もっと使いやすいサンプル(ここから、すぐ3Dゲームが作れるぞ!って感じの)
を作る予定です。
>戦闘機モードが面白い
結構がんばった所なので、そういわれると嬉しいです。09-07-30 23:36 by
マッキー
|
|
Winodws Meでやるとエラーが発生してWindowsが飛んでいってしまいます。
描きすぎ注意?09-07-01 19:15 by
S.Percentage
|
|
すみません。
こちらに、Windows Meがないので、確かめられませんが、
どんなエラーがでたのか、教えてくださるとありがたいのですが。
できれば、エラー時の画面を送ってくれると、わかるかもしれません。
下のゲームでも、エラーがでるようでしたら、教えてください。
http://hoge1e3.sakura.ne.jp/tonyu/project/pages/viewProject.cgi?mainkey=92&
http://hoge1e3.sakura.ne.jp/tonyu/project/pages/viewProject.cgi?mainkey=226&
http://hoge1e3.sakura.ne.jp/tonyu/project/pages/viewProject.cgi?mainkey=353&
>Windowsが飛んでいってしまいます。
Windowsが止まるということでしょうか?
このゲームで、必ずなりますか?
こちらでは、平面がちらつくのは、確認できました。
でも、エラーは特にでてないので、なんかの命令が環境によって使えないのかもしれません。
上のゲームでも、エラーが出たら、たぶん、setPolygon・fillPolygonがエラーの原因かもしれない。
いろいろと、エラーの多いゲームになってしまいました。すみません。09-07-02 00:20 by
マッキー
|
|
自分もMeですがエラーは出ませんでした(´ω`)
あとFPSは4、FPS2は17くらいです。
とりあえず報告(09-07-02 14:36 by
ぐりーんげーむ。
|
|
返事ありがとうございます。
同じMeでも、エラーがでたりでなかったりしますか…。
OSではなく、DirectXとか、その他の環境に問題がありそうですね。
>FPS4、FSP217
重たそうですね。車とか出したからかな?
でもその分、電柱減らしてるから、±0だと思ってた。
確かに、オブジェクトが80個以上あるし、1つの面あたりの計算も多いので、
重くなりやすいです。
Tonyuでは、あまりにも凝った、フルポリゴンゲームは、できなさそうですね。
でも、回転の計算を省くと、結構速くなります。
XZ YZ XYの3つの回転ができますが、1つでも省くと早くなります。
例えば、XY回転(傾き回転)を省くと、戦闘機モードなどで傾けなくなりますが、FPSがあがったりします。09-07-02 17:18 by
マッキー
|
|
そうですね、VistaやXPでもエラーは起こるかもしれませんし起こらないかもしれません。
個人的には凝った3Dを作ってから、軽量化していけば良いと思っています^^;
まずはちらつきを直してから。
自分もこれに影響をうけて2.5次元もどき気味ゲームを作っているのですが…
さっそく行き詰まっています(
お互い頑張りましょ(´・ω・`;)09-07-02 17:26 by
ぐりーんげーむ。
|
|
Ver0.01では必ずなります。というか長くやっていると「Playerが原因でDBIENG.DLL(らしきDLL)にエラーが発生しました。Playerは終了します。」
というメッセージが出てきます。
次のバージョンではしばらくやっているとマウスカーソルは動くのに画面は止まっています。
スタートメニューも出ない、Playerは終了しない、Ctrl+Alt+Deleteも出来ない、という状況です。09-07-03 15:13 by
S.Percentage
|
|
>スタートメニューも出ない、Playerは終了しない、Ctrl+Alt+Deleteも出来ない
僕も、98を使ってたとき、Tonyuでよく起きてました。
MIDI音楽がなろうとした瞬間、たまに画面が止まり、同じようなことが起きました。
そして、毎回電源ボタンで終了してました。
Triangle Ld.さんのところで、他のTonyuのゲームでフリーズは起きませんか?
あと、MIDIでフリーズしませんか?
9x系(95 98 Me)は、不安定だと聞きます。(フリーズしやすい)
2000にしてから、フリーズが起きなくなりました。
まあ、この場合は、Tonyuをよくするか、違うパソコンでやるかですね。
こちらで、対応するのは難しいかもしれません。すみません。09-07-03 16:19 by
マッキー
|
|
Meと同じ系統の、Windows98で、やってみました。
そしたら、こんなんじゃゲームどころではない感じでした。
たぶん、Meでもこんな感じだと思いますが、
平面のちらつきが半端じゃなく、かなりぐじゃぐじゃになっていました。
そして、Triangle Ld.さんのいったとおり、フリーズしてしまいました。
何かこのゲーム、OSに依存しまくってるみたいです。
XP,Vistaは、まったくちらつきなし。
これを見る限り、プログラムのせいでちらついていないと思います。
2000は、ややちらつきぎみ。
98は、ちらつきすぎ、フリーズしたりする。
とりあえず、Triangle Ld.さんの環境でも、動くようにがんばりたいと思います。
98で動けば、Meでも動くと思うので。(来月くらいになりますが)09-07-21 17:23 by
マッキー
|
|
それぞれのOSを、別々のPCで扱っていませんか?
98→vistaの間に、それを搭載しているPCの能力も桁違いに変化しています。
特にグラフィックボードの性能は直接描画に響きます。得意不得意もあるようで、
私のPCでは3Dがスイスイなのに半透明処理が出たとたんハングアップします。
directXが入っていれば、dxdiagなどで情報を得られますので、比較してみるのも面白いかもしれません。09-07-23 15:27 by
NaN
|
|
返事遅れてすみません。
PCは違うものを使ってました。
OS以外にも、問題があるということですね。(OSは問題あるのかわからないが)
dxdiagで、いろいろ見てみました。
グラフィックボードのことは、書いていませんでした。
ディスプレイのところに書いてるのかな?
ディスプレイも、いろいろ違ってました。
DirectXのバージョンも、違ったので、それも関係あるかもしれません。
Tonyuは、DirectXを使っているので、関係あるかなと思いました。
まあ、とりあえずバグの原因がわかっているので、いっておきます。
わからない人は読まなくていいです。
バグの原因は、ポリゴンの描画位置に関係します。
setPolygon関数で、点の座標を設定できますが、
ある2点間の距離が、大きくなると
正しく表示されません。
例えば、
setPolygon(0,-10000000,-10000000);
setPolygon(1,-10000000, 10000000);
setPolygon(2, 10000000, 10000000);
setPolygon(3, 10000000,-10000000);
fillPolygon(0,0,4,255,-1);
これだと、画面が赤く表示されますが、
setPolygon(0,-100000000,-10000000);
setPolygon(1,-100000000, 10000000);
setPolygon(2, 100000000, 10000000);
setPolygon(3, 100000000,-10000000);
fillPolygon(0,0,4,255,-1);
これだと、僕のWindows2000では、表示されなくなりました。
これが、ちらつきの原因だと思います。
わかりづらい説明ですみません。
他の人も、表示できるかどうか確かめてみてください。09-07-27 15:17 by
マッキー
|
|
[ver 0.02]
車っぽいものと、飛行機っぽいものを、追加。
Shiftで、特定の位置に瞬間移動。
Enterで、リセットできるようにした。
Q Wで、望遠鏡の拡大縮小みたいのができるようになった。
ウィンドウの大きさは、マウスで変えられる。
FPS FPS2の表示。
FPSは、描画回数。
FPS2は、処理回数。
ちらつきは、まだ直ってない。09-06-29 00:45 by
マッキー
|
|
[ver 0.01]
久しぶりに、3Dを作ってみました。
3Dのサンプルです。使いたい人は、使ってみてください。
サンプルなので、コメントの添付ファイルとして、アップします。
緑、道路、山、湖、島、雲、電柱などがあります。
処理が重くならないように、ほとんどのものは、カクカクに作っています。
操作は、
スペースで、移動モードを切り替えます。
「座標移動」「荷車移動」「プレステ移動」「戦闘機モード」「ドライブモード」があります。
後は、
方向キー・AZSXDFCVキーで、いろいろ動かせます。
(戦闘機モードがおすすめ。途中でどこいったのか、わらなくなるので注意)
Vistaでは、平面がちらつきませんが、他のだとちらつくかもしれません。
DirectXのバージョンとか関係あるんでしょうか?
【プログラム関連】
あとは、このプログラムを理解できれば、サンプルとして使えると思います。
【ヒント】
OO:DXスプライトオブジェクト
OL:線オブジェクト
OH:平面オブジェクト
S:設定や、カメラ移動
あと、BISSさんの、実数対応型三角関数を使わせていただきました。
ありがとうございます。
プログラム内では、
sin(); → $sc.ssin();
cos(); → $sc.scos();
で、サイン・コサインが精密になりました。
普通のサイン・コサインは
sin(12.34); → sin(12);と、小数に対応してませんが、
$sc.ssin(12.34);は、小数に対応しているので、精密です。
$scbの値を、大きくすると、より精密になります。
表示の前後(zOrder)は、ちゃんとできてません。09-06-20 01:26 by
マッキー
|
|
ちゃんと3Dの動きをしてました、Meでもサクサクでした。
ただ時々(というか結構)画面がちらついたのはまだこれから、という感じですね。
ひっそり応援してます。(・ω・`)09-06-28 10:38 by
ぐりーんげーむ。
|
|
応援ありがとうございます。
>Meでもサクサクでした。
そんなに軽かったですか?こっちでは、FPSは25前後でした。
>画面がちらついた
こっちでも、頻繁にちらつきました。(Win2000)
ただ、XPやVistaだと、ちらつかないみたいです。(なぜか)
自分のところで、ちらつかないようにすれば、とりあえず大丈夫だと思うので、
改善しておきます。09-06-29 00:16 by
マッキー
|
|
「TTD (Tonyu 3Dライブラリ)」トップへ
|