unity

連結リスト(LinkedList)の使い所

こんにちは。技術部平山です。 今回は地味ネタです。図すらありません。 私は一年に何回か、連結リスト(線形リスト、とも) を使いたくなる時があります。 基本的なデータ構造として教科書には必ず載っていますが、 その割に使っている方が少ない印象を受けま…

どのDownloadHandlerでAssetBundleをダウンロードして保存するのが速い?

この記事では、 アセットバンドルのダウンロードと保存をどのDownloadHandlerでやるのが速いか、 ということについて 技術部平山が書いてみます。 最初にお断りしておきますが、まだ独自研究の域を出ません。 今回も プログラムはgithubに置いておりますが …

Unityでスレッドから乱数を使いたくなった時に気になったこと

ここでは、UnityEngine.Randomを使えば99.9%解決するような話題について、 技術部平山が趣味で書いてみようと思います。 サンプルコードはgithubに置いてあります。 なお、マルチスレッドはあくまできっかけであり、本記事にスレッドの話はありません。 ただ…

Unityのデバグ作業をSlackで効率化する

この記事では弊社東京プリズンでの Slackを使ったデバグ支援について、技術部平山が紹介いたします。 上の画像は今回のために作った 仮のワークスペースのスクリーンショットです。 以下のようなものがUnity側から投稿されていることがわかります。 「スニペ…

輝度+色差でテクスチャ圧縮(YUVあるいはYCbCr)

こんにちは。技術部平山です。 今回は以前書いたインデクスカラー画像に関する記事、及び、 16bitカラー画像に関する記事の続編です。 今回はRGBを「輝度」と「色差」に変換してから圧縮する技法を紹介します。特徴は、 GLES2で出せる そこそこ良好な画質 不…

16ビットカラー再考

こんにちは。技術部平山です。 以前インデクスカラー(パレット)について記事を書きましたが、 さらに原始的な圧縮である16bitカラー化についても記事にしようと思います。 ETC2やASTCによって使用頻度が激減しているというのになんで今更?と自分でも思います…

Unityでコンパイル時間を可視化する

Unityでゲームを動かしてみるのに、ビルドを待つ必要はありません。 ソースコードのコンパイルさえ済めば、すぐに動かしてみることができます。 しかし、この時間でさえも、コード量が増えていけば耐え難いものになるのです。 この記事では、技術部平山が、 …

端末性能を測るWebGLアプリ作ってみた

こんにちは。技術部平山です。 この記事では、雑にベンチマークプログラムを作ってみたことと、それに付随して、 ベンチマークプログラムを作りたくなるような事情 テストの設計と、その背後にあるハードウェア といった点について書きます。 なお、実行はこ…

Unityの複数解像度SafeArea対応で楽をするためには

モバイル向け開発は機械が様々です。 解像度は様々、アスペクト比も様々です。 最近は一部画面が欠けていて、ある範囲(SafeArea)に収めないと映ること保証しないよ、 という機械まで出てきました。 さて、これにどう対応するのが楽か? 技術部平山が、 弊社東…

補間関数で作るアニメーション

プログラムで動きを作ることは結構あります。 操作せずに観賞するアニメーションであれば、 アーティストが作る方がいい出来になると思うのですが、 操作によって介入があるアニメーション 場所や大きさ、速度、数などがゲームの状況に応じて変化するアニメ…

Unityで2D世界と3D世界を行き来するエフェクトをつくる

この記事では、上記動画のように、3D世界にいるキャラクターと、画面の上端と下端に貼りつけてある2Dの UIの間でエフェクトの行き来をする方法について、技術部平山が書いてみます。 実行可能なサンプルをwebに置いてありますので、 実行して動かしてみると…

AfterEffectsで作ったものをUnity用に(半)自動変換する

ここでは、AfterEffectsにて作成したアニメーションをどうUnityで再生するか? について技術部平山が書いてみます。 コードは実際の製品で使っているものを、ほぼそのままgithubに公開しておりますが、 あくまでサンプルとお考えください。作った人間にしかわ…

インデクスカラーテクスチャの思い出 〜懐かしのパレット〜

こんにちは。技術部平山です。 この記事では、今更インデクスカラーを実装してみたことについて書きます。 テクスチャ圧縮について調べた時に SEGA TECH BLOGの記事 を見つけまして、自分でも試したくなったのです。 なお、結論を先に申しますと、「ETC2で良…

UnityEngine.UI.Imageが透けてる所を塗るのが許せない

こんにちは。技術部平山です。 この記事では、UnityEngine.UI.Image、つまり「普通のImage」 だと余計な所まで塗ってしまってGPU負荷が大きいので、 塗る面積を削ってみた、というお話をいたします。 一枚目の画面写真で、右端が普通のImageで、左と中央が今…

「リッチテキストって頂点ムッチャ増えない?」から始まるUnityEngine.UIの性能調査

UnityでUIを作ると言えば、まずはUnityEngine.UIです。 中身のことを考える必要もなく、ドカドカとImageやTextを置けば 動くので大変有り難いわけですが、不意に猛烈に処理が遅くなることがあります。 本記事では、たまたま見つけた現象と、そこから疑問を持…

【Unity】グローバルイルミネーション(GI)を使わないプロジェクトでやっておくべきこと

はじめに こんにちは、ソーシャルゲーム事業部 ゲーム技研所属の清水です。 この記事はカヤックUnityアドベントカレンダー2018の25日目の記事になります。 最終日ですが、特に豪華というわけでもなく、パフォーマンスチューニング系のちょっとした小ネタを紹…

CINEMA 4D+Unityでクリスマスツリーを作る

はじめに この記事はカヤックUnityアドベントカレンダー2018の24日目の記事になります。 こんにちはハニカムと光り物が好きなカヤックエンジニアのオギワラです。 本日はクリスマスイブなのでイルミネーションを作り、その過程でのCINEMA4Dでのツールを使っ…

【Unity】ComputeShaderでランタイムにSDFマップを生成するエクスペリメント

はじめに こんにちは、ソーシャルゲーム事業部 ゲーム技研所属のアファトです。 この記事はカヤックUnityアドベントカレンダー2018の23日目の記事です。 「面白法人カヤック」をUnityでのダイナミックフォントで普通に描画するとこうなります。 SDFマップの…

【Unity】 簡単に水に近い表現を実現したい (Metaball)

1 はじめに こんにちは、カヤックのソーシャルゲーム事業部のmadaです。この記事はカヤックUnityアドベントカレンダー2018の22日目の記事です。 「Lion Studios」が作成した「Happy Glass」というゲームを遊んでみて、液体の表現に興味を持ちました。この記…

【Unity】日本語テキストの自動改行

1 はじめに こんにちは。ソーシャルゲーム事業部の額田です。 この記事はカヤックUnityアドベントカレンダー2018の21日目の記事です。 今回はTextコンポーネントでの自動改行についてお話ししていきたいと思います。 日本語のテキストを表示するときに文章の…

【Unity】LINQのパフォーマンス検証

はじめに はじめまして、2年目Unityエンジニアの大谷です。 この記事はカヤックUnityアドベントカレンダー2018の20日目の記事になります。 今回はUnityでLINQのパフォーマンスの比較をしてみました。 経緯 今回アドベントカレンダーを書いてみないかと勧めら…

【Unity】AppStoreReviewガイドラインの『4.2 最低限の機能』を満たす為にチュートリアルのアセットをiOSのみアプリ組み込みにした話

はじめに こんにちは、ソーシャルゲーム事業部 ゲームチーム所属の須藤 (@p_chin) です。 この記事はカヤックUnityアドベントカレンダー2018の19日目の記事になります。 今回はAppleのiOSアプリの審査に通る為に試行錯誤した知見について書こうと思います。 …

【Unity】Android App Bundleを触ってみた

はじめに ソーシャルゲーム事業部所属の荒井です。 2018年カヤックUnityアドベントカレンダーの18日目の記事になります。 Unityが新しくサポートしたAndroid App Bundleを触ってみた際の記録をもとにした記事になります。 つっこんだ技術的な内容はなく軽め…

【Unity】HTC Vive で両手を使った transform 操作を実現する

はじめに この記事はカヤックUnityアドベントカレンダー2018の17日目の記事になります。 こんにちは、ソーシャルゲーム事業部の浅利(@kasari39)です。 今年は Oculus Go の登場や、VTuber の流行により VR がより身近な存在になったように感じますね。私も O…

Unityエディター拡張のカスタムプレビュー

はじめに こんにちは、ソーシャルゲーム事業部のUnityエンジニアの魏です。 この記事はカヤックUnityアドベントカレンダー2018の16日目の記事になります。 今日の記事ではUnityエディター拡張のカスタムプレビューを紹介していきたいと思います。 カスタムプ…

【Unity】RGBをHSVに変換して明るさとかを変えるシェーダー

はじめに こんにちは。ソーシャルゲーム事業部の小笠原です。 この記事はカヤックUnityアドベントカレンダー2018の15日目の記事です。 今回はRGBをHSVに変換して明るさとかを変えるシェーダーの話です。 概要 オブジェクトを暗くしたり、彩度を低くしたい時…

【Unity】Androidで情報をローカル保存するときの話

はじめに ソーシャルゲーム事業部の中島と申します。よろしくお願い致します。 カヤックUnityアドベントカレンダー2018の14日目の記事となります。 Android端末上で動作するアプリで情報をローカル保存する際の注意点について書いてみます。 (Unityは2017.4.…

【Unity】アニメーションクリップでuGUIのマスクの形を変更させる

はじめに はじめまして、ソーシャルゲーム事業部のUnityエンジニアのクアンです。 この記事はカヤックUnityアドベントカレンダー2018の13日目の記事になります。 6日目の記事ではメッシュで枠を描画していましたが、この記事ではカットイン演出に使うマスク…

【Unity】Android,iOS端末のバッテリー残量と充電状態の取得

はじめに はじめまして、Unityエンジニアの泉川です。 この記事はカヤックUnityアドベントカレンダー2018の12日目の記事になります。 今回はUnityで端末のバッテリー残量と充電状態の取得について書いていこうと思います。 この画面の右上のやつです。 経緯…

Oculus Go向けコンテンツを最速で作るぞ(Unityからの書き出し方法・コントローラーの表示方法・VR空間内での移動方法)

UnityとOculus Goを使うと、さささっと簡単に、等倍のコンテンツをつくり、VR空間でプレビューできます。 個人的には「展示空間のシミュレーション」や「リビングにテーブルを置いたときのシミュレーション」に使ったりしています。