アセットバンドルの不満をなんぼか軽減するライブラリを作ってみた

こんにちは。技術部平山です。 もうすぐAddressable Asset Systemなるものが出て、 AssetBundle関連の問題が何もかもが解決するように言われている昨今ですが、 いろいろありまして待っていられないので、自分で作ってみました。 コードはテストプロジェクト…

AssetBundleとアプリ本体のアセット重複を防ぎたい

こんにちは。技術部平山です。 今日は、「アセットバンドルに入れる素材をアプリ本体のプレハブから参照しっぱなしじゃないかー」 という事故を削減するためのツールをご紹介します。 コードはGithubに置いてあります(AssetReferenceFinder.cs)。 そのままで…

連結リスト(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で良…

YAPC::Tokyo 2019 にカヤックのエンジニアが3名登壇します! #yapcjapan

技術部の小池です。 いよいよ今週末に迫りました YAPC::Tokyo 2019、弊社からも3名登壇予定なのでご紹介させていただきます! yapcjapan.org トーク内容をプロポーザルの抜粋にてご紹介します。いずれもカヤックの仕事から生まれたノウハウが詰まった内容と…

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

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

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

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

クリスマスに贈る エンジニアのためのプロテイン知識

この記事は KAYAC Advent Calendar 2018 の25日目、つまり最終日、 クリスマス の記事です。 自己紹介 こんにちは。 Lobi チームの長堂(@kzmsngs)です。 iOS エンジニアをやっていまして、今年は目標にしていた iOSDC 2018 での登壇を果たしました。 techblo…

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

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

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

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

動画配信ソフト「OBS」をPythonで操るぞ~

はじめに こんにちは~。 会社のみんなから「ポン太郎」と呼ばれている技術部新卒の井上宗汰です!(同期に井上がもう一人いる) 「なんだか全然仕事できなさそ~」って感じのあだ名ですが、毎日を全力で生きているので何卒。 最近はイベント関係で使うシス…

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

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

LINE Thingsでお年玉を楽しくする

この記事は、Tech KAYAC Advent Calendar 2018 の23日目の記事になります。 こんにちは!面白法人カヤックのIoT芸人こと入江(@shinnoske0714)です。 業務ではHTMLファイ部というチームでフロントエンドエンジニアをやっています。 技術の無駄遣いをモットー…

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

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

JetBrains IDE を使うなら覚えておきたい 10 の tips

こんにちは!技術部の小池です。 Tech KAYAC Advent Calendar 2018 の22日目を担当させていただきます。 はじめに みなさんお手元の開発環境/エディタは何をお使いですか?私は数年前まで iOS 開発は Xcode、Android 開発は Android Studio、サーバサイド開…

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

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

regl入門

こんにちは、カヤック・クライアントワークチーム・フロントエンドエンジニアのMr.ブラウンです。 今回は、 「Fast functional WebGL」 と謳っているreglを紹介いたします。 ※ 多少、WebGL・GLSLをさわったことがある前提で話が進んでいきます。 はじめに re…

カヤック独自の職能? リエゾンについて

ソーシャルゲーム事業部でリエゾンをしている飛鷹と言います。 自己紹介で早速出てくるリエゾンというワードですが、今日はこのリエゾンというものの紹介をさせてください。 リエゾンとは チームによりリエゾンのカバーする範囲は異なりますが、基本的にはプ…

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

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