夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

【Blender】できるだけローポリ目指して地形をモデリング(道路編)

開発中のオープンワールドレースゲームの地形の作成に取り掛かりました。街、山、水場がバランス良く配置され見栄えのする地形を作りたいのですが、自分の想像だけではまともな地形を作れそうにありません。 なので、ちょっと手抜きをして現実にある地形を参…

【Unity, Blender】軽くてデータ量の小さな街を作る

これまでゼンリンのJapanese Otaku Cityという、秋葉原をモデルにした街をベースにレースゲームを作ってきましたが、自分の街を作ることにしました!建物のモデリングが90個くらい完成したので適当に並べてみたのがこれです。 植物の緑が一切ないので殺風景…

【Unity, Blender】LOD機能を使って自動的に表示ポリゴン数を節約

今回はUnityのLOD (Level of Detail)機能を使い、ポリゴンが細かいモデル、中間のモデル、荒いモデルを自動的に切り替えて不要なポリゴン数を抑える実験をしてみました。LOD機能を使用するには、まずBlenderでポリゴン数の異なる複数のモデルを準備する必要…

【Unity】マテリアルの共有化でドローコール(Batches, SetPass Calls)が減ったかどうか検証

最初にモデリングしたAE86は車体各部を色毎にマテリアルを分けることで着色していました。 この方法は色艶の調整が楽なのですが、「ドローコールが増えて処理が重くなる」という情報を得ました。 そこで、2台目のCR-Xではできるだけマテリアルを共有し、着色…

【Unity】テクスチャのインポート設定で色々な見た目の問題を解決

今回はUnityのテクスチャインポート設定がモデルの表示品質にどのように影響するか検証してみました。 なお、テスクチャのインポート設定は、プロジェクトパネルでテクスチャを選ぶとインスペクタに表示されまます。その1 前回、ノーマルマッピングを施した…

【Blender, Unity】ノーマルマッピングでちょっとした凹凸をつける

私がノーマルマッピングを初めて体験したのはXBOX360のバイオショックというゲームでした。 壁のタイルがデコボコして縁がテカテカしているように見えるのを「これがノーマルマッピングかー」と感動しながら視点をグリグリ動かして遊んでいました。さて、そ…

【Blender, Unity】車体各部の材質の違いによるツヤ・反射の具合をテクスチャでコントロールする

前回はテクスチャマッピングでCR-Xのボディやタイヤ・ホイールの色の塗り分けをしました。tf.hateblo.jpテクスチャマッピングで色をつけるとマテリアルを分ける必要がないのでドローコールが減ってUnityでの表示処理が軽くなるはずですが、そのままだと全体…

【Blender】線がガタガタにならないようにテクスチャマッピング

テクスチャマッピングという言葉を初めて聞いたのは確かバーチャファイター2が出た時だったと重います。 前作のバーチャファイターはいかにも「ポリゴンでできています」という見た目が特徴的でしたが、2では一気にポリゴン感が薄れリアル感がアップして興奮…

【Blender】CR-Xにスムーズシェーディングをかけつつエッジを立てる

引き続き現在開発中のレースゲームに登場予定のCR-X風スポーツカーのモデリングをBlender上で進めています。 現時点ではこんな感じです。 参考までに、Verts 3,627、Faces 3,551、Tris 6,974となっています。前回作成したAE86トレノ風スポーツカーではフラッ…

Blenderのループ選択を思い通りに操る方法

BlenderでAlt+右クリック(左クリックで選択を設定している人は左クリック)で面のループ選択するとき、あらぬ方向にループが展開し、 「そっちじゃねー!」 と思わず叫んでしまうことってありませんか?エッジのループ選択であればおそらく百発百中で成功する…

HONDA Ballade Sports CR-X Si 後期型をBlenderでモデリング

AE86トレノに続き、80年代のスポーツカー、ホンダCR-XをBlenderでモデリングしてみました。これは、バラードスポーツCR-Xという、CR-Xシリーズの中では最初の型で、マイナーチェンジ後の後期型になります。 CR-Xといえばマイナーチェンジ前のライトが半目に…

TravelShooting JPで1200万点越えの猛者が現る!

何日かぶりにTravelShooting JP iOS版を起動してびっくり。ランキング画面のハイスコアで1200万点を突破した人が現れました! 現れたと言ってもこの方はずっとTravelShooting JPで遊んでくれていて、常にハイスコアを保持していらっしゃる常連さんなのですが…

【Unity5でレースゲーム】UnityのStandard Shaderをカスタマイズしてポリゴンの裏面も描画するシェーダーを作る

今開発中のオープンワールドなレースゲームではゼンリンのJapanese Otaku Cityアセットを使わせてもらっています。 このアセットに標準で設定されているシェーダーだと木の影が四角い板のようになってしまうのでNature/Tree Soft Occlusion Leavesシェーダー…

【Unity5でレースゲーム】リアルタイムリフレクションでより綺麗に景色を映り込ませる

前回は固定のReflection Probeを使用した静的な環境マッピングで車のボディに周囲の景色を映り込ませました。 tf.hateblo.jpこの方法はプログラム実行前に反射マッピンング用のキューブマップを焼いておくので実行時の負荷は軽いのですが、前回書いた通り、…

【Unity5でレースゲーム】AE86をピカピカにして景色を映り込ませる

前回、高速化のためにライトマップを焼いて見ようなどと書きましたが、実際に秋葉原の街全体を焼いてみるとMacBook Proの4コアフル稼働で数時間かかりました。真夏にファン全開でうなるMacを見るのはつらいものがあります。 そして、ライトマップを焼いた結…

【Unity5でレースゲーム】BlenderでモデリングしたAE86をUnityに取り込む

BlenderでモデリングしたAE86トレノをUnityに取り込んでみました。 なお、私が使用しているバージョンはBlenderが2.75a、Unityは5.0.2です。まず、Blenderでの作業ですが、UnityのスタンダードアセットのCar Controllerスクリプトを使う場合はタイヤを回転さ…

【Unity5でレースゲーム】BlenderでAE86パンダトレノをモデリング

ここ1週間はプログラミングから少し離れ、レースゲーム用の車のモデリングにチャレンジしていました。初モデリング用に選んだ車はAE86トレノです。イニシャルDでおなじみのパンダカラーのあれです。 自分が学生の頃はまだイニシャルDは始まっていませんでし…

【Unity5でレースゲーム】ゴールを演出するカメラを設置

これまではゴールが無く何周でも好きなだけ走れたこのゲームですが、それではレースにならないので一応ゴールを設置しました。 最後のチェックポイントは通常のチェックポイントと違い、赤色の矢印が上から下に動くようにしてみました。そして、ゴールの瞬間…

【Unity5でレースゲーム】バックミラーを追加してみた

今回は、カーレースゲームになくてはならない?バックミラーを追加してみました。 バックミラーを実現するにははカメラが一つ増える事になりますので、フレームレートへの影響は少なくないです。 ゲームによっていはバックミラーに映るオブジェクトは少なか…

【Unity5でレースゲーム】進む方向をナビってくれる空飛ぶ矢印を追加

今回は、次に進む方向を教えてくれる矢印を空中に表示してみました。 こういうやつです。矢印は進む方向に繰り返し動くので、かなり遠くからでも方向を視認する事ができます。Directional Lightを消して矢印が見やすいようにして動画を撮ってみました。 夕方…

【Unity5でレースゲーム】車体の下に影を付けて接地感を向上

現在作成中のカーレースゲームですが、建物の影の中に入ると車の影が見えなくなり、下の写真のように接地しているのかいないのか良くわからないのが気になっていました。 現実の世界では車の下は影の中でもさらに暗く見えるはずです。これはアンビエントオク…

【Unity5でレースゲーム】道に迷わないようにミニマップを表示

今回はミニマップを表示してみました。ミニマップというのはレースゲームで良くある、上から見たコース図が画面の端でカーナビ的にグルングルン回っているアレです。 市街地のオープンワールド系のレースゲームではこれがないと簡単に道を間違えてしまうので…

【Unity5でレースゲーム】フレームレートアップのため高速化にチャレンジ

前回、フレームレートを表示してみて、ちょっとレースゲームとして物足りない20fpsという事が判明しました。フレームレートが一番きついスタート後のストレートで測定した値です。 前回の記事: tf.hateblo.jp20fpsという値は低いとは言え、サターン用デイト…

【Unity5でレースゲーム】AIカーを昆虫なみの知能に改良

今回はAIを改良し、周囲の状況を検知してステアリング、ブレーキの操作に反映させる機能を実装しました。 とは言え、人間のように周囲360度の状況を把握して適切な操作をするというのは無理で、せいぜい昆虫が触角に触れるものを避けたりする程度の知能です…

【Unity5でレースゲーム】AIカーに性格付けをしてライン取りを変化させる

前回の動画で既に実装されているのですが、AIカーに性格付けをして、ライン取りを若干変化させてみました。途中で事故って2台いなくなってしまいましたが、4台の走るラインが違うので少しレースっぽくなっているのがわかると思います。前々回の、4台のAIカー…

【Unity5でレースゲーム】理想のカメラの動きを追い求める

前回までは車オブジェクトの子オブジェクトしてメインカメラを設置していました。これは非常に簡単で良いのですが、常に寸分の狂いもなく車の真後ろに位置しているので車に動きが感じられません。また、車の細かい左右の動きまで忠実に拾ってしまうので景色…

【Unity5でレースゲーム】市街地レースに適したAIを作る

これまでUnityのスタンダードアセットに入っていたAIを使って他車を動かしてきましたが、市街地のドライビングにはあまり適していないようなので自分でAIを作ってみました。秋葉原のような市街地はカーブがほとんどないのでレース用のコースを作ろうとすると…

【Unity5でレースゲーム】神田川に水を張ったらアキバが洪水に・・・

前回プロジェクトファイルが壊れたなどと書きました。tf.hateblo.jp仕方がないのでもう一度イチからやり直したのですが、他のUnityプロジェクトファイルをいじくった後に戻ってくるとまた全てのオブジェクトが消えていました。絶望しかかったのですが、やっ…

【Unity5でレースゲーム】CarWaypointBasedで敵車を出す。そしてプロジェクトファイルが壊れる。

前回のtf.hateblo.jpの続きです。今回は、UnityのStandard Assetsの中に入っているCarWaypointBasedというプレファブから敵車を作ってみました。なお、CarWaypointBasedの使い方はこちらのブログを参考にさせて頂きました。 tsubakit1.hateblo.jp このオブジ…

Unity 5でMCLAのようなオープンワールドレーシングゲームを作ってみたい

ミッドナイトクラブ ロサンゼルス(MCLA)というレースゲームをご存知ですか?2009年発売と結構古いゲームなのですが、つい先日Xbox 360用を購入したところすっかりハマってしまい、ゲーム開発の方がおろそかになってしまいました。Midnight Club Los Angeles …