■プロフィール

Author:クリエイトウェーブスタッフ
開発における、諸々を書いていきたいなと思っています。

■最近の記事
■カテゴリー
■twitter

■QRコード

QR

■Amazon商品一覧【お勧めソフト】
■Amazon商品一覧【お勧め本】
■最近のコメント
■月別アーカイブ
■最近のトラックバック
■ブロとも申請フォーム
■twitter_follow

■ブログ内検索

■RSSフィード
■リンク
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

カテゴリー:スポンサー広告 |
[Unity 3D]ローカルキャッシュのメモ
Pです。

iOSやAndroid端末は、アプリ自体の容量を減らすためにローカルキャッシュを行うことがよくあります。
これをUnity3Dで実現するにはどうするかの備忘録です。

[1]画像や3Dなどのリソースを一旦AssetBundle形式に変換する
http://unity3d.com/support/documentation/ScriptReference/BuildPipeline.BuildAssetBundle.html?from=AssetBundle
ここにあるScriptを適当なUnityプロジェクトのEditorフォルダに配置する

ちょっと不便なのがiOS、Android、PCブラウザなどそれぞれについてAssetBundleを作らなければならない。
先に[Switch Platform]で目的のPlatformに切り替えておく。
Projectパネル内の画像を右クリックして[Build AssetBundle From Selection - Track dependencies]をクリック。
適当な名前を付けて保存。(拡張子はそのまま.unity3d)

今作った.unity3d形式のファイルをサーバーにアップロードする。
これでリソースの準備は完了。

[2]WWW.LoadFromCacheOrDownload()を使用
名前の通り、ロードとキャッシュを自動で行ってくれる便利なメソッドです。
Loadが完了したら、用途に応じてキャストしてあげます。

IEnumerator LoadCorutin(string url) {
  WWW www = WWW.LoadFromCacheOrDownload(url, 0);
  yield return www;
  if (www.error != null) {
    print(www.error);
  } else {
    if (url.IndexOf("texture") > -1) {
      //画像
      Texture2D texture = www.assetBundle.mainAsset as Texture2D;
    } else if (url.IndexOf("3d") > -1) {
      //3Dデータ
      GameObject go = Instantiate(www.assetBundle.mainAsset) as GameObject;
    } else if (url.IndexOf("audio") > -1) {
      //サウンド
      AudioClip clip = www.assetBundle.mainAsset as AudioClip;
    }
  }
}

一点、気をつけなければいけないことがあります。
キャッシュされたAssetBundleの識別は、ドメインやディレクトリ構造を無視したファイル名だけで行われます。
どういうことかというと、
http://○○○○/img/org/img0.unity3d
http://○○○○/img/thumb/img0.unity3d
上記2つの異なるパスに配置されたAssetBundleは、「img0.unity3d」というファイル名が同じため、同一ファイルとして扱われます。
よってファイル名だけでユニークとなるようにする必要があります。

ちなみにPHPであっても問題なく動作します。
MIME Typeは「application/vnd.unity unity3d」です。
さらにサーバー上で「.unity3d」を使用できるように以下の記述をします。
AddType application/vnd.unity unity3d

ただし、POST送信が出来ない(??)ことと、識別がファイル名だけで行われるので若干使い勝手が悪いかもしれません。
/img/get_img.php?type=org&id=0
/img/get_img.php?type=thumb&id=0
などとしても「get_img.php」が同じため同一ファイルとして認識されてしまいます。
なのでもう一工夫してファイル名が被らないようにする必要があります。



カテゴリー:Unity 3D | TM(0) | CM(0)
FlashDevelopの自動補完!?
Pです。

FlashDevelpoを使っていて見つけた小ネタを書いてみたいと思います。

接頭辞として「mc」「txt」「btn」
接尾辞として「_mc」「_txt」「_btn」
を付与すると、型宣言することなく「MovieClip」「TextField」「SimpleButton」型として認識され
コードヒントを出すことが出来ます。

例:
mcCanvas, result_mc
txtInput, username_txt
btnStart, next_btn

fdAutoCodeHint.jpg
mcGameの上にマウスカーソルを持って行ったところ

主にFlashIDEプロジェクトで役立つと思います。
Flash上に配置されたムービークリップやテキストフィールドのインスタンス名を
「mcGame」「txtPassword」のようにしておくとFlashDevelop上で
「mcGame.」までタイプするとMovieClip型のプロパティとメソッドがコードヒントで出るようになります。
インスタンス名を付ける時は、上記の法則に従うと効率化を図れそうです。

fdAutoCodeHint2.jpg
MovieClip型のメソッドgoto系が確認できます。

上記3つ以外に無いものかと探してみたのですが見つけられませんでした。

カテゴリー:Flash | TM(0) | CM(0)
FlashDevelop4のプラグイン
Pです。

数ヶ月前登場したFlashDevelop4。
超便利プラグイン「trace」と「duplicate」がFlashDevelop4では未対応とのことで
なかなか導入に踏み切れなかったのですが、ダメもとで検索したらありました。

[FD3] [FD4] Trace plugin - trace() generator
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=1128

[FD3] [FD4] Duplicate plugin
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=2993

Pluginの仕様が変わったから未対応という記事をどこかで見て無いと思い込んでました。

カテゴリー:Flash | TM(0) | CM(0)
unity3D人材募集!
おつかれさまです。
フッチーです。

クリエイトウェーブは、仕事の全体の8割くらいFlashコンテンツ(ActionScript3)が占めていたんですが、最近unityが多くなってきました。

もちろんFlashの相談も結構きてはいるのですが・・・
今期でいうと10月以降は、unityが8割近くになりそうな勢いです。

unityをやってみたいって方、クリエイトウェーブで働きたいって方がおりましたら
dev@createwave.jp まで

やる気さえあれば、初心者でも歓迎します!
まだunityやってる人、そんなに多くないですしね。 一緒にああだこうだと言いながら伸びていければと思います!

長らく英語の書籍しかなくて、それも悩みですが、日本語の書籍が9月、10月と立て続けに発売されます!
いままで海外サイトやチュートリアルムービー、日本で研究してる有志の方達のサイトをみて作ってた訳ですが、これで楽になるかも。。。 日本でも増えてくるでしょうからね。

Unityによる3Dゲーム開発入門 ―iPhone/Android/Webで実践ゲームプログラミングUnityによる3Dゲーム開発入門 ―iPhone/Android/Webで実践ゲームプログラミング
(2011/09/10)
宮川 義之、武藤 太輔 他

商品詳細を見る


早速かってきました。
残り2冊も楽しみです!



Unity入門 〜高機能ゲームエンジンによるマルチプラットフォーム開発〜Unity入門 〜高機能ゲームエンジンによるマルチプラットフォーム開発〜
(2011/10/01)
高橋 啓治郎

商品詳細を見る

Unityゲーム開発Unityゲーム開発
(2011/10/15)
ミッシェル・メナード

商品詳細を見る


テーマ:ソフトウェア - ジャンル:コンピュータ

カテゴリー:Unity 3D | TM(0) | CM(0)
ActionScript3.0で色相、彩度、明度、コントラストをいじる
おつかれさまです。
フッチーです。

前から、ActionScript3で明度とかいじる命令が良く判らないなあ〜ときになってました。
CSのオーサリングツールでは、カラー効果とかで直ぐいじれるのに、どうするのかなあ・・・・と

Tweenerとかに命令があるのか、Tweenerで明度とかいじってるサイトとかもあったんですが、Tweenerは使ったことない自分。

ColorMatrixFilterを使うのは前々から、思っていたけど、意味が判りにくいので後回しにしてました。
でも純正でColorMatrixFilterの明度とかいじる命令があった・・・ 忘れないうちにメモです。

まず
import fl.motion.ColorMatrix;
import flash.filters.ColorMatrixFilter;

で、ColorMatrix と ColorMatrixFilter の2つのインポートが必要です。


次に

var colorMatrix:ColorMatrix = new ColorMatrix();

で、新しいColorMatrixオブジェクトを作ります。


colorMatrix.GetFlatArray();

でColorMatrixFilterで使うための配列が取れるのですが、traceをかけるとデフォの標準な配列が入ってます。


colorMatrix.SetBrightnessMatrix(明度値);
で明度をセットして

colorMatrix.GetFlatArray();
で配列を取り出し

ColorMatrixFilter
に、その配列をセットして明度を調整できるようです。


仮にムービークリップ 「_mc」に明度値「50」をセットする場合は

var colorMatrix:ColorMatrix = new ColorMatrix();
colorMatrix.SetBrightnessMatrix(50);
var filter:ColorMatrixFilter = new ColorMatrixFilter();
var filterMatrix:Array = colorMatrix.GetFlatArray();
filter.matrix = filterMatrix;
_mc.filters = [filter];

で明度を調整することが出来ます。
明度値は、Number型で 0〜255 となってて0がデフォルトで通常値ですが それだと明るくなるだけなので -30とかマイナス値を入れてみるとちゃんと暗くなりました。動くのだから使っていいのかな・・・

コントラストをいじる時は
colorMatrix.SetContrastMatrix(コントラスト値);
コントラスト値、はNumber型で 0〜255

色相をいじる時は
colorMatrix.SetHueMatrix(色相値);
色相値値、はNumber型で 0〜255


彩度をいじる時は
colorMatrix.SetSaturationMatrix (彩度値);
彩度値、はNumber型で 0〜255

となるようです。
これで、少しスッキリしました(笑

テーマ:FLASH DEVELOP - ジャンル:コンピュータ

カテゴリー:Flash | TM(0) | CM(0)
次のページ

FC2Ad

FC2ブログ