Unityで背景を単色に変更する方法

solidcolor

手っ取り早いのは、CameraのClear Flagsを Solid Color にしてBackgroundで色を指定する方法です。他には[Window]->[Lighting]でLightingタブから環境を変更する方法もあります。

クリアと聞くと、消しゴムで消したり、黒板で消すイメージがありますが、Clear Flagsで指定されている状態にすることをクリアと言っています。初期設定では、Skyboxが指定されているので、何もオブジェクトがないプロジェクトの最初の状態がクリア状態になります。元々OpenGLやDirectXからきている用語なので、クリアなのに、空が表示されるという違和感がある状態になってます。

 

Unityで何もないところから、スクリプトでオブジェクトを生成する方法

unity01

敵や弾を好きな時に生成したい

シューティングゲームの敵の出現や、弾や、迷路の自動生成など、スクリプトからゲームオブジェクトが生成できると幅が広がります。比較的短い説明で分かりやすい解説である実行時のプレハブのインスタンス化がマニュアルに載っていました。

この解説はページ内の文字数が多いように感じますが、実際は、3つのよくありそうなシナリオでのUnityの設定の仕方とソースコードが書かれています。初めての人は、一番初めのレンガを自動生成する方法を見ればよいだけなので、読むドキュメントとソースコードは少ないです。

シナリオ1.ひとつの “レンガ” から壁を作成するために、複数回異なる場所に作成する
シナリオ2.ロケットランチャーが発射時に空飛ぶロケットプレハブをインスタンス化します。プレハブはメッシュ、Rigidbody、Collider、および子ゲームオブジェクトと軌跡に Particle System を含みます。
シナリオ3.ロボットがバラバラにいくつもの部分に爆発します。

 

 

 

Unity5.3で始めて作ったRoll-a-Ballを配布してみます。

Unity5.3ではじめて作った記念に配布

Unity公式球転がしチュートリアル をUnity5.3で作成しました。チュートリアルには配布の仕方などがなかったので、勉強もかねて記念にロリポップで配布してみます。この球転がしゲームはzip圧縮したら44MBぐらいでした。最近はSteamなどや基本無料のオンラインゲームもたくさんあるので、ダウンロード時間に関してはこの程度の容量なら問題なく配布できそうです。

https://hajimete-program.com/games/RollABall.zip

exeファイルを作成して配布したり、WindowsStoreやAndroidへの配布は問題なさそうですがWebGLに関しては問題がありそうなので、ちょっと書いてみます。

WebGL版で3Dゲーム配布する際の問題点

普段いろんなブログやSNSなどを使うためにブラウザを使っていて、リンクをクリックすると数秒以内にそのサイトが閲覧でき、Youtube動画もすぐ再生できます。そしてこれが当たり前となっているので、WebGLのゲームをクリックして起動するまでに数十秒待たされるとすごくストレスになります。

さらに最悪な場合は、海外のサイトでぐるぐるダウンロードアイコンが回るだけでどの程度でダウンロードが完了するか分からない場合です。これはUnityの問題ではなくWebGLの仕組みの問題で、いろいろ対策はあるのかもしれませんが、分かっていてもものすごいストレスなので、現時点ではSteamやWindows StoreやGoogle Playストアのように、ユーザーにアプリをダウンロードしてもらい、それを実行することでゲームが開始されるという独立した2段階ステップで配布するほうが良いのかもしれません。

itch.ioではUnityで作った2Dゲームがブラウザーベースで配布されている

  • https://kevin-pauly.itch.io/space-eater
  • https://itch.io/games/tag-3d

海外で有名なフリーソフトサイトitch.ioで、Unityで作った2Dゲームをいくつかブラウザーでやってみました。2Dの場合は比較的容量が少ないためブラウザーでできるものが多かったです。3Dになるとダウンロード形式が多いようです。

 

Unityでoutput_log.txtを出力しない方法

unity21

メニュー->[Edit]->[Project Settings]->[Player]で、PlayerSettingsインスペクターが表示されます。ここで、User Player Logのチェックを外すとoutput_log.txtログファイルは出力されなくなります。

Unityで配布用のexeファイルを作るときに、Build and Runや自分で試しに動かすとexeファイルと同じ場所に、output_log.txtを出力します。Windows10のデフォルトだと、”C:UsersPublicDocumentsUnity Projectsプロジェクト名ビルド先フォルダー”に出力されますが、出力先を変更した場合は、そのディレクトリー情報が、このファイルに出力される場合があります。開発者の環境のディレクトリー情報などが表示される場合があります。またビデオカード情報やディスプレイ解像度も表示されます。なるべく情報を公開したくない場合はOffにしてしまうのが良いでしょう。

 

Unityでデフォルトをフルスクリーンにしない方法

メニューから[Edit]→[Project Settings]→[Player]でインスペクターに、PlayerSettingsが表示されるので、”Default Is Full Screen”のチェックを外すと、デフォルトでWindowモードになります。また解像度指定も可能になります。

unity11

ここで、製作者の名称やログ出力の設定なども可能なようです。マニュアルも日本語であるので細かい設定が気になる人は確認してみるとよいでしょう。

http://docs.unity3d.com/jp/current/Manual/class-PlayerSettingsStandalone.html

いくつかすぐ使いそうな項目としては以下などでしょう

  • User Player Log ユーザーログ出力
  • Display Resolution Dialog 解像度変更ダイアログの非表示
  • Allow Fullscreen Switch フルスクリーンの無効化