B-スプライン曲線がサッパリわからない

画面写真をクリックするとサンプルアプリに飛びます。 今回はサンプルがhtml5ですので、それがそのままソースコードですが、 一応githubにも置いてあります。 内部に「ここからここまでライブラリ」的なコメントがあるので 、その部分だけ持っていけばライブ…

高さの影響を受けるフォグ 〜「低い所にガスが溜まってる」感を出す〜

画面写真をクリックするとWebGLビルドに飛びます。 こんにちは。技術部平山です。 今回は「高さ方向に変化があるフォグ」について扱います。 Unityに標準では入っていない奴で、 「地面付近に水蒸気が溜まってる感」とか「毒の沼地から怪しい霧が立ち登って…

Unityで音にフィルタをかける

こんにちは。技術部平山です。 今日は実行時に音にフィルタをかけることで、 元々のデータをゲームの状況に合わせて変化させる方法について書きます。 私も実際の製品でフィルタを活用して作り込んだ経験まではないので、 初歩的なことしか書けませんが、 皆…

好き好き対数正規分布

動画をクリックするとWebGLビルドに飛びます。 今回のサンプルコードもgithubに置いておきましたが 、あまり役には立たないと思います。 こんにちは。技術部平山です。 今回は軽いお話です。 対数正規分布 をご紹介します。 動機 前回の記事では、 ランダム…

Unityアプリを無差別タップで自動テストする

画面写真をクリックするとWebGLビルドに飛びます。ソースコードはGitHubに置いてあります。かつて製品で使ったものに著しい拡張を施した直後なため、 まだ実戦経験が浅いコードです。バグがあったら教えていただけると助かります。 こんにちは。技術部平山で…

Lobiの画像変換サーバーをImageFlux+Lambda@Edgeで置き換えたはなし

SREチームの長田です。 先日Lobiの画像変換サーバーをImageFluxに移行したので、その過程を紹介します。 画像変換って? Lobiはチャットを主軸としたコミュニティサービスです。 ユーザーはチャットメッセージに画像を添付することができます。 また、ユーザ…

3Dゲームで丁度よく画面に収めたい!自動で!

動画をクリックするとWebGLビルドに飛びます。 また、ソースコードはgithubに置いてあります。 こんにちは。技術部平山です。 今回は、3D空間にある物をいい具合に画面に収めるための計算について説明します。 動画では16個の球が好き放題動き回っており、 …

スマホ向け3Dゲームにおける「とりあえず」のレンダリング設定

画像をクリックするとWebGLビルドに飛びます。 こんにちは。技術部平山です。 この記事は、スマホ向けに3Dゲームを作る際に 「とりあえず」やっておく描画設定について考えたり試したりしたことの記録です。 設定の項目は主に、 ライトマップ 影 ライトプロ…

ベクトルを3D空間で回す

画面写真をクリックするとWebGLビルドに飛びます。 ソースコードはgithubに置いてあります。 こんにちは。技術部平山です。 今日は、球面に点を散らす方法を使って、 3D空間でベクトルをいろんな方向に曲げてみます。 これができて初めて、「ビームが敵に当…

円や球面にランダムに点を散らしたい〜高校数学を使って分布関数を作る〜

画面写真をクリックするとWebGLビルドに飛びます。ソースコードはgithubに置いてあります。 こんにちは。技術部平山です。 今日は先日のビーム に関連したネタです。 ビームのサンプルではビームが敵に当たると火花が散りますが、 それぞれの火花が飛ぶ方向…

ビームやミサイルの追尾(ホーミング)計算

こんにちは。技術部平山です。 2019/06/25に4社合同のLT大会があったのですが、 お客さんがIT業界の方々ということで何を話していいかわからず、 たまたま趣味でやったことをそのまましゃべってしまいました。 今回の記事は、このデモの追尾計算に絞って説明…

デシベルのすすめ

画面写真をクリックするとWebGLビルドに飛びます。 こんにちは。技術部平山です。 今日は、デシベル(db)のお話です。どうでしょう?使い慣れてますか? 使い慣れている方は読む必要がないお話です。 Unity屋にとっての音量 Unity上で音量を調整しようとすれば…

WEB+DB PRESSでカヤックSREチームによる連載が始まりました!

SREチームの長田です。 先日技術評論社様から発売されたWEB+DB PRESS vol.111にて、 カヤックのSREチームメンバーによる連載が開始されました。 WEB+DB PRESS Vol.111作者: 松田明,y-yagi,佐藤建太,夜道,村田賢太,伊藤英明,見川孝太,新井剛,関陽介,海老原圭…

スマホでデバグ用Httpサーバ(2) ファイル階層表示とその場編集

こんにちは。技術部平山です。 今回はhttpサーバをスマホで動かす記事の続編です。 テキストファイルをブラウザ上で編集できるようにし、 また、StreamingAssets以下のファイル階層を見られるようにしました。 テキストならその場で編集できますし、それ以外…

Raycasterを自作してデバグUIをUGUI非依存にしてみた

こんにちは。技術部平山です。 以前デバグUIのライブラリを作ったことについて書きました が、HoloLensで動かないことがわかり、改良しました。 前のコードに上書きしてありますが 、前回と違って実製品でのテストを経ていない上に、 以前とはインターフェイ…

スマホ実機でデバグ用のhttpサーバを動かしてみる

こんにちは。技術部平山です。 この記事では、スマホ実機でhttpサーバを動かしてPCその他のブラウザ からアクセスできるようにことで、 開発を効率化できる可能性について考えます。 ただし、今のところ大規模製品への実戦投入はしておりません。 あくまでサ…

AudioClipなしで音が鳴る動的波形生成

こんにちは。技術部平山です。 今日は、Unityで実行時に音声波形を作って鳴らしてみました。 残念ながら99.9%趣味です。 楽曲や効果音は事前に作ったものを鳴らすのが普通で、 CPUで波形を生成しながら音を鳴らす、なんていうことはまずないと思います。 な…

CGの遠近感をシェーダで変えてみる

こんにちは。技術部平山です。 今日は、10年くらい前から「製品で使ってみたい」と思いつつ、 未だに使えずにいる処理についてお話させてください。 CGの遠近感をシェーダで変えてみました。 コードはgithubにサンプルプロジェクトの形で置いてあります。動…

GLES2な低価格スマホでもブルームエフェクトしたい

こんにちは。技術部平山です。 この記事では、スマホでブルームエフェクトを実装したことについてお話します。 コードはgithubに置いてあり、 便宜のためにunityPackageも用意してみましたが、 まだ実戦投入しておりません。あくまでもサンプルとお考えくだ…

C#に潜むstructの罠

こんにちは。技術部平山です。 この記事ではC#のstructを使った際にはまった罠について書きます。 Unityでの体験を軸にお話しますが、Unityに限ったことではないかと思います。 お急ぎの方のために結論を申しあげますと、structを使うなとなります。 どうし…

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

こんにちは。技術部平山です。 もうすぐ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アプリ作ってみた

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