トピック
V.D. 5962-63214-97513

3Dグラフィック

3Dグラフィック(ゼルダの伝説とかXenobladeXみたいな描画)ってプチコンではどうやってすればいいのですか?教えてください
1そうだね
プレイ済み
返信[1]
親投稿
SilverBlue Corei72630QM
A.理論上可能だが、コンパイラを介すため処理が遅くなり、どうしようもない。
4そうだね
プレイ済み
返信[2]
親投稿
kirarin 2015-manato
地道にプログラムの事を勉強すれば、不可能じゃない?
1そうだね
プレイ済み
返信[3]
親投稿
V.D. 5962-63214-97513
でも秒速60フレームぐらいで出来る3Dグラフィックをプチコンで見ちゃったからなー… そこまでリアルじゃなかったけど
0そうだね
プレイ済み
返信[4]
親投稿
FPSがヤバくなりそう ポリゴン天国
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
3D表示のライブラリを用意します。(自分で作るか誰かが作ったのを使う) 自キャラも敵キャラも少ないポリゴン数で構成すれば十分に可能です。 単純に計算をしてみましょう。 現状だとNew 3DSで動作するプチコン3号でも最大で1秒間に15000ポリゴン程度の描画が限界です。 当たり判定等で半分以下の速度になると仮定して実効で最大6000ポリゴン/秒程度。 60fpsのゲームならば1画面で使えるポリゴン数は最大で100程度です。 30fpsで妥協しても最大200ポリゴン程度です。 背景オブジェクトとキャラにポリゴン数を2:1で割り振ったとしてキャラに使えるのは最大66ポリゴン程度。 自キャラと敵キャラ1体ずつ表示するとなれば1キャラあたり最大33ポリゴン程度。 机上の空論ですが、立方体1つで12ポリゴン必要なので1キャラあたり立方体2つで構成すれば何とか可能という感じですね
2そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
プチコンmkIIで私が作ったポリゴン表示プログラムだと(mkIIではGTRI命令もスプライト変形もできなかったため)最大300ポリゴン/秒しか表示できませんでした。 私が適当にモデリングした1体152ポリゴンのアンドアジェネシス(モデリングソフトを作るのが面倒だったので脳内でモデリングして直接データをプチコンに打ち込んでいった)は表示だけでも2fpsしか出ずポリゴンゲームはどう考えても不可能でした。 ポリゴンを使用した3Dレースゲームも試作しましたが速度が出ずにあきらめました。 しかし、プチコン3号ならばうまく工夫すれば十分に可能だと思います。(実際にbugtaroさんがポリゴンシューティングゲームを作ってるし) ぜひ、頑張って作ってみてください。 諦めたらそこで試合終了ですよ。
2そうだね
プレイ済み
返信[7]
親投稿
SilverBlue Corei72630QM
↑ゼノブレイドやゼルダの伝説レベルのグラフィックはほぼ無理って意味でいったんですがそれは
1そうだね
プレイ済み
返信[8]
親投稿
((調べても聞いてもなんでGTRIでポリゴン描画できるのか今だにわからない俺って))
0そうだね
プレイ済み
返信[9]
親投稿
SilverBlue Corei72630QM
台形を描画するとき、複雑な形はGFILLではできないし、GLINE+GPAINTよりもGTRIの方が楽で高効率だから。
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
3D表現というのはうえこうさんも書いていますが、近くのものは大きく、遠くのものは小さく表示するというだけのことです。 これには様々な方法がありますが、一般的なポリゴンやワイヤーフレームで多く使われているのは透視投影によるものです。 端的に言えば3Dモデルの頂点のX座標、Y座標を距離Zで割ればいいだけです。単純にZで割るわけにはいかずカメラを置く位置によって変わってくるし、カメラが上や下に傾いていればそれを回転させる必要があります。これには回転行列を使います。3Dモデルも回転させた場合にも回転行列を使います。
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
しかし、カメラが水平を向いていてモデルを回転させてない状態であれば回転行列は不要となりカメラとモデルの中心までのZ座標の差が距離となります。 とはいえ、これを単に割っただけでは画面の左上が表示の中心となってしまう(プチコン3号の座標0,0が左上であるため)し、大きさも小さすぎ(もしくは、大きすぎ)になってしまうため画角を設定する必要があります。これには三角関数が必要です。 三角関数を使わなくても画面の中心座標になるように表示X座標に200、表示Y座標に120を足して適当な倍率で掛ければ良いです。(適当な倍率というのが分からないという場合に画角から三角関数を求めれば良いというだけ)
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
これで、3Dモデルの頂点は画面上に点として表示が可能です。これを線で繋げばワイヤーフレームとなります。 ポリゴン表示を行う場合にはこれを面で表示する必要があります。 ポリゴンは基本的に三角形が最小単位となるためそれで表示を行います。 ちなみにポリゴンが三角形なのはそれが最も単純な図形だからです。 三角形が描画できればそれを2つ使えば四角形、2つ使えば五角形が表示可能です。 また三角形4つで三角錐、三角形12個で四角柱(立方体、直方体を含む)が表示可能です。
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
ただし、この表示の順番は考えないと奥の面が手前に表示されたりするため一般的な3DハードウェアはZバッファによって表示が可能です。 これをプチコン3号でソフト的に再現するのは処理速度の面で厳しいためZソートを使うのがオススメです。 ポリゴンに陰影(シェーディング)を行いたい場合には光源を設定してそしてベクトルを使って求めます。 これで陰影表示付きのポリゴン表示ができます。 まともに解説したらそれこそ初歩的な内容だけでも本1冊分となるためかなり割愛しました。 「プチコン ポリゴン」等で検索すればより具体的な解説が見つかると思います。
0そうだね
プレイ済み
返信[14]
親投稿
V.D. 5962-63214-97513
3Dグラフィック、思ったより簡単かもしれないです。多分
1そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
実際にやってみたら意外に簡単にできた という場合もあるため「難しそうだから」と言ってやらないより「出来るかも知れない」と思ってやってみることの方が遙かに良いです。 それでたとえできなくても良い経験になると思います。
0そうだね
プレイ済み
返信[16]
親投稿
V.D. 5962-63214-97513
とりあえずやってみます。 ありがとうございました。
1そうだね
プレイ済み