プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
森04
開発中の森簡易モデル
箱形(板ポリ5枚)で作成した森簡易モデル。パフォーマンスは良いが、カメラの角度によっては板ポリであることがバレてしまう。



◎お詫び

ブログの更新をしばらく滞らせてしまいました。更新をお待ち頂いた方々、どうもすみません。

実は病気やトラブルなどではなく、「大戦略Web」というオンラインゲームにはまってました(爆)

オープンベータテスト期間が12/8迄ということで、焦ってやり込んでいたのですが、問題があってテスト期間が大幅延長されました。私個人のプレイも一段落したので、今後はゲーム制作活動に集中します。



◎多彩な森

今回は森モデルを作成します。しかし森ってどんな風に作れば良いのでしょうか?

森の写真/イラスト/ポリゴンなどをネットで手当たり次第に見ていくと、植物の構成/映像表現/製作方法など実に多種多様で際限がなく、漠然と探しても混乱するばかりです。

とりあえず「リアルさよりもパフォーマンス優先」という方針は決まっているので、まずはシンプルな森を作成し、それでダメなら「何がダメなのか?」を考えていきましょう。



◎箱型の森

森は、兵士が隠れて「伏兵」出来るように、奥行きを持たせる必要があります。そうなると板ポリゴンやビルボードでは難しいので、簡易モデルを作ります。

しかし木を一本一本表示するとパフォーマンスが悪くなるので、なるべく森全体で1つのモデルにしたいですね。そう考えると、一番シンプルな基本モデルは箱型です。というわけで、森の写真を加工して箱型に貼り付けてみました。

森01

…思いっきり不自然ですね(--;

写真を貼り付けても、周囲の景観に溶け込まないようです。別の方法を探らないといけませんね。

パフォーマンスに難がありそうですが、試しに木の3Dモデルを一本一本置いてみましょう。



◎Treeモデルの収集

木の3Dモデルなら、フリーでいろいろありそうです。しかし国内サイトは手頃なものが見付からなかったので、海外サイトから探すことにしました。

フリーモデルを探す場合、問題はフォーマットです。海外にメタセコ形式のものは当然ありませんが、Softimageも殆ど見掛けませんでした。Softimageはキャラクタアニメ向けなので、木や自然物のデータは少ないのかもしれません。

結局、LightWave形式や3DS形式のデータを10種類ぐらい集めたのですが、木一本で10万頂点超えるものもありました。ハイポリの世界って凄いな~。

…と感心ばかりもしてられません。このままでは私のXNA環境では表示できないので、頂点数を減らしたり面方向を反転したり色を付けたりして、何とかXNAに持ってきました。木一本で数万頂点ではとてもゲームに使えないので、自作ツールで森を作成して画像を取得します。



◎よくある話

複数の異なるモデルを同時に表示した画像を取得できるようにツールを改修したら、画像ファイルにモデルが写らなくなりました。これでいいはずなんだけどなぁ…ブツブツ…。

なかなか原因が特定できないので、以前のソースと比較しようとしたら、古いモデルに関しては同じ現象になりました。げっ!どのバージョンからおかしくなったんだ!!

現象が発生したバージョンを特定し、さらに前のバージョンとソースを比較したら、if文の条件式で「==」とすべき所を「=」と書いてました。

…よくある凡ミスですが、原因特定に手間取ると疲れるんですよね。条件式の「=」はエラーではじくように、Cの言語仕様を変更して欲しいなぁ。



◎プログラムの整理

よくよく考えると、凡ミスの原因究明に手間取ったのは、プログラムが煩雑だからです。まだ試行錯誤の延長のような部分が残っているので、ここらで整理して今後に備えましょう。

・個別モデル構造体と複合モデル構造体にデータ集約
・セーブフラグ等の細かい機能追加
・コメントの訂正

プログラムを整理すると、ソースコードが7割減になったモジュールもあります。やはり時々整理した方がいいですね。



◎植林

バラバラの種類の木を7本植えました。

森02

たった7本ですが、これだけでも林のような雰囲気があります。数や位置などの調整は後回しにして、簡易モデルが出来そうか試してみましょう。

4方向+天井の画像を取得し、箱型モデルに貼り付けました。

森03   森04

ふむ…斜めから見てもさほど違和感を感じません。
わりといけそうな気がします。

しかし、特定の角度から見ると板ポリであることがバレてしまいます。

森05

4方向ではなく、8方向か16方向にした方が良さそうですね。



◎角丸モデル

最初は8方向の円柱にするつもりでしたが、角が丸いタイプの上半分(半球に近い)が良いだろうと考えなおしました。

問題は、画像をどのように貼り付けるか?です。4方向の場合、四角形の面1つに1枚ずつ貼り付けますが、8方向で面1つに1枚ずつ貼り付けると、見た目がおかしくなります。

そこで、1枚の画像を片側4面に貼り付けてみました。

森06

ほほう…上面はともかく、側面はいい感じですね。

次に、木を21本増殖して28本とし、前後面の画像を正射影で取得しました。

tex_Forest02_ST_00_000   tex_Forest02_ST_01_000

前後2枚の側面画像と上面画像を合成し、モデルのUV設定を行います。

森UV設定   森07

全体の形が直線的で、全然森に見えませんね。わざわざ木を増やしたんですけど、スカスカの方がいいのかな?

森08

うーん…先程よりはマシかもしれませんが、よくないですね。



◎次回予告

モデルの形や画像を変えたりして尚も調整中ですが、今のところあまり良くありません。8方向より4方向の方がマシってのが納得いかないので、もう少し粘るつもりです。

12月になったので、次回は「11月の総括と12月の目標」です。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

これこそ

Matrix.CreateConstrainedBillboard()の出番なのではないかな? 森ユニット1つにつき1描画インスタンスでなく、木の本数だけインスタンスが必要になりますが。

>==と=
高校の時、BASICからCに乗り換えたさいにハマリました。コンパイラやコンパイルオプションによっては警告が出ますよ。

こんばんわ~

>木のビルボード
そうですね。木ユニットは伏兵が難しそうという懸念があり、森ユニットがベストと考えていましたが、木のビルボードも試してみます。

>コンパイルオプション
VisualStudioのオプションを探してみましたが、残念ながら発見できませんでした。今後も似たような問題でハマったら、チェックツール等の導入を検討します。

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。