こんにちは、エンジニアのオオバです。
前回記事に続き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にデフォルトのequals
、hashCode
、toString
の実装を追加しました。
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への可視性のインポート機能の追加されました。
ただ、このON / OFFでの変化は調査中です。
Asset Import: Added the option of computing weighted normals when importing FBX files. Fixed normal generation for hard edges.
FBXファイルの読み込み時に加重法を計算するオプションを追加しました。ハードエッジの通常の生成を修正しました。
fbxのインポート設定に追加されています。
Asset Import: Changing tabs in the Model Importer inspector does not force users to apply changes anymore
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.
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 |
---|
いわゆる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シンボルが追加されます。
このようにコード補完されて少し便利です。
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に繋いでログを出力する簡易デバッグが出来るようになりました。
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.
TextureのWrapModeの種類が追加されました。
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が配列のシェーダープロパティを表示できるようになりました。
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軸個別に設定できるようになりました。
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.1p4 | Unity2017.1f1 |
---|
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.Social
とTouchScreenKeyboardType.Search
がiOS/tvOS、Android、WindowsPhone、Tizenで追加されました。
OSX: Added Appstore category field to player settings and improved info.plist generation
AppStoreカテゴリ入力項目がPlayerSettingに増え、Info.plistに入力されます。
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モードに追加されました。
Particles: Align Particles to their velocity direction
Shapeモジュールに Velocity Direction
プロパティが追加されました。
こういう表現になります。
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.
改善されたパーティクルシステムのカリングモードがツールチップメッセージをサポートしました。
カリングモードがサポートされていない理由の詳細がそこには含まれています。
ちなみにツールチップの場所は↑コチラです。
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
メッシュパーティクルは、レンダリングされたパーティクルと同じRender Alignmentオプションをサポートするようになりました
Particles: Particles can now apply forces to the Colliders they hit
パーティクルは、ヒットしたColliderに力を加えることができるようになりました。
Collisionモジュールで設定します。ポイントはCollider Force
に0より大きい値を入力することです。
TypeはWorldでないとこの設定項目は表示されません。
ちなみに再生中のみ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.
ゲームが一時停止しているときに、パーティクルシステムを再生するには、シミュレーションに「スケーリングされた」時間または「スケーリングされていない時間」のいずれかを選択します。
このゲームが一時停止しているとき
というのは、TimeScaleが0のとき
を指していると思われます。
メインモジュールのDeltaTimeで、UnScaled
にするとTimeScaleに関わらず一定のスピードで動かすことができ、Scaled
を選択するとTimeScaleに従って動きます。
Particles: Randomize the spawn positions of particles, with a new option in the Shape Module.
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.
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.Simulate
とPhysics.autoSimulation
APIを公開します。これにより、物理シミュレーションをスクリプトから手動で実行することができます。サーバー側の物理、エディタ内のシミュレーションなどのカスタマイズに役立ちます。
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
の影のカリングが改善されました。
設定場所はコチラ 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
を見ていきます。

筆者のXをフォローしよう
- Unity2017.1.0f1