タグ

ブックマーク / terasur.blog.fc2.com (16)

  • blog-entry-847.html

    どうも @tsubaki_t1 です。 コメント欄に「ポケモンのようなRPGのサンプルとなるコード・アセットがあれば紹介して欲しい」旨のコメントが来ていたので、少し探してみます。 まず「ポケモンのようなRPG」について少し考える。ちなみに自分の知識は「赤・緑」の地点で止まってるのであしからず(しかもうろ覚え) パっと思いつく要素を大雑把に並べてみる。 ・グリッドベースの移動 ・会話シーン ・ターン制バトル ・原則1対1 ・戦闘キャラクターの交換 ・敵を鹵獲し、鹵獲した敵を使役する ・レベルベースの成長 さて、この中で要素を分けると以下の3つ。 マップ ・グリッドベースの移動 ・会話シーン 戦闘 ・ターン制バトル ・原則1対1 ・戦闘キャラクターの交換 インベントリ ・戦闘キャラクターを鹵獲し使役 ・レベルベースの成長 となりそうだ。 まず出るのが、[Unity]ターン制のローグ系RPG、O

    blog-entry-847.html
  • テラシュールウェア Unity開発者が複数人で開発を進める上で覚えておくと幸せになる9つの事

    ゲームジャムが近いので、複数人開発で注意すべきことをまとめる。この内容は自分の開発経験やヒアリングを元に考えたものだ。※この方法が正しいとは限らない。とにかく意見がほしい 今回は管理システムにはGitでSource Tree、Unityのバージョンは4.5を想定。 まとめると言いたい事は以下の3つ バージョン管理は便利! メタデータの扱いは特に注意しろ! プッシュ・プルの失敗は解決出来る頑張れ! バージョン管理システムを覚える ゲームジャム・ゲーム開発で、Gitやバージョン管理システムが使えない人がいるとかなり足手まといになりやすい。特に、ゲームジャムのように展開が高速で物事が進む上に客員に余裕が無い場合、バージョン管理に参加出来ない人がグラフィックやシステムを作っても、最終的にゲームに組み込まれない事が多々ある。 Gitの操作方法については、【連載Git目次】ほんとは簡単?SourceT

    テラシュールウェア Unity開発者が複数人で開発を進める上で覚えておくと幸せになる9つの事
  • テラシュールウェア [Unity]4.3.4(ios)のWWWでメモリリークが発生する

    Unityの4.3.4のiOSでメモリリークが発生しているらしい。 その為、Unity 4.3.4のiOSビルドではWWWを使う度にメモリが増加する不具合が発生している。 これの対処法としては、Xcodeが出力する WWWConnection.mm のUnityDestroyWWWConnectionメソッドに[delegate.data release];を足すこととの事。 extern "C" void UnityDestroyWWWConnection(void* connection) { UnityWWWConnectionDelegate* delegate = (UnityWWWConnectionDelegate*)connection; [delegate.connection cancel]; delegate.connection = nil; [delegate.d

  • テラシュールウェア [Unity]アルファ入りの PVRTC を奇麗にするコツ

    これは凄い情報。 Unityで開発する人・iOSで開発する人には是非とも広がって欲しい。 PVRTCのアルファ画像の滲みを減らせる良い方法が見つかった。 keijiro/unity-pvr-cleaner 左が適応前、右が適応後。若干外側ににじみ出ている部分が無くなり、綺麗になっているのが判る。   何をやったかと言うと、下の画像のアルファで透明になる部分に色(灰色)を設定しただけ。 (理由は良くわからないが、アルファを出力した画像のアルファを抜くと、こんな感じの色になる) 詳しくはURLで解説しているので割愛するが、要するにアルファ0描画されないハズの部分が圧縮に影響を与えてしまっているらしい。 なので、その辺りを塗りつぶしてやればOKとの事。 ちなみにPVRTexToolには「アルファ部分を特定色で塗りつぶす」というオプションが有るが、Unityはそれを使っていないらしい。 もうちょっ

  • テラシュールウェア [Unity]プラットフォーム切替を15倍くらい高速化する Fast Platform Switch

    Unityのプラットフォーム切替は時間がかかる。 特にテクスチャの変換が時間がかかるので、変換に時間が掛かるテクスチャ形式のiOSやAndroidでは非常に高いコストとなってしまう(自分の今作っているアプリでは、Android->iOSに約7分前後かかる)。 そういった対策としてキャッシュサーバー(チームライセンス)があるのだが、もう一つもっと低コストで実現できるアセットを見つけてしまった。 Fast Platform Switch Fast Platform Switchは、プラットフォーム切替時にプラットフォーム情報をキャッシュし、プラットフォーム切替時にプラットフォーム移行前の状態を再現することでプラットフォーム切替を高速化するアセットだ。 公式HPのベンチマークによると約8倍〜15倍の高速化したそうだが、実際自分の環境だと7分かかる切替作業が15秒と15倍どころのレベルではない時間

    テラシュールウェア [Unity]プラットフォーム切替を15倍くらい高速化する Fast Platform Switch
  • テラシュールウェア [Unity]Unity2d機能、スプライトの使い方

    2D機能の使い方について、もう少し詳しく記載しようと思う。 まずはSceneビューを2Dモードに切り替える。Sceneビューに新しく2Dのボタンがあるので、それを押すと2Dモードのような感じになる。 スプライトの作り方 2Dを使う方法は簡単だ。 画像の設定を「sprite」にすると、指定の画像をスプライトとして使用できるようになる。後はスプライト画像をシーンにD&Dするだけで、スプライト画像をシーンに配置出来る。   既にパッキング(Atlas化)されている画像を使う場合、[Sprite]を[Multiple]に設定する。そうすると[Sprite Editor]ボタンが出現するので、そこでスプライトを分割する。   Sprite EditorのSlice(分割)モードは [Automatic] と [Grid] の2つ。 Automaticはスプライト同士の空白を見て自動的にスプライトを分

    テラシュールウェア [Unity]Unity2d機能、スプライトの使い方
  • テラシュールウェア [Unity]iOSのSS撮影時に音量が一瞬最大になる問題の対策は不要になりそう

  • テラシュールウェア [Unity]iOSのスクリーンショット撮影時に音量が一瞬だけ最大になる問題の対策

  • テラシュールウェア [Unity]Unityの特殊フォルダと各々の役割(追記版)

    EUnityは幾つかの特殊フォルダがある。例えばResourcesやPlugins等だ。 特殊フォルダの用途と注意点についてメモしておこうと思う。 Assets/StreamingAssets 変換していないデータをそのままアプリに組み込めるフォルダ。 pngや音楽といった画像や、データベースといったバイナリデータを組み込む事が出来る。Androidと他で若干アクセス方法が異なるが、Application.streamingAssetsPathでアクセス出来る。 ファイルは毎回ビルド時に転送するので、あまりにも多いとビルド時間が伸びる。 [Unity3D] StreamingAssetsについて WebPlayerTemplates WebPlayerのテンプレートを配置する。ここにWebPayerのテンプレートを配置すると、WebPlayerからテンプレートを選択できるようになる。 [U

  • テラシュールウェア [Unity3D] StreamingAssetsについて

    昨日StreamingAssetsについて書いたので、もうちょっと詳しい話を。 StreamingAssets http://docs.unity3d.com/Documentation/Manual/StreamingAssets.html ■StreamingAssetsの説明とアクセス方法 StreamingAssetsは簡単に言えば、ファイルをそのままアプリに持っていけるフォルダだ。そこに置いたものは何であれビルド時に余計なエンコードされること無くアプリ内に配置することができる。 ただし、基的にSystem.IOでしか参照することが出来ないので(一部の環境ではWWWから参照できるらしい)、必然的にResources.Loadなどのメソッドから参照することができない、面倒くさい面を持つ。 とは言え、SQLitedbファイルのようなUnityに統合されてないメタデータを読む場合は、

  • テラシュールウェア [Unity]iPhone/Androidでネイティブプラグインを作るコツ…みたいなもの

    ネイティブプラグインを作るのに四苦八苦したので、ポイントをまとめてメモしておこうと思う。 ネイティブプラグインの作成について http://www.slideshare.net/tatsuhikoyamamura/unity-15594873 #A131: モバイル向けNative Pluginの開発作法 http://vimeopro.com/unity3djp/unity-asia-bootcamp-tour-tokyo-for-the-public/video/41906327 ネイティブ拡張の実際 http://pukapuka-ahirusan.blogspot.jp/2012/08/unity_31.html [Unity][Unity3d]iPhone/iPadのプラグインを作成する方法(改訂版)Add Star http://d.hatena.ne.jp/nakamura0

  • テラシュールウェア [Unity]AssetBundleの管理について

    前回の続き 「ネイティブアプリ時代の ローカルデータ管理入門」の補足 http://terasur.blog.fc2.com/blog-entry-447.html 先日AssetBundleのキャッシュは150日しか維持出来ない事を書いた所、何やら反応があったので少し補足しておこうと思う。 ちなみにキャッシュが消される原因はコレ。 Caching.expirationDelay http://docs.unity3d.com/Documentation/ScriptReference/Caching-expirationDelay.html Cachingクラスを見れば判る通り、実はキャッシュが消される条件は他にもある。 例えばmaximumAvailableDiskSpaceとか、ClearCacheとか。 それを踏まえて、AssetBundleをどう管理するべきか考えてみた。 Ass

  • テラシュールウェア [Unity]Uniteセッション「ネイティブアプリ時代の ローカルデータ管理入門」の補足

    先日自分が担当したUniteのセッション「ローカルデータ管理入門」について、上手く説明出来なかったと思うので補足しておこうと思う。 「webデータを取得しよう」の補足 この部分は、単純にjsonを使うのを止めて欲しかった。 理由は単純で、実行速度・消費メモリ・ファイルサイズ・全てにおいてjsonは余りにも勿体無い。 と言うのも ・mini jsonはmessage packと比較して2倍近く多くメモリを消費する ・jsonはmsgpackと比較してシリアライズ/デシリアライズの時間が大体4倍近く遅い ・jsonのファイルサイズはmsgpackと比べて大体10倍近く大きい 単純にサイズが小さければダウンロード時間を減らし展開メモリを少なくて済むし 単純にシリアライザ・デシリアライザが短ければ処理時間も短縮できるし、 単純に消費メモリが少ないほうが良い。 サーバー側としても、処理時間と通信帯域

  • テラシュールウェア [Unity3D]暗号化できるPlayerPrefs。ZDatabase

    あけましておめでとうございます。 今年もよろしくお願いします。 m(_ _)m PlayerPrefsは手軽に使えて便利だ。 構造が非常にシンプルだし、SQL設計無しでもある程度使える。逆にデータベースの高速検索や集計等も便利だが、ゲームのデータ保存レベルで組み込むには少々オーバーな気がする。 とは言え、PlayerPrefsは余り頑丈ではない。というのも、解析しようと思えば解析できてしまうらしい。少なくとも暗号化等の改ざん防止は行ってないらしく、中々不安なデータ構造になってるらしい。 しかしあの手軽さは捨てがたい。 なので、暗号化出来るPlayerPrefsを探してみた。 ■ZDatabase ZDatabaseは一言で言えば暗号化出来るPlayerPrefsだ。 使ってみた感じ、セットアップ不要で使えて非常に手軽だった。 さらに保存できる型はStr/int/floatだけでなく、色々と

  • テラシュールウェア [Unity3D]もっと楽なシングルトンの実装

    以前にUnityのSingleton実装方法を紹介したけど、もっと良さそうな方法があったので紹介。と言っても、実は既に紹介していたりするけど、使い方までは分かってなかったので。 [Unity3D]シングルトンなオブジェクトを作る http://terasur.blog.fc2.com/blog-entry-203.html ■Awakeに依存していた過去のシングルトン 過去のシングルトンはAwakeの実行に依存する形で設計されており、Awakeのタイミングで呼び出す事ができなかった。例えばAwakeに処理を配置するとInstanceを設定する前に参照してしまい、最悪ぬるぽ(ガ)が発生していた。 それを避けるためにAwakeでコールしたい場合はインスペクターに参照値を書いておく感じの事が必要だったが、これが異なるプレハブを参照していた場合、プレハブ化したタイミングで参照が剥がれたりする。一昨

  • テラシュールウェア [Unity3D]Unity+Bitbucketでプライベートリポジトリを使ってみた

    gitやSVNなどのバージョン管理ツールは非常に便利。 でもUnityのAssetServerは、Unityと連携出来る代わりにちと高い。 で、色々と悩んでいたところ、こちらの記事が公開されたので、さっそく試してみた。 UnityGitHub しよう! http://keijiro.github.com/unity-github-tutor/ で、やるなら「無料」で「プライベートリポジトリ」を持てて、かつ 「サーバーメンテの手間がない奴」ということでBitbucketを試しに使って見ることにした。 Bitbucket http://www.atlassian.com/ja/software/bitbucket/overview ■リポジトリの準備 下の記事を参考にアカウント入手してリポジトリ作成。 リポジトリは、バージョン管理するファイルの親フォルダみたいなもの。 bitbucket

  • 1