こんにちは、エンジニアのオオバです。

前回記事に続きUnity2017.1.0f1のWhat's new in 2017.1.0f1 - Release Candidate 1 - Unityを確認していきます。

リリースノートを読むだけでは分かりづらい事を調べて画面キャプチャなどで紹介するという趣旨もありつつ、読んでも全く理解出来ていないものもあります。

今回はImprovemets(改善項目)を見ていきます
※本シリーズは3部構成になっております。

Improvements

Android: Add default equals, hashCode and toString implementations to AndroidJavaProxy

AndroidJavaProxyにデフォルトのequalshashCodetoStringの実装を追加しました。

Android: Apk files are now signed using the new APK Signature Scheme v2.

Apkファイルは、新しいAPK署名方式v2を使用して署名されるようになりました。

Android: OBB compatibility is now done using build id rather than a hash of the OBB file

OBBとの互換性は、OBBファイルのハッシュではなく、ビルドIDを使用して行われるようになりました。
OBBとは分割アプリケーションバイナリのことです。

APK 拡張ファイル (OBB) のサポート - Unity マニュアル

Animation: Statemachinebehaviour can now be debugged in play mode in the editor

StateMachineBehaviourが再生モード中にEditor上でデバッグできるようになりました。

Asset Import: Added ability to import visibility from FBX files to ModelImporter

FBXファイルからModelImporterへの可視性のインポート機能の追加されました。

Unity2017.1.0f1のリリースノート日本語訳 その2_0

ただ、このON / OFFでの変化は調査中です。

Asset Import: Added the option of computing weighted normals when importing FBX files. Fixed normal generation for hard edges.

FBXファイルの読み込み時に加重法を計算するオプションを追加しました。ハードエッジの通常の生成を修正しました。

Unity2017.1.0f1のリリースノート日本語訳 その2_1

fbxのインポート設定に追加されています。

Asset Import: Changing tabs in the Model Importer inspector does not force users to apply changes anymore

Unity2017.1.0f1のリリースノート日本語訳 その2_2

Model Importerのタブを切り替えても変更の適用or破棄を強制されなくなりました。

Asset Import: Reduced the import time for FBX assets with humanoid animations

HumanoidアニメーションにおけるFBXインポート時間が短くなりました。

Asset Import: Support Segment Scale Compensate for models exported from Maya.

Mayaからエクスポートされたモデルのジョイントセグメントスケール補正をサポートするようになりました

参考になるかわからないけどMaya公式のセグメントスケールについての情報

Asset Pipeline: Enabled asynchronous texture uploading from non-scene Asset Bundles on all platforms

全プラットフォームにおいて非シーンアセットバンドルからの非同期テクスチャアップロードが可能になりました。
非シーンってなんでしょうか...

Asset Pipeline: In batchmode the FailedAssetImports.txt file is now ignored because there's no way to cancel or notify the user when the asset importer fails.

バッチモードでは、アセットインポーターが失敗したときにキャンセル方法がない、ユーザー通知も無いため、FailedAssetImports.txtファイルは無視されるようになりました。

Build Pipeline: Scripts-only build is now available on all platforms.

ビルドスクリプトが全てのプラットフォームで利用可能になりました。

Build Pipeline: Unified assembly stripping code used for IL2CPP and Mono builds - which should result in more consistent behaviour between IL2CPP and Mono and in smaller build sizes for platforms supporting assembly stripping on Mono.

IL2CPPとMonoのビルドに使用される統一されたアセンブリストリッピングコード - IL2CPPとMonoの間のより一貫した動作と、Monoのアセンブリストリッピングをサポートするプラットフォームのためのより小さなビルドサイズをもたらします。

Collab: Project Browser Filters including 'All Modified', 'All Excluded', 'All Conflicts', 'All In Progress'

All Modified, All Excluded, All Conflicts, All In Progressといったフィルタが追加された?

404 - Unity
Unity2017.1f2リリースノートより

Collab: Right Click Menu Options in the Project Browser including See Differences, Revert, Conflict Resolution

右クリックのメニューで、差分、Revert、コンフリクト解決を見ることが出来ます。

404 - Unity
Unity2017.1f2リリースノートより

404 - Unity
Unity2017.1f2リリースノートより

Editor: Added "Called From" and "Calls To" view to the Hiverarchy View of Profiler Window.

Unity2017.1.0f1のリリースノート日本語訳 その2_3

UnityProfilerでCPUプロファイル中にShow Callsを選択すると処理の依存関係と負荷が確認できるようになりました。

Editor: Added a pre-drop style to particle system Object fields so it highlights if something can be dropped.

Unity5.6以前Unity2017.1

Unity2017.1.0f1のリリースノート日本語訳 その2_4

いわゆるEditorのブラッシュアップ。

Editor: Added callbacks for assembly reload events: two events are dispatched: one before and one after reloading all assemblies. See: class AssemblyReloadEvents.

アセンブリのリロードを受け取るコールバックが追加されました。
リロードする前後でそれぞれ通知されます。

using UnityEngine;  
using UnityEditor;  

public class AssemblyReload : EditorWindow  
{
 [MenuItem ("Window/AssemblyReload")]  
 static void Init ()  
 {
  var w = EditorWindow.GetWindow ();  
  w.Show ();  
  AssemblyReloadEvents.afterAssemblyReload -= OnAfterAssemblyReload;  
  AssemblyReloadEvents.beforeAssemblyReload -= OnBeforeAssemblyReload;  
  AssemblyReloadEvents.afterAssemblyReload += OnAfterAssemblyReload;  
  AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload;  
 }

 static void OnAfterAssemblyReload ()  
 {
  Debug.Log ("OnAfterAssemblyReload");  
 }

 static void OnBeforeAssemblyReload ()  
 {
  Debug.Log ("OnBeforeAssemblyReload");  
 }
}

このサンプルコードを実行すると、アセンブリの更新時に前後にコールバックが実行されます。
しかし、beforeAssemblyReloadは実行されるけど、afterAssemblyReloadは実行されません。バグなのか何なのか。。。調査中です。

Editor: Added profiler labels to all player loop stages

全てのプレーヤーのループステージにProfilerラベルを追加しました。

イミフです。

Editor: Defines in mcs.rsp are added to .csproj files generated for MonoDevelop, Xamarin Studio, Visual Studio Code & JetBrains Rider

mcs.rsp定義がMonoDevelop, Xamarin Studio, Visual Studio Code, JetBrains Riderで生成された.csprojに追加されました。

-define:FUGA  
-define:PIYO  

Assets/msc.rspに上記の記述をしてコンパイルが走ると、.csprojにDefineシンボルが追加されます。

Unity2017.1.0f1のリリースノート日本語訳 その2_5

このようにコード補完されて少し便利です。

Editor: DX12 Editor is more responsive and little bit faster.

DirectX12エディタではレスポンスが少し早くなりました。

Editor: Improvements to Package Export loading state

ExportPackageのローディング状態が改善されました。
体感よく分かりませんでした。

Editor: Log messages from connected players will now show in Editor console for easier debugging.

実機からUnityエディタのconsoleに繋いでログを出力する簡易デバッグが出来るようになりました。

Unity2017.1.0f1のリリースノート日本語訳 その2_6

SRDebuggerがあるので、オオバはあまり必要を感じませんが、SRDebuggerのログ表示に実機の画面を持っていかれるので同時に確認したいときには重宝しそうです。

Editor: macOS: Show Visual Studio for Mac in External Script Editor Lists if installed in default "/Applications/Visual Studio.app/" location

外部エディタリストにMac用Visual Studioが表示されるようになりました。ただし/Applications/Visual Studio.app/にインストールされている必要があります。

Editor: MacOS: Support Visual Studio for Mac as an External Script Editor. Opens .sln (solution) file when double clicking a script.

VisualStudio for Macが外部エディタとして対応しました。スクリプトファイルをダブルクリックすると.slnが開きます。

Editor: Scripts willl be opened correctly in JetBrains Rider when selecting it as external script editor.

JebBrains Riderを外部エディタとしてセットしておけばUnityから開くことが出来るようになりました。

Editor: Simplify dragging code setup: Getting rid of the requirement of setting DragAndDrop.objectReferences = new UnityEngine.Object[] {} when using DragAndDrop.SetGenericData()

ドラッグアンドドロップの記述が簡略化されました。

GI: Upgrade Enlighten SDK to version 3.08p1

Enlighten SDKが3.08p1にアップグレードされました。

Graphics: Added a batch break cause (material disables instancing) to Frame Debugger.

Frame Debuggerのバッチされない理由(material disables instancing)が追加されました。

Graphics: Added a new surface shader option "dithercrossfade", generating the screen-door dithering effect code automatically for being used in LOD cross-fade mode.

dithercrossfadeというサーフェースシェーダーのオプションが追加されました。
LODクロスフェードモード使用下で自動でディザエフェクトコードを生成してくれます。

Graphics: Added memoryless mode to RenderTexture, accessed through new property RenderTexture.memorylessMode.

RenderTextureクラスにメモリ使用量を抑えるmemorylessModeプロパティが追加されました。
とても気になります。

Graphics: Added Mirror and MirrorOnce texture wrapping modes, in addition to existing Repeat and Clamp ones.

Unity2017.1.0f1のリリースノート日本語訳 その2_7

TextureのWrapModeの種類が追加されました。

Unity2017.1.0f1のリリースノート日本語訳 その2_8

Mirrorにするとこのようになります。

Graphics: Added new default material for trails. 'Default-Trail'

Default-Trailという新しいトレイル用のデフォルトMaterialが追加されました。
ただ、Default-Trailが見つからないんですよね。Default-Lineの間違いかもしれません。

Graphics: Frame Debugger is now capable of showing array shader properties.

FrameDebuggerが配列のシェーダープロパティを表示できるようになりました。

Unity2017.1.0f1のリリースノート日本語訳 その2_9

mat.SetFloatArray ("_Arr", array);  

C#側はSetFloatArrayで渡します。

float _Arr[6];  

Shader側は配列変数を定義して値を受け取ります。

頂点シェーダー / フラグメントシェーダーに処理を書かないとFrameDebuggerには表示されません。

Graphics: Optimized conversions between float32 and float16 image formats on Editor for a x2 to x4 performance improvement.

float32,float16フォーマット画像が最適化されました。

Graphics: Texture wrapping modes can be set separately on each U,V,W axis.

TextureのWrapModeがU,V,W軸個別に設定できるようになりました。

Unity2017.1.0f1のリリースノート日本語訳 その2_10

W軸はどこから設定できるのか分かりません。

Graphics: The default names for Graphics Quality Levels have been changed to be a little clearer, and more in line with what is common across other games. This will only affect newly created projects; existing projects will have the same Quality Level names as before (though, as always, you can edit the names via Edit -> Project Settings -> Quality).

Unity5.6.1p4Unity2017.1f1

Unity2017.1.0f1のリリースノート日本語訳 その2_11

QualitySettingの名前がデフォルトで一般的で分かりやすくなりました。

Graphics: Unity can now accept and use a pointer to an externally created cubemap

外部で生成されたキューブマップを認識するようになりました?

IL2CPP: Improved IL2CPP code conversion time on OSX. Conversion times may improve by as much as 2x.

OSXにおけるIL2CPP変換スピードが2倍早くなりました。

iOS: Added support for Watch apps and Watch app extensions in the Xcode extension API.

XcodeエクステンションAPIでWatch Appをサポートしました。

Mobile: Added TouchScreenKeyboardType.Social and TouchScreenKeyboardType.Search for iOS/tvOS, Android, WindowsPhone and Tizen platforms.

TouchScreenKeyboardType.SocialTouchScreenKeyboardType.SearchがiOS/tvOS、Android、WindowsPhone、Tizenで追加されました。


OSX: Added Appstore category field to player settings and improved info.plist generation

AppStoreカテゴリ入力項目がPlayerSettingに増え、Info.plistに入力されます。

Unity2017.1.0f1のリリースノート日本語訳 その2_12


OSX: Added support for loading the first scene asynchronously when showing the splash screen.

スプラッシュスクリーンが表示している最中に非同期で最初のシーンをロードするようになりました。

OSX: Metal: [MTLDevice recommendedMaxWorkingSetSize] is now used to query VRAM size when available.

利用可能な場合VRAMサイズを問い合わせるためにMTLDevice recommendedMaxWorkingSetSizeが使用されます。

Particles: Added edit modes for Particle system collision mode planes.

ParticleSystemのCollisionモジュールtype PlanesがEditモードに追加されました。

Unity2017.1.0f1のリリースノート日本語訳 その2_13

Unity2017.1.0f1のリリースノート日本語訳 その2_14

Particles: Align Particles to their velocity direction

Unity2017.1.0f1のリリースノート日本語訳 その2_15

Shapeモジュールに Velocity Directionプロパティが追加されました。

Unity2017.1.0f1のリリースノート日本語訳 その2_16

こういう表現になります。

404 - Unity
Unity2017.1f2リリースノートより
こういう表現も出来るんですね。

Particles: Allow Emit over Distance to be used for Local Space systems

Local Spaceでも距離によるエミッションが許可されました。

404 - Unity
Unity2017.1f2リリースノートより

Particles: Allow users to disable the use-rigid-body physics functionality

ユーザーがRigidBodyの物理機能を向こうにすることを許可します。

Particles: Edge emission is now more flexible, allowing you to choose the thickness of the edge used for generating particles.

Edge Emissionは更にフレキシブルになりました。
エッジの太さを選ぶことが出来るようになりました。

Particles: Improved particle system culling mode supported tooltip messages. These now contain more details on why the culling mode is unsupported.

改善されたパーティクルシステムのカリングモードがツールチップメッセージをサポートしました。
カリングモードがサポートされていない理由の詳細がそこには含まれています。

Unity2017.1.0f1のリリースノート日本語訳 その2_17

ちなみにツールチップの場所は↑コチラです。

Particles: It is now possible to animate both the min and max constants, when using Random Between 2 Constants mode.

2定数間の乱数を使用している時、最低値と最高値の間でアニメーションすることが出来ます。

謎です。そもそも今までそういう仕様じゃなかったってことですか??

Particles: Mesh particles now support the same Render Alignment options are billboarded particles

Unity2017.1.0f1のリリースノート日本語訳 その2_18

メッシュパーティクルは、レンダリングされたパーティクルと同じRender Alignmentオプションをサポートするようになりました

Particles: Particles can now apply forces to the Colliders they hit

パーティクルは、ヒットしたColliderに力を加えることができるようになりました。

Unity2017.1.0f1のリリースノート日本語訳 その2_19

Collisionモジュールで設定します。ポイントはCollider Forceに0より大きい値を入力することです。
TypeはWorldでないとこの設定項目は表示されません。

Unity2017.1.0f1のリリースノート日本語訳 その2_20

ちなみに再生中のみCollider Forceは処理されます。

404 - Unity
Unity2017.1f2リリースノートより

404 - Unity
Unity2017.1f2リリースノートより

Particles: Play Particle Systems when your game is paused, by choosing to use either Scaled or Unscaled time for the simulation.

ゲームが一時停止しているときに、パーティクルシステムを再生するには、シミュレーションに「スケーリングされた」時間または「スケーリングされていない時間」のいずれかを選択します。

Unity2017.1.0f1のリリースノート日本語訳 その2_21

このゲームが一時停止しているときというのは、TimeScaleが0のときを指していると思われます。
メインモジュールのDeltaTimeで、UnScaledにするとTimeScaleに関わらず一定のスピードで動かすことができ、Scaledを選択するとTimeScaleに従って動きます。

Particles: Randomize the spawn positions of particles, with a new option in the Shape Module.

Unity2017.1.0f1のリリースノート日本語訳 その2_22

Shapeモジュールにパーティクルの放出位置をランダムにするオプションが追加されました。

404 - Unity
Unity2017.1f2リリースノートより

Particles: Scene lighting can now affect Lines and Trails.

シーンのライティングがLineとTrailに影響を与えることが出来るようになりました。

Particles: The Shape Module now contains an additional Transform, for applying custom transformations to the emitter shape.

Shapeモジュールには、エミッタシェイプにカスタム変換を適用するためのTransformが追加されました。

しかし、どこに追加されているのか分かりません。

Particles: The speed range of a Particle System is now displayed in the Scene View GUI, when previewing a Particle System.

Unity2017.1.0f1のリリースノート日本語訳 その2_23

ParticleSystemのスピード範囲はシーンビューに表示されるようになりました。

Physics: Add ability to manully simulate 2D physics using "Physics2D.Simulate(time)" and turn auto simulation on/off with "Physics2D.autoSimulation=true/false".

Physics2D.Simulate(time)を使用して2D物理をシミュレートする機能を追加し、 Physics2D.autoSimulation = true / falseで自動シミュレーションをオン/オフすることができます。

Physics: Expose Physics.Simulate and Physics.autoSimulation. This allows stepping the physics simulation manually, from scripts. Useful for customising the server-side physics, in-editor simulation, and more.

Physics.SimulatePhysics.autoSimulationAPIを公開します。これにより、物理シミュレーションをスクリプトから手動で実行することができます。サーバー側の物理、エディタ内のシミュレーションなどのカスタマイズに役立ちます。

Physics: When setting 'Rigidbody2D.simulated' to false, Editor inspector shows information about its effect.

Rigidbody2D.simulatedをfalseに設定すると、エディターインスペクターはその効果についての情報を表示します。

SamsungTV: UnityWebRequest is now supported on SamsungTV

UnityWebRequestはSamsungTVでサポートされました

Shaders: Optimized game data build time for shaders with massive ("millions or billions") potential variant counts. Fixed shader inspector popup menu to display variant counts larger than 2 billion properly.

数十億レベルのバリアントを持つシェーダーのゲーム構築時間の最適化を行いました。

Shaders: Pass platform caps keyword defines to compute shaders

Pass platform capsキーワードはCompute Shaderで定義されています。

Pass platform capsとは???

Shaders: SystemInfo.graphicsShaderLevel now reports more accurate shader models that better match shader #pragma target levels (now can report values 25, 35, 45, 46).

SystemInfo.graphicsShaderLevelは、シェーダーの#pragmaターゲットレベル(25,35,45,46)にマッチするより正確なシェーダーモデルをレポートするようになりました。

var lv = SystemInfo.graphicsShaderLevel;  

int型(25, 35, 45, 46の値)を返却します。

Shadows: Improved shadow culling for stable fit directional shadows.

Shadow ProjectionがStable Fitの影のカリングが改善されました。

Unity2017.1.0f1のリリースノート日本語訳 その2_24

設定場所はコチラ Edit > Project Settings > Quality > ↑

Shadows: Improved shadow filtering for directional and spot lights.

ディレクショナルライト、スポットライトのShadowフィルタリングが改善しました。
おそらくQualitySettingの切り替えのことだと思われます。

UI: Added support for selecting multiple files in the "Assets/Import New Asset..." dialog, on all platforms

全てのプラットフォームで Assets/Inport New Asset...ダイアログで複数のファイルを選択できるようになりました。

Universal Windows Platform: Unity player binaries are now signed.

Unityプレイヤーバイナリが署名されました。

VR: Updated to Oculus version 1.14

Oculusバージョンが1.14にアップデートされました。

Web: (Also mentioned under API Changes) UnityWebRequest now has built-in support for downloading MovieTexture on platforms that do support it. A new helper class WebRequestMultimedia has been introduced for simple download of MovieTexture or AudioClip. WebRequest.GetAudioClip() has been deprecated in favor of WebRequestMultimedia.GetAudioClip().

UnityWebRequestには、それをサポートするプラットフォームでMovieTextureをダウンロードするための組み込みのサポートが追加されました。新しいヘルパークラスWebRequestMultimediaが、MovieTextureまたはAudioClipの簡単なダウンロード用に導入されました。 WebRequest.GetAudioClip()WebRequestMultimedia.GetAudioClip()を使用して非推奨になりました。

Web: It is now allowed to override User-Agent header in UnityWebRequest

UnityWebRequestのUser-Agentヘッダーをオーバーライドできるようになりました。


次回はAPI Changesを見ていきます。

オススメ記事
検証環境