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

モーリーのメモ

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

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

 Cocos CreatorのVersion 1.1.0がリリースされていました。
 バージョンの番号からすると少しボリュームのある更新のようです。
 更新情報を確認しました。

使用環境

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

  • Mac OS X El Capitan Version 10.11.4
  • Cocos Creator Version 1.0.3
  • ブラウザ:Google Chrome Version 51.0.2704.63 (64-bit)

バージョン1.1.0のリリースノート

 下記のページに更新内容が紹介されていました。
discuss.cocos2d-x.org
 だいぶつたないですが、リリースノートを訳してみました。

Cocos Studio / Cocos Builderからのプロジェクトのインポート

 Cocosエンジンファミリーの最新のメンバーとして、Cocos StudioやCocos Builderのようなシーン作成ツールとデータの互換性を持っていることは、非常に重要です。このリリースでは、ユーザーは、メインメニューの『Import project...』によって、ccsとccbプロジェクトファイルをインポートすることが出来ます。
 アセットは以下を含んでインポートされます:シーン、レイヤー、ノード、テクスチャ、シーンタイムライン、パーティクル、オーディオ。オブジェクト指向コンポーネントスクリプトシステムに大きな違いがあるため、ソースコードはインポートされません。

Collider(衝突)コンポーネントシステム

 物理と衝突はアクションゲームの重要な要素です、我々は、物理エンジンのサポートを求めるたくさんのフィードバックを受けています。バージョン1.1では、我々は、Cocos Creatorでアクションベースのゲームを簡単に開発出来るように、Collider(衝突)コンポーネントシステムを追加しました。
 ノードにColliderコンポーネントを追加したら、衝突物の形状、サイズ、位置を指定できます。衝突物の形状に合わせて、形状を作成するためにコントロールポイントを自由に編集することも出来ます。
f:id:mmorley:20160602003857p:plain
 ノードに『Group』プロパティを追加することも出来ます。グループ衝突ルールを設定することによって、ノードが、特定のグループの他のノードと衝突するかどうか制御する事が出来ます。
 同じノードに追加されているコンポーネントにコールバック関数を登録することも出来ます。衝突が発生したときに、コールバック関数は他のColliderとそのCollider自体を引数に持って呼び出されます。それから、希望する動作を実行するために衝突を処理するためのロジックコードを描くことが出来ます。
 サード・パーティ製の物理エンジンは、一般的に大きく、ほとんどのゲームで使用するのはその小さな一部だけです。リリースには物理エンジンが含まれていませんでした。

JavaScriptC++エンジンのカスタマイズワークフロー

 エンジンのカスタマイズは、常にCocosエンジンファミリーの最たる特徴の一つです。Cocos Creatorのバージョン1.1では、完全なエンジンのカスタマイズワークフローが含まれています。エンジンのカスタマイズの2つの層(JavaScriptC++)があります。Webプロジェクトで作業する場合はJavaScriptエンジンだけが必要です。クロスプラットフォームやネイティブプラットフォームのいずれかで作業する場合は、同様にC++エンジンをカスタマイズする必要があります。
 JavaScriptC++エンジンは現在、Githubで利用可能です。フォークとプルの要求は歓迎です。

アセット読込用APIの改良

 アセット読込用APIのは、簡略化され、最適化されました。現在、一貫したURL形式で、任意のアセットを読み込むために、cc.loader.loadResを使用できます。URLにアセットファイルの拡張子を含めてはいけません。その代わりに、読み込みたいアセットの種類を指定するための第2引数を渡すことが出来ます。
 フォルダのURLの入力とそのフォルダの全てのアセットの読み込みをサポートするcc.loader.loadResAllも追加しました。
 このリリースには、動的なシーンの読み込みのために、全てのシーンのアセットの事前読込を処理するためのcc.director.preloadSceneも含まれています。

Node Library

f:id:mmorley:20160602004148p:plain
 この新しいパネルでは、ノードやUIの要素を簡単に作成するために、SceneやNode Treeパネルにドラッグ&ドロップすることが出来ます。また、ユーザーは、よく使うPrefabのショートカットを作成するために、PrefabアセットをAsettsパネルからNode Librryにドラッグすることも出来ます。

重要な変更

  • [Atlas]cc.SpriteAtlas.getSpriteFrameの引数は変更されました。現在、atlas.getSpriteFrame(‘sheep_run_0’)のように、ファイルの拡張子なしで、spriteFrameの名前を渡す必要があります。
  • [Engine]cc.loader.loadResの引数は変更されました。URLにファイルの拡張子を指定しないで下さい。
  • [Engine]cc.FontのアセットのタイプはRawAssetoからAssetに変更されました。そのため、コンポーネントプロパティの宣言で、Fontアセットのタイプは cc.Font (もしくはcc.BitmapFont / cc.TTFFont)型として宣言される必要があります。
  • [Engine]エディタウインドウのレイアウトデータの形式は変更されました。Creaorのバージョン1.1で開いた後に、バージョン1.0で開いた場合、レイアウトエラーが発生します。それを修正するにはメインメニューのLayout-Defaultを使用します。

全ての変更ログ

Editor

  • [Scene]Ctrl/Cmd+Zで元に戻した時に、ノードのサイズが回復されない場合がある問題を修正しました。
  • [NodeLibrary]ユーザのカスタムノードが保存されない問題を修正しました。
  • [Editor]Cocos Buiderのインポートされたプロジェクトが、テクスチャの見つからないパーティクルデータを持っていた場合に、シミュレータがクラッシュする問題を修正しました。
  • [Editor]リリースパッケージのサイズを小さくするために、エクスポートしたJSONファイル内で、デフォルト値を使用しているデータを削除して下さい。
  • [Editor]エディタのログファイルにアクセスできない原因となる問題を修正しました。
  • [Editor]スクリプトの再コンパイルやシーンを保存した時に、プレビューデバイスでリフレッシュを有効もしくは無効にするための自動リフレッシュオプションを追加しました。
  • [Editor]Atlasアセットの名前を変更すると、テクスチャアセットの参照エラーが発生する場合がある問題を修正しました。
  • [Editor]Webプラットフォームへのパブリッシュによって、ビットマップフォントアセットの参照が破壊される場合がある問題を修正しました。
  • [Editor]WindowsでTmxアセットをインポートするとき、Raw Assetの参照が無効になる場合がある問題を修正しました。
  • [Prefab] エディットモードに入るためにPrefabをダブルクリックした後、そのまま『閉じる』をクリックした時に、保存の指示がポップアップする問題を修正しました。
  • [Animation]現在編集中のアニメーションクリップの名前を変更するとエラーが発生するのを修正しました。
  • [Animation]spriteFrameプロパティのトラックにspriteFrameをドラッグ出来ない問題を修正しました。

Component

  • [Component]ノードのサイズに影響がある可能性がある1つ以上のコンポーネントを追加した時に、明白なクリアメッセージがあります。
  • [Component]CCClassのデフォルト値がプロパティの型と一致しない時、正しいエラーメッセージがあることを確認してください。
  • [Label]ビットマップフォントコンポーネントは現在、Propertiesパネルにオリジナルのフォントサイズが表示されます。
  • [Label]システムフォントを使用しているラベルが文字の内容を更新した時、ノードのサイズが正しく更新されない問題を修正しました。
  • [Label]TTFフォントを使用しているラベルは、Webブラウザでフォントリソースが2回読み込まれる場合がある問題を修正しました。
  • [Label]ラベルのコンテンツのサイズが変更された時にイベントが正しく発生しない問題を修正しました。
  • [Canvas]Canvasの子にEditBoxコンポーネントがある場合、不透明度プロパティの設定がCanvasノードのために影響しないのを修正しました。
  • [Layout]非アクティブの子ノードはレイアウトコンテナのリサイズモードのためにサイズを再計算するトリガーがないのを修正しました。
  • [Layout]パフォーマンス向上のためにレイアウトとウィジェットの計算が書き直されました。
  • [ScrollView]コンテンツがコンテナにリサイズモードを設定したレイアウトコンポーネントである時、scrollToXXX APIは現在のフレームに反映されない問題を修正しました。
  • [ScrollView]JSBでコンテンツとして使用されているラベルがスクロールできない場合がある問題を修正しました。
  • [MotionStreak]現在トレイルはアンカーポイントによってレンダリングされます。アンドロイドでのsetDirtyFlagエラーも修正され、トレイルカラーの設定のためのプロパティが追加されました。
  • [Audio]オーディオソースがシーンを切り替えるときに再生が止まらないのを修正しました。

Engine

  • [Engine]cc.poolに代わってcc.NodePoolクラスが追加されました。新しいNodePoolは新しいイベントシステムに完全に互換性があります。従ってpoolからノードを取得して、あなたが好きなようにイベントを登録/登録解除することが出来ます。
  • [Engine]ビデオプレイヤーコンポーネントが追加されました。現在、Web、iOS、Andoroidのみサポートしています。
  • [Engine]更新が開始の前に実行される場合がある問題を修正しました。
  • [Engine] onLoad関数でthis.node.active = falseを使用することで、レンダリングが無効になる問題を修正しました。
  • [Engine]コンポーネントの有効と無効を複数回繰り返した後に更新が実行しない問題を修正しました。
  • [Engine]cc.Animation.removeClip APIの第1引数がdefaultClipではなく第2引数がfalseの場合に、現在再生しているアニメーションを停止するのを修正しました。
  • [Engine]update関数のdt(デルタ時間)が今回と前回のフレームの間の実際の時間ではない場合がある問題を修正しました。
  • [Engine]作りなおされたcc.loader.loadRes APIでは、URLは拡張子を指定しないで下さい。第2引数でリソースのタイプを指定します。指定されたフォルダ内の全てのアセットを読み込むためにcc.loader.loadResAll APIが新しく追加されました。
  • [Engine]シーンとその全てのアセットの事前読み込みのためにcc.director.preloadScene APIが追加されました。cc.director.runSceneは廃止されます。
  • [Engine]cc.tintToがWebとJSBで引数が一致しないのを修正しました。
  • [Engine]同じコールバック関数を2回スケジュール解除すると、他のすべてのスケジューラが停止する問題を修正しました。
  • [Engine]onLoadで組み込まれたコンポーネントにアクセスした時にコンポーネントインスタンスが取得できない問題を修正しました。
  • [Engine]onLoadでaddComponentを呼び出した時に、追加されたコンポーネントのonLoadが直ちに実行されない問題を修正しました。
  • [Engine]onLoad関数でloadSceneを呼び出した時にエラーが発生する問題を修正しました。
  • [Engine] プラットフォームがそれを許可しない場合でも、パブリッシュ設定に応じて向きを強制する機能を追加しました。(いくつかのブラウザでは向きがロックされます。)
  • [Engine]環境設定パネルでは、簡単にカスタムエンジンのワークフローを統合するために、JavaScriptとC ++エンジンのgithubのクローンにパスを設定することができます。
  • [Engine]ノードの順序を変更するためにsetSiblingIndexを使用した時に、間違った順序でタッチイベントが処理される場合があるのを修正しました。
  • [Engine]重要なグローバル変数が上書きできないように、保護を追加しました。
  • [JSB]cc.pSubの戻り値の肩がVec2でない問題を修正しました。
  • [JSB]cc.callFuncコールバック関数の引数がJSBとWebで一致しない問題を修正しました。
  • [JSB]JSBでevent.stopPropagationを呼び出した時のエラーを修正しました。
  • [JSB]jsb.EventListenerAssetsManagerのための自動バインディングが修正されました。
  • [JSB]eventListenerのonTouchBegan関数で戻り値がtrueでないと時にクラッシュする問題を修正しました。

アップデート方法

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

ビルドを確認

 動作の確認のため、Hello Worldプロジェクトのビルドと実行を行いました。
 『Web Mobile』、『Web Desktop』、『Mac』、『iOS』向けで確認を行いました。
 結果ですが、『Web Mobile』、『Mac』、『iOS』は問題なくビルドと実行が出来ました。
 しかし、『Web Desktop』ではビルドは成功しましたが、実行すると下記のように表示されるだけで正しく実行されませんでした。
f:id:mmorley:20160602001525p:plain

あとがき

 個人的には、衝突判定の形状をビジュアルに編集できるようになったのが嬉しいです。
 細かい更新内容は、理解できないのも多々。ちゃんと訳せてないかも知れません。その事例に出くわした時にちゃんと理解できるのかなと思います。
 動作確認は、いままでのバージョンはすんなり動いていたので、しなくてもいいかなと思い初めていましたが、やってみると『Web Desktop』向けの実行が出来ませんでした。個人的には今のところ困らないので、新しいCocos Creatorに移行したいと思います。
 

広告を非表示にする