読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Unity 4 free と比較して Unity5 Personal Editionで出来るようになった事

f:id:tsubaki_t1:20150306010427p:plain

Unity5が公開され、旧Unity Pro(現Unity Professional Edition)の機能の大半が使用可能な新しい無料版Unity・Unity Personal Editionが公開されました。

 

ということで「Unity 4 freeと比較してUnity 5 personal editionは何が出来るようになったのか」をマニュアルの「Pro」の文字を頼りに探してみました。

あくまでUnity 4 free との比較ですので、Unity5で出来るようになったことは極力除きます。

目次

画面全体のエフェクトが可能に

レンダリング結果にポストエフェクト的に手を加えるImageEffectが使用できるようになりました。光のにじみや、輪郭線の抽出、ブラー、被写体深度、SSAOといった、よりリッチなエフェクトが使用出来ます。

 

Unity 5 FX and composition test - LD Dropshipで紹介されていた画像ですが、上がエフェクト無し・下がエフェクト付です。かなり絵の雰囲気が違って見えます。

 Unity 5 FX and composition test - LD Dropship

f:id:tsubaki_t1:20150305004233p:plain

f:id:tsubaki_t1:20150305004248p:plain

また、わりと面倒だった「何か光らせる」のも比較して大分素直にできるようになりますし、「低解像度化」+「輪郭線の抽出」+「減色」でドット絵ライクな絵作りとかも出来るようになります。イメージエフェクトは楽しい。

ちなみにImageEffectは重いので、モバイルでやるなら解像度下げてから。

3D表現を軽くする機能が使えるようになった

Proで制限されていた、ライトプローブ・LOD・オクルージョンカリングが使えるようになりました。


オクルージョンカリングで不要なオブジェクトを描画しない - テラシュールブログ

ライトプローブはモバイルではしんどいリアルタイムライト辺りは超軽く表現出来るので、割と良い感じです。


UnityのLightProbesを手軽にセッティングする - テラシュールブログ

あとLOD(遠くのものはローポリ・近くのものはハイポリで表現する)が使えるようになります。

それとライティングはBeastからEnlightenに変わり、何か色々とあったらしい制限が取っ払われました。但しライティング設定方法や焼くコツが変わったので、その辺り注意が必要です。

Deferred Renderingは何かいつの間にかFree版でも使えたような使えなかったような。

RenderTextureが使用可能に

レンダリング先を画面ではなくテクスチャに書き出すRenderTextureが使用可能になりました。

これで、ユニティちゃんライブの背景にあるモニターのような表現の幅が広がります。

また、バックグラウンドでレンダリングして使いまわす手法や、ゲーム画面を低解像度(72dpi位)なRenderTextureに描画してUI綺麗だけど描画パフォーマンスを稼ぐ…といった方法も使えます。

f:id:tsubaki_t1:20150306005706p:plain

エディタ上でもC++をNativePluginsとして使えるようになった

C++で実装した処理をUnityエディタで使用するにはProが必要だったのですが、これが不要になりました。

例えばADX2LEやBISHAMON等のC++をベースとしたミドルウェアも使用できますし、過去に自作したC++資産等もUnityから使用できるようになります。エディタが64bitの場合は64bitで再ビルドしないと動かない場合もありますが…

Unity 5 無償版で「ADX2 LE」が使用できるようになりました! | えるいー便り

また、相変わらず「スクリプト」としては使えないです。

アプリサイズの削減やAssetBundle

AssetBundleを使用したDLCやファイルの分割が可能になりました。これにより「実行時に3Dモデルやプレハブを追加ダウンロード」や、AppにAssetBundleを格納しインストール時に展開して容量を稼ぐ方法が使えます。

f:id:tsubaki_t1:20150305225329p:plain

Unity - マニュアル: アセットバンドル(Unity Proのみ)

 

またマニフェストファイルの登場によりUnityのバージョンアップ時に必要だったAssetbundleの再構築が不要になるらしいので、今までやりにくかった「シーンごとAssetBundleに含めて配信」もやりやすくんじゃないかなと思います。


ビルド後のiPhone/Androidゲームにステージを追加する簡単な方法 - テラシュールブログ

 

またCode Strippingが使用できるようになり、iOS/Androidのバイナリサイズを減らすことが出来るようになりました(それ以前にiOSはIL2CPPのせいで最大級のコードストリッピングが働いてますが)

スプライトパッカーが使用可能に

普通にパックしてスライスすれば無くても何とでもなる(どころか管理が容易)な気がしますが、とにかくスプライトパッカーが使えるようになりました。

Batches数を抑える意味ではまだまだAtlas化は重要な要素です。

f:id:tsubaki_t1:20150306012018p:plain

プロファイラーの使用

アプリケーションの処理負荷といったものを一覧表示出来るようになりました。これでコード的に負荷の高い処理の特定がより楽になります。

f:id:tsubaki_t1:20150305011409p:plain

Unity - マニュアル: プロファイラー (Unity Pro のみ)

リソースの非同期な読込が可能に

Pro版で制限していたSceneの非同期読込が可能になりました。またResourcesの非同期ロードも使えそうです。

但し非同期でロードする場合は時間は若干伸びると思うので、その辺りは注意が必要です。あとInstantateはシングルスレッドで動作します。

Resourcesから非同期でインスタンス化する - テラシュールブログ

キャラクターモデルのIK設定

所謂「ユニティちゃんがこっちを見る」的な奴だったり、手の位置を元に肘の位置を調整したり、目標に向けて手を伸ばしたりするアレが出来るようになりました。

f:id:tsubaki_t1:20150305230716p:plain

経路探索AIで段差の対応

というか、OffmeshLinkが使えるようになります。OffmeshLinkは要するに「Navmeshで本来繋がっていない箇所を繋げる」機能です。

例えば高いところから落下出来る箇所やテレポートポイントにパスを設定しておけば、そういった「近道」も含めてパスを計算してくれます。また、このパスはON/OFFが可能です。

f:id:tsubaki_t1:20150305234928g:plain

Unity - マニュアル: ナビメッシュエージェント

その他

  • GPUスキニングでスキニング処理をGPUに任せられます(Animatorのみ)
  • staticバッチングが使えるようになりました。
  • MovieTextureでムービーが再生出来るようになります。モバイル向けはFullScreenMovieが。
  • モバイル(Android/iOS)でもSocketが使えるようになります。ぶっちゃけ幾らでもやり方はあったのですが、素直なやり方で。

---

 

次はUnity 4とUnity 5の比較について書きたい所です。

シーンマージとか、新しいライティングやAnimatorとか、新機能とか。