Unity5でImageEffectsをいろいろ使ってみます。

A03

Unity 5.3では、Standard AssetsにImage Effectsがあります。(公式マニュアル)イメージエフェクトで分かりやすいのは、アンチエイリアスやカメラーのブラー効果や被写界深度(Depth Of Field デプス・オブ・フィールド)などです。これをカメラに追加することで劇的な変化をもたらすことができます。このイメージエフェクトは基本的にプログラミングは必要ありません。単純にコンポーネントを追加してスライダーでみながら調整するだけでとっても簡単です。是非アプリをリリースする前にイメージエフェクトを身につけましょう。

最初の画像

以下はイメージエフェクトを設定していない場像です。

001.1
Image Effectなし

エフェクトを追加

エフェクトを順々に加えていきます。

002_bloom
Bloomで発光し、街灯の光が強くなっている。
003_b_dof
Depth Of Fieldで遠くをぼやけさせる。遠くのビルがぼやけている
004_b_dof_vaca
Vignette And Chromatic Aberration

Vignette And Chromatic Aberrationで、角が暗くなり、外側ほどブラーがかかるようになります。

005_b_dof_vaca_ccc
Color Correction Curves で色調整
006_b_dof_vaca_ccc_fog
Global Fog で霧を用意。遠くがうすい灰色で見やすくなっている。

公式マニュアルの画像を見ると、Global Fogは晴天で逆光をあてるなどでも効果がありそうです。

 

007_b_dof_vaca_ccc_fog_ssao
SSAOで、ビルと地面の影が濃くなっている。
008_b_dof_vaca_ccc_fog_ssao_edge
Edge Detectionでビルの輪郭を表示。

設定一覧

009

010

 

各種モデルについて

実際にプロジェクト内を見てもらえば分かりますが、ビルは単純にCubeを大きくしただけです。また窓や街灯はポイントライトを光を弱くして配置しただけです。街灯もCubeを細長い棒状にして、ポイントライトを地面に向けただけの単純なモデルです。

スクリプトについて

スクリプトは、Directional Lightを回転させるスクリプトと、プレイヤーにカメラを追随させるスクリプトだけです。プレイヤーの移動やプレイヤーキャラクターはStandard Assetをそのまま使っています。

このプロジェクトの配布

Unity5.4用

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

Assets/Scenes/Main.unityをUnityで開いてください。二次配布になるため音声ファイルは削除しています。(音声なくても動作するようにはしています。)

Unity5でクラッシーロードのようなIsometric(アイソメトリック)な画面の作成

クラッシーロードのような画面はISOMETRIC(アイソメトリック)と呼ばれ、日本語では等角を意味します。Unity5では位置と回転を調節するだけで、2,3分で簡単にIsometricなカメラを作成することができます。それではやってみましょう。

001

 

1.GameObjectを作成し、RotationをX:30,Y:45にして、Main Cameraを子要素にする。

002

2.Main CameraはPositionをX:0,Y:0,Z:-10にして、ProjectionをOrthographicにして、お好みでSizeを調整します。

003

できた!!

004

 

Perspectiveカメラで同じような感じを出してみる。

1.GameObjectを作成し、RotationをX:45,Y:45

101

2.Cameraを子要素にして、Position Z:-45、Projection:Perspective, Field of View を 30以下。

102

等角ではない感じですが、Perspectiveカメラでも近い感じにできました。もしかするとPerspectiveでももっと等角にできる正確な値があるのかもしれません。

103

 

参考資料

http://answers.unity3d.com/questions/12027/how-to-do-a-camera-that-is-top-downisometric.html

 

このプロジェクトの配布

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

 

ドラッグアンドドロップのチュートリアル動画をやってみました。

マインクラフトやディアブロのインベントリーはアイテムをドラッグアンドドロップすることが可能です。将来インベントリー管理を作るときに役立ちそうなので以下のチュートリアルに挑戦してみました。このチュートリアルは30分の動画が3本で、多くの事を学べました。

この動画シリーズは90分ぐらいでUnityのGUIの基礎が分かるためお勧めです。このカードゲームで基礎を学べばインベントリー作れそうです。この動画をやると、UnityのGUIのイベントシステムとEvent Triggerを使わずC#スクリプトのみで実装する方法の基礎がわかります。学習できるキーワードとしては以下になります。

  • Graphics Raycaster
  • Canvas Group – blockRaycasts
  • Layout Element
  • Layout Group
  • Event System
  • IBeginDragHandler, IDragHandler, IEndDragHandler
  • IPointerEnterHandler, IPointerExitHandler
  • IDropHandler
  • SiblingIndex

第2回までは、基本的に言われたとおりにソースコードを打ち込んでいくだけで理解できるので問題ありませんが、第3回はカードをドラッグしたときに、その元の位置を保持する仕組みを作るため、かなり難しいです。とはいえ動くソースコードが手に入ってGUIのキーワードがたくさん分かったので、ソースコードの解析は今後の課題として、この知識をインベントリー管理に役立てたいです。

また、今回Horizontal Layout Groupを使いましたが、インベントリー管理の場合はGrid Layout Groupをうまく使う必要がありそうです。

プロジェクトの配布

https://hajimete-program.com/games/Unity Tutorial – Drag & Drop Tutorial (quill18creates) – 02.zip

 

 

 

ロリポップでWordPressのAkismetスパムフィルターを導入

最近海外のスパムコメントが多くなってきたので、Akismetプラグインを導入しました。導入手順書は、Akismetプラグインの使い方 – adminweb.jp を参考にしました。2016年8月現在では、この手順書で作業を続けると、Akimetのアカウントは取得できますが、そのあとにAkismetのサイトが表示されませんでした。ずっとローディング画面で、ブラウザのリロードをしても変わりませんでした。

001
akismetのローディングが終わらない。

そのかわり、メールを確認するとHTML形式のメールで、AKISMET API KEYが発行されていました。これをコピーして、Wordpressに貼り付けることで作業を進めることができました。

002

 

 

 

Unity5のインベントリー作成チュートリアルの比較とやってはいけない動画

Youtubeで「unity inventory tutorial」と検索するとUnity5でインベントリー作成のチュートリアルが見つかります。ですが出版業界の人に編集してもらった動画ではないため、無駄に時間が長かったり、やってみない事には自分に合った動画かわかりません。いくつか動画の長さを調べたり、やってみたので感想を書きます。

Minecraftのインベントリー
マインクラフトのインベントリー 

やってはいけない動画

この動画に挑戦しましたがPart2で中断しました。最初は、動画一覧を見た時に、合計12個の動画で、最終更新は2015年9月、1つあたりの動画の長さも15分以内のため、自分に合ってそうなので始めてみました。

Part2で問題が出てきました。Unityは4.6からGUIシステムが新たに導入されたのですが、このチュートリアルではそのイベントシステムを使わずに、CameraをCanvas内に配置して、映し方をOrthographicにして実装していました。マインクラフトや3DゲームではPerspectiveなカメラを使うため、続きの動画はやってませんがここで中断しました。

また、当然Unity5.3では環境によってはうまく動作しないため、多くのコメントで、イベントシステムを使うべき事や、動かないという指摘がありました。よって、この動画はお勧めしません。

お勧め

インベントリー管理ではないですが、この動画シリーズは90分ぐらいでUnityのGUIの基礎が分かるためお勧めです。このカードゲームで基礎を学べばインベントリー作れそうです。この動画をやると、UnityのGUIのイベントシステムとEvent Triggerを使わずC#スクリプトのみで実装する方法の基礎がわかります。学習できるキーワードとしては以下になります。

  • Graphics Raycaster
  • Canvas Group – blockRaycasts
  • Layout Element
  • Layout Group
  • Event System
  • IBeginDragHandler, IDragHandler, IEndDragHandler
  • IPointerEnterHandler, IPointerExitHandler
  • IDropHandler

90分で現実的に学習できる時間なので、これでドラッグアンドドロップやUnity GUIの基礎を体得して、そこからキーワードなどを調べていくとインベントリーに限らずいろいろな応用ができそうです。

中途半端?

スクリーンショットがよさそうですが、動画の最後が中途半端に終わっていて、アイテム削除の方法は、最後の動画のコメントを見ろとなっています。寄付があれば動画を作ってくれるようです。

Unity 5 Tutorial: Survival Game Inventory C#(xOctoManx)

自分で実装できる人で、ワールド座標からアイテムを取得したりドロップしたい場合のテクニックを知りたい人向け。

xOctoManxのチュートリアルは、80分のチュートリアルなので実際に試してみました。このチュートリアルでは、マインクラフトのように、ワールド空間でEキーで、アイテムを取得して、インベントリーからアイテムを選択して、[Drop Button]でワールド座標にドロップすることができたので、インベントリーUIとワールド空間のやり取りが学べて良かったです。ただし、インベントリーは、アイテムの木と石を若干ハードコーディングしているので実用的ではありませんでした。インベントリーのUI上でアイテムをドラッグアンドドロップしたりする方法もないため、別途学ぶ必要があります。

このチュートリアル動画は、この動画で作ったインベントリーシステムをそのまま自分のプロジェクトに使うようなものではなく、この動画で学んだことを踏まえて自分で新たに作るためのチュートリアルでした。

 

長い

高度なインベントリーシステムを作る場合は参考になりそうですが、初心者向けではなさそうです。

まとめ

インベントリーを実装するためのYoutubeチュートリアルをいくつか見てみました。ひとりの作者の動画を参考するのではなく、できる範囲の動画をいくつかピックアップして、それを踏まえて独自に実装していけばよさそうです。