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

モーリーのメモ

プログラミングやCG作成等、アプリ開発を中心に情報を収集中!

Version 1.2アップデート情報!:Cocos Creator

 Cocos CreatorのVersion 1.2がリリースされたので、その更新内容を確認しました。

使用環境

 私が使用している環境です。

  • Mac OS X El Capitan Version 10.11.6
  • Cocos Creator Version 1.2
  • ブラウザ:Google Chrome Version 52.0.2743.116 (64-bit)

v1.2 リリース情報

 下記のページのリリース情報を読んでみました。
discuss.cocos2d-x.org

Cocos Creator 1.2 がリリースされました!

 WebとJSBプラットフォームともに、パフォーマンスの改善にフォーカスしたバージョンのv1.2をリリース出来ることにワクワクしています。v1.0でゲーム開発を始めた開発者は、無料でパフォーマンスの向上が得られます。

1.2主な特徴

  • Luaエンジン向けビルド
  • WebGLの自動バッチ処理とカリング(除去)処理
  • ダーティリージョンの最適化付きのCanvasレンダリング
  • グラフィック描画システム
  • カスタマイズされた要素をサポートするように作り直されたPropertiesパネル
  • モジュラーJavaScriptエンジン
  • AnySDKのサポート

Luaエンジン向けのビルド

 Cocos2d-x Luaエンジンのクリエーター、Yulei Liao、そしてCocos Creatorチームらによる2ヶ月間の開発とコラボレーションにより、ついにCocos2d-x Luaエンジンを用いたシーンとUIのビルドが可能になりました。

現在のLua向けのCreatorのワークフロー
  • CreatorでシーンとUIの作成と編集を行って下さい、プロジェクトのアセットを管理することも出来ます。
  • Buildパネルで、ターゲットのプラットフォームにLuaを選択して下さい。
  • 変換ツールによってビルドされたファイルをLuaファイルに変換して下さい。
  • 次に、ゲームスクリプトを追加するための標準的なCocos2d-x Luaエンジンのワークフローを使用するだけです。それからコンパイルと実行のためにCocosコンソールを使用して下さい。

 
 我々は、Creator向けのLuaサポートを更新し続けます。次のステップにはCreator向けの変換ツールのプラグインの作成と、標準的なCocos2d-x Luaプロジェクトの生成を含みます。また、Creatorのエディタであなたのコンポーネントにデータをバインド出来るようにLua向けのコンポーネントシステムを追加するつもりです。

WebとJSB向けのレンダリングの最適化

 Cocos2d-xのv3.11とv3.12で、パフォーマンスを大幅に向上させる、WebGLの自動バッチ処理と選別処理を追加しました。Cocos Creator v1.2にはWebGLの最適化処理の全てを含めました。あなたが正しくアトラスに画像をパックしたなら、最後にリリースされたバージョンより少なくとも5倍パフォーマンスが改善されていることがわかるでしょう。自動カリング機能が、見えるスプライトとラベルにだけレンダリングコマンドを生成することを確認して下さい。これはあなたのゲームで大きなシーンやタイルマップをサポートするのに役立ちます。
 
 WebGLをサポートしていないAndroidブラウザ向けに、特にCanvasレンダリングモードに新しく追加されたダーティリージョンの最適化も、2倍のパフォーマンス向上をもたらします。シーンが主に動く要素で構成されているなら、APIによりCanvasレンダリングようのこの最適化を無効にすることも出来ます。

グラフィック描画システム

 Creatorのv0.7からv1.1まで、最愛なるcc.DrawNode APIは未実装のままでした。グラフィック描画APIの完全にアップグレードされたバージョンである優れた、v1.2のcc.Graphicsを歓迎しましょう。cc.DrawNodeの機能を完全にカバーしている他に、cc.Graphicsは、静止画とアニメーショングラフィックを含むSVGベクトルフォーマットをサポートしています。あなたは、ゲームを盛り上げるために、インターネットで共有されている何万ものベクトルグラフィックを得ることが出来ます!(それらのライセンスの確認して下さい)それはプロシージャグラフィックスファンにも素晴らしいことです、さあ始めましょう。

コンポーネントのカスタマイズ可能なPropertiesパネル

 我々はPropertiesパネルを作り直しました。これは、パネルの見た目が違うのでv1.2を初めて起動した時に最初に気付くことでしょう。見た目の他に、開発者はパフォーマンスの向上とさらに重要な、あなたのコンポーネントにカスタムプロパティ要素を書く機能を得ます。あなたは簡単にウィジェットコンポーネントのような視覚的なプロパティコントロールを作ることが出来て、あなたのデザイナーをとても幸せにします。

モジュラーJavaScriptエンジン

 我々は、v1.2のProject Settingパネルに新しいModule Configタブを追加しました。これによりJavaScriptのビルドに含まれるべきエンジンモジュールをカスタマイズすることが出来ます。今のところ、あなたが多くのモジュールを必要としない場合、エンジンライブラリのサイズを効果的に1/3に減らすことが出来ます。今後、より小さなエンジンをビルドするためにエンジンをさらに分割するつもりです。

AnySDKのサポート

 v1.2のネイティブビルドにAnySDK C++ライブラリを含めました。基本のパッケージを生成するあなたのスクリプトで、そのAPIを呼ぶ前にすべきことは何もありません。
 
 近い将来、Creator向けのAnySDKプラグインをリリースするつもりです。これによりCocos Creatorだけで、完全にグラフィカルなインターフェースを使用して、SDKの全てのワークフローを終えることが出来ます。

完全な変更履歴

主な変更

BuildBuildパネルのビルドターゲットにLuaを追加しました。
EngineWebGLの自動バッチ処理とカリング処理の最適化を追加しました。
EngineWeb Canvasレンダリングモード用のダーティリージョンの最適化を追加しました。
Engineネイティブビルド向けにAnySDKライブラリを追加しました。
Editorシーンのアセットのプロパティに非同期のアセット読込オプションを追加しました。これにチェックすると、スクリプトとノードツリーを読み込んだ直後にシーンを実行します。そしてテクスチャとオーディオのような残りのアセットは、実行中に読み込まれます。
Enginecc.Graphicsグラフィックス描画 APIを追加しました。
PreviewWebプレビュー用のErudaモバイデバッグライブラリを追加しました。歯車のアイコンをクリックすることで、デバッグパネルを開くことが出来ます。
WebviewWebビューコンポーネントを追加しました。

Editor

EditorProject SettingsパネルにModule Configタブを追加しました。これによりビルドに含めるモジュールをカスタマイズ出来ます。
EditorPropertiesパネルを作りなおしました。これによりユーザ定義のコンポーネント用のプロパティ要素のカスタマイズが可能です。
AssetsAssetsパネルでフォルダ名に『..』が入る表示エラーを修正しました。
Assetsアトラスのアセットを更新した時に、アトラステクスチャ配下のspriteFrameが正しく更新されない場合がある問題を修正しました。
PrefabPrefab編集モードからEditBox付きのシーンに抜ける場合のエラーを修正しました。
PrefabNode LibraryからPrefabに要素をドラッグした時にPrefabが通常のノードに変わる問題を修正しました。
AnimationAnimationClipを編集中に削除すると表示エラーが発生する問題を修正しました。
AnimationWidgetコンポーネントのアニメーションプロパティの編集によって間違った結果になる場合がある問題を修正しました。
Animationアニメーションに、再生、停止、一時停止、再開、ラストフレーム、終了を含むコールバックイベントを追加しました。
AnimationAnimationコンポーネントが無効になっているにもかかわらず、Play On Loadアニメーションがまだ再生される問題を修正しました。
MenuEditメニューのSelect Allは、Node TreeとAssetsで全てのノードもしくはアセットを正しく選択することが出来ます。
SceneシーンでParticleのオンとオフを切り替えることにより、エディタの実行が遅くなる問題を修正しました。
Sceneノードのアクティブ化状態を無効にした時にNode Treeとシーンビューが正しく更新されない問題を修正しました。
Consoleメッセージの量を無制限に表示できるようにConsoleパネルを作り直しました。
ConsoleWindowsで、Consoleパネルが中国語の文字を正しく表示出来ない問題を修正しました。

Engine

EngineAndroidレンダリングの問題を修正しました。パフォーマンスが向上するはずです。
Engine親ノードから子ノードを取り外した時、子ノードの不透明度が正しく更新されない問題を修正しました。
Engine複数のPrefabが同時に読み込まれる時に、いくつかの依存するアセットが読み込まれないのを修正しました。
RenderWebGLのダイナミックフォントのレンダリングの質を改善しました。
Renderアニメーションのレンダリングの問題、または最新のChromeブラウザの更新の問題を修正しました。
Render透明な画像が暗くなるのを修正するために、iOSプラットフォームではlibPNGライブラリを使用して下さい。
JSBbezierToアクションがノードの一を正しく更新しない問題を修正しました。
JSBscheduleOnceコールバックが複数回呼び出される問題を修正しました。
JSBcc.game.EVENT_SHOWとcc.game.EVENT_HIDEがJSBで作動しないのを修正しました。
ActionWebプラットフォームで、cc.hide、cc.show、cc.toggleVisibilittyが作動しない問題を修正しました。

モジュール

TiledMapWebGL向けのタイル数が無制限のタイルマップのレンダリングを最適化しました。
TiledMapタイルマップのアセットの移動により参照が失われる問題を修正しました。
TiledMapTiledLayer.setTileGID APIがfloat値の入力をサポートしていない問題を修正しました。
TiledMapHex(六角形)ベースのマップが正しくレンダリングされない問題を修正しました。
TiledMapTiledLayerが不透明度を変更できない問題を修正しました。
ButtononTouchEndコールバック内でnode.active=falseに設定すると、ノードが再度アクティブになった時に通常時用のテクスチャにリセットされない問題を修正しました。
Label実行時にTTFフォントを変更するとネイティブプラットフォームでエラーが発生する問題を修正しました。
ScrollViewScrollViewのコンテンツのサイズがScrollViewのサイズより小さい場合に、ScrollBarが自動で隠れてコンテンツの位置がリセットされます。
ScrollView手動でスクロールを停止するためのstopAutoScroll APIを追加しました。
ScrollView作動していないScrollViewで、Touch.startPointがクリックイベントが発生するビューの座標に変換しない問題を修正しました。
Collidernode.groupの動的な変更を正しく追跡できます。
EditBoxEditBoxコンポーネントが有効な場合にTextChangedを発生させる問題を修正しました。
EditBoxEditBoxのLabelが、ネイティブとWebのプラットフォーム間で、動作に一貫性がないのを修正しました。
EditBoxWebブラウザで、より多くの種類のポップアップ・キーボードがサポートされました。
EditBoxサードパーティIMEiOSで入力フィールドをブロックする問題を修正しました。
EditBoxEnterキーを押すのとは異なる場合、もしくはポップアップキーボードの外側をクリックされた場合のためにeditingReturnイベントを追加しました。
Componentコピー&ペーストコンポーネントが、第一依存のコンポーネントを追加しない問題を修正しました。
ComponentAdd Componentボタンメニューで、ユーザー定義のコンポーネントをソートします。

その他

Buildプロジェクトのビルド時とシーンの保存時に、アセットとスクリプトの参照が見つからない場合、コンソールに警告を生成します。
Buildビルド開始時に、IPCメッセージ(editor:build-start)が追加されました。
Buildネイティブプラットフォームのビルド向けにJSONアセットをパックしないで下さい。
BuildAndroidのビルド向けにAndroid Studioチェックボックスを追加しました。デフォルトのテンプレートでのみ動作し、コンパイルにはAndroid SDK 22が必要です。
BuildCreatorアプリの名前にスペースが含まれる場合、バイナリテンプレートによるネイティブビルドになる問題を修正しました。

アップデート方法

 アップデート方法については、下記の記事のアップデート方法と同様です。
mmorley.hatenablog.com

動作確認(ビルドを確認)

 動作の確認のため、各プラットフォーム向けに、Hello Worldプロジェクトのビルドと実行を行いました。

対象プラットフォーム結果
Web MobileOK
Web DesktopOK
MacOK
iOSOK

cc.PhysicsDebugNodeが使えない!

 物理演算エンジンのChipmunkで、デバッグ用の表示を行うための下記のコードをプレビュー実行するとエラーになりました。

this.debugNode = cc.PhysicsDebugNode.create(this.space);
//または
//this.debugNode = new cc.PhysicsDebugNode(this.space);

 ひとつ前のバージョンv1.1.2だと実行できます。

あとがき

 画像の表示処理が速くなったみたいです。これは単純にうれしいですね。

 v1.1.2からv1.2で数字が似てたので、更新に気付くのが遅れました。
 個人的には、cc.PhysicsDebugNodeを使いたいので、もうしばらくv1.1.2を使おうと思います。
 
 

広告を非表示にする