※170607 補足記事をアップしました うにばな スクリーンスペース系のシェーダに関するTips 今回は”エフェクト用のシェーダに関するアイデア”の補足でGrabTextureを使用する場合のパーティクルのカラー合成をしてみます。 GrabTextureは背景からテクスチャにキャプチャした画像をカラー合成の対象にできる命令で スクリーンサイズのスナップショットをテクスチャに展開します。 GrabTexture命令で 取り込んだテクスチャにシェーダでモデルのカラーを合成をしてやれば ”エフェクト用のシェーダに関するアイデア”で使用したシェーダと同じような効果がねらえます。カラーを合成する式は これも以前掲載した フォトショップの合成式を使用することが出来るため フォトショップ上の見た目と同等の表現が期待出来て デザイナーにとっては非常にありがたい機能です。 ただしGrabTexture命令
前回更新から間が開いてしまい 申し訳ないです。 シェーダーか背景と予告したのですが Sendmessage()メソッドの検索が多かったのでちょっと寄り道して データ最適化の話をします コードを綺麗に見せるスクリプトを記事に埋め込むと余裕の文字数オーバーしてしまうので見づらいのは 勘弁して下さい。 色とかこりたいんですけど 記事のデータ量制限がきびしくてね シンプルにならざる。 ■Sendmessage()で複数の値を送信する方法 Sendmessage ()で複数の値を送信するには 配列、クラスなどを利用します ●配列を使用する場合 ●送信側 var goTo : Vector3; var arr = new Array(); arr.Push (goTo); arr.Push (true); other.SendMessage ("GoTo", arr); ●受信側 function G
こんばんわです 季節がらまたも台風が 西日本方面からちかづいているとか 今年は大きめの 『大自然のおしおき』 が押しよせているようですが 被害が出ないよう気を引き締めないといけませんね そんな業務連絡 さて ようやくお仕事のほう一段落しましたが まだ膝に受けた傷が癒えておりません 長いこと記事も更新していないため かるく翻訳ネタでリハビリをしようと思います。 今回はUnite2013のUnityのモバイルゲームの最適化に関するペーパーを PDFのリンクだけだとさみしいので簡単に訳してみました 情報としてはちょっと古めかもしれませんが、これからUnityでゲーム制作を初める方は参考にどうぞ。 |||||||||||||||||||||||||||||||||||||||||||||||||| □Optimizing Unity Games for Mobile Platforms | Ang
Unite2012の講義内容をまとめました 元ネタは 『Performance Optimization Tips And Tricks For Unity』 Jonas Echterhoff & Kim Steen Riber http://video.unity3d.com/video/6957357/unite-2012-performance なのですが GPUの最適化に関しては、ほぼ ?にまとまっていました(ただし英語 http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html シェーダ解説で一度解説したような気もするので 8月頃の記事を参照してください 忙しくて見れていなかったための自分用まとめですので すでに見た方はスルーしてください 『Unityのパフォーマンスの最適化 TI
講座みたいなもの番外編です。 今回は "Unity3D 高速化" という検索ワードが非常に多かったため 公式サイトなどで確認した手法を まとめてみます。 ■『使用頻度の低いファンクションは削る』 ■『FindObjectsOfType, FindGameObjectWithTag, GameObject.Find といったFind系は処理が重い』 出来る限りAwake()、Start()文中などの初期化段階で行いましょう ■『static型を使用してください』静的な変数であるStaticタイプを使用することでメモリは固定され処理効率があがります。 これちょっと訳が正確かわかりません 単純に静的な値の割付け(つまりキャストしなさい)ということかもしれません。 最近のハードウェアでのフレームあたりのドローコールは500回程度ですが あまり多いポリゴン数とライトの数は処理を低下させます 対策とし
9月に入りました ってもう 8日です。 急に涼しくなって 体は元気になったのですけど 開発の方はそれほど進んでいるわけでもなく ハードディスクがデータを持って行ってしまった関係で ちと記事の更新が滞っています もうしわけないです。 そんな状況ですが Dota系ゲームプロジェクトのほうが少し進展していますので 進捗報告です。 とりあえず今週ネットワーク対応しました。 というかUnityのネット関連は はじめわさっぱりわからなくて、胃ががキリキリしたんですが いくつかサンプルを見ながら試してみたら するっと出来てしまって拍子抜けしたところです。 Unityでは多くの場合マルチプレイはSmartFoxという無料サーバーソフトを使用するようです あと Photonとかね。 フリー版でも20人まで入れるんですよー マルチプレイは多すぎてもゲームにならないですから十分じゃないかな。 なんですが 専用の
すっかりご無沙汰していましたがトラックバックをつけてもらいました オブジェクトの非表示を 子供だけに行いたいということらしかったのですが 説明が不足してました ゲームオブジェクトの親子の操作方法についてお話しします。 var object:GameObject = gameObject.find("オブジェクトネーム") これは ゲームオブジェクトを取得することができます。 objectの階層下の子供を取得したい場合は transform.Find("子供の名前")を使用します。 階層が深い場合は transform.Find( 直下の子供の名前/・・ /取得したい子の名前)というように ツリー構造をファイル操作のディレクトリと同じように記述します。 例) function Update() { aFinger = transform.Find("LeftShoulder/Arm/Hand
Unity3Dでの配列に関しての検索が多かったので記事を書きました。 具体的にどのような場面で使用するかといえばやはり配列とそのソートでしょうか ゲーム中でアイテムの登録やアイテムの整理やらのデータの並べ替えなどが問題になることが多いです。 どんなことに使用するの?ということで いちおう例をあげておきます。 現在作成中のDota系ゲームではミニオンのジェネレート地点から敵のベースまでの移動経路に配置された waypointデータをソートするのに配列ソートを使用しています。 まず最初にwaypointにwaypoint本体の値(Transform)と敵のベースまでの距離をclass作成して 距離をキーとしてwaypointの並べ替えを行なっています。 Inspectorで一個づつ近い順に登録してももちろん有効ですけど データが変わるたびにその労力はいやでしょ?w なのであらかじめ Waypo
テラシュールウェアさんのところで、ヒットチェックに関する記事が書かれていましたので補足的なことを解説してみようと思います。 内容はリンク先を参照してみてください。 ■[Unity]地面の接地判定を取得する3つの方法 http://terasur.blog.fc2.com/blog-entry-555.html ・CharacterControllerのisGroundを使う ・CheckSphereを使う ・SphereCastを足元に撃つ 能動的にスクリプトでコリジョン判定を確認する場合はこの例のような感じになるとおもいます。 以前も最適化の記事でPhysicsタイプの関数は全体的に重た目なのでなるべく限定して使用したいということを記述してきましたが、ゲームエンジンのスクリプトがなぜ速度をあまり必要としないかという解説が公式のアンリアルスクリプトの項目に寄せられていまして、 ゲームのスク
お待たせしました Unityばなしです。 検索で多いセーブロード関連についてすこし Unityエンジンでよく使うだろうものをピックアップしました。 ■Fileに直接書きこむ Save and Load from XML http://www.unifycommunity.com/wiki/index.php?title=Save_and_Load_from_XML WikiのXml形式でのセーブロードスクリプトです。 http://answers.unity3d.com/questions/971/how-to-scrip-a-save-load-game-option UnityAnswerにも回答が載っています ■PlayerPrefs http://unity3d.com/support/documentation/ScriptReference/PlayerPrefs.html リ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く