Unityで裏面が表示されないので両面映るようにしてみる
2016年10月08日

Unityで裏面が表示されないので両面映るようにしてみる

以前Blenderで作ったスパルタ兵の3DモデルのデータをUnityに入れてみた際に、マントの裏面が表示されていませんでした。

スタンダードシェーダーをUnityにドラッグ&ドロップ

そこで今回はマントの裏面もUnityで表示できるようにしてみたいと思います。

とは言ったもののシェーダーに関する知識がないのでとりあえずググってみたところ以下のサイトを見つけました。

ImpressiveCode「Unity3dでPlaneの両面表示」

シェーダーを作成してファイルを開き、1行目のCustom/NewShaderを適当な名前に変更し、SubShaderの中にcull offと書けば良いらしいです。

ということで実際にやってみました。

プロジェクトウィンドウのCreateからシェーダーのファイルを作成すると、元からあるスタンダードシェーダーのような設定が出来ないので不便に感じることがあるかもしれません。
シェーダーのコードの書き方が分かっている人ならそれでも良いでしょうが、僕は分からないのでスタンダードシェーダーのコードにcull offを書き加えたいと思います。

ですがプロジェクトウィンドウの中を探してもスタンダードシェーダーのファイルは見つかりません。
スタンダードシェーダーのファイルはUnityのサイトからダウンロードしてくる必要があります。

Unity ダウンロード アーカイブ

上記のページにアクセスし、ダウンロードのところから「ビルトインシェーダー」を選択します。

スタンダードシェーダーをダウンロード

するとzipファイルがダウンロードされるので解凍ソフトで解凍します。

解凍したファイルを開くとDefaultResourcesExtraというフォルダがあり、その中にStandard.shaderがあります。
このファイルをプロジェクトウィンドウにドラッグ&ドロップします。

スタンダードシェーダーをUnityにドラッグ&ドロップ

投入したファイルの名前を変更します。
今回はBothFaceという名前にしました。

スタンダードシェーダーの名前を変更

ダブルクリックでファイルを開き、コードを変更します。

Shader "StandardBothFace" { // ←変更

// 〜略〜

SubShader {
	Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
	LOD 300
	cull off // ←追加

// 〜略〜

1行目は普通のスタンダードシェーダーと区別するためにStandardBothFaceとしました。

SubShaderは52行目と211行目あたりの2か所にありますが、最初の方にあるSubShaderのところにcull offと書き加えれば両面表示になるようです。

コードを変更して保存したら両面を表示したいマテリアルを選択し、インスペクターのShaderからStandardBothFaceを選択します

マテリアルのインスペクターで両面シェーダーを選択

そしてシーンビューを見てみるときちんとマントが表示されています。

正面から見るとマントが映るようになった。

もちろん後ろから見てもマントは映っています。

後ろから見てもマントは映っている。

スタンダードシェーダーのコードに書き加えたので、インスペクターからスタンダードシェーダーと同じように設定もできます。

スタンダードシェーダーと同じ設定が出来る。

これで裏面が表示されない場合に対処することが出来るようになりました!

スポンサードリンク
posted by ナオ at 14:04 | Comment(0) | Unityの使い方メモ
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]