#TokyoDemoFest 2018 の GLSL Graphics Compo で2位入賞しました

はじめに 2018/12/01〜12/02 に開催された Tokyo Demo Fest 2018 というデモパーティに初参加してきました。Tokyo Demo Fest をご存知ではない方のために、説明を公式サイトから引用します。 Tokyo Demo Fest は日本で唯一のデモパーティです。 デモパーティ…

GLSL Tech Night 2018 #GLSLTech で登壇しました

2018/09/13 に開催された GLSL Tech Night 2018 で発表してきました。 connpass.com私は「ビルトイン関数の使い方いろいろ!シェーダアートの表現力を高める小技集」というタイトルで、Unity-ShaderSketches や Shadertoy での作品作りに利用したテクニック…

「楽しい!Unityシェーダーお絵描き入門!」という講演をしました

4/10 にサポーターズCoLab勉強会で「楽しい!Unityシェーダーお絵描き入門!」という講演をしました!内容はフラグメントシェーダで2Dの絵を描くための入門的な考え方を紹介するというものです。当初の定員20名に対して150名近い申込みをいただきました。あ…

年末年始につくったものまとめ

あけましておめでとうございます。 本年もよろしくお願いいたします。年末年始はのびのびと手を動かしていました。 前から気になっていたシェーダースケッチに挑戦できたので良かったです。やってみたら数式だけでいろいろな図形があらわれるのが楽しくて、…

【Unity】空間を歪めてポータルのようなエフェクトをつくる

はじめに 帰省の新幹線の中でこういうポストプロセスエフェクトを作ったので、作り方を紹介します。空間の歪めかた分かってきました(新幹線で楽しくシェーダー勉強してます) pic.twitter.com/oyKSAV9sSt— setchi (@setchi) 2017年12月28日 実装方針 ポータ…

【Unity】ShaderLab でスケッチはじめました

はじめに ShaderToy とか見てるとすごい(小並感)な作品がたくさんありますよね! Shadertoy BETAここまではいかなくても、ちょっと自分の作品の演出でカッコいいこと出来るようになりたいので、いろんなテクニックについてじゃぶじゃぶインプット(&ぼち…

【Unity】モバイルで10万個のオブジェクトを描画してみた!

はじめに 大量のオブジェクトを描画するって魅力的じゃないですか!? GPUの力を使ってやってみました! 初めてのGPGPUなので、今後のテンプレートとして使えるような出来る限りシンプルな構造のものを作ってみました。 今回はモバイルを含め、より多くの環…

【Unity】線分同士の交差判定

実装時に少しはまってしまったので備忘録として残しておきます。 実装 (交差判定部分のみ) public static bool LineSegmentsIntersection( Vector2 p1, Vector2 p2, Vector2 p3, Vector3 p4, out Vector2 intersection) { intersection = Vector2.zero; var …

【Unity】ベジェ曲線を学び、実装する

ベジェ曲線とは 数式で曲線を表現する方法の一つです。 コンピュータ上で滑らかな曲線を表現できるため、多くのドローソフトや文字の描画で採用されています。 ベジェ曲線の原理 ベジェ曲線を理解するには、1次ベジェ曲線から一つずつ次元を上げながら動きを…

【Unity】「FancyScrollView」を公開しました

高度に柔軟なアニメーションを実装できる汎用のScrollViewコンポーネントです。 無限スクロールも対応しています。 github.com 以下ほぼ README のコピペです 導入 Unity 2017.1.0 以降が必要です。 このリポジトリを Clone するか、 Asset Store からプロジ…

【Unity】「HIT」のログイン時のようなエフェクトをつくる

HITとは? NEXONが出してるスマホゲームです。UE4製で綺麗なグラフィックのアクションゲームです。 mobile.nexon.co.jp ログイン時のエフェクトってどんなの? 実装方針 まずこんな画像を用意します。 こういうのはパーリンノイズが向いてる気がするので、パ…

【Unity】uGUIで使えるハイパーテキストを作りました

経緯 以前 uGUI Text で Twitter のクリック可能なハッシュタグのようなものを実装しようとして挫折したのをふと思い出して再挑戦しました。 作ったもの uGUI Text の指定した部分文字列にクリック時のコールバックや文字色を設定できる仕組みを作りました。…

【Unity】シェーダーを利用して音声波形を描く

今、広い範囲の音声波形を高速にリアルタイム描画する問題に取り組んでいます。要件として描画対象の範囲をグリグリ変更できる必要があって、これまでLineRendererやGLによる描画を試みましたがどれも欲しいパフォーマンスに届きませんでした。そこで、波形…

【Unity】スクリプトからuGUIのEventTriggerへリスナー登録する拡張を書きました

uGUI要素へ特殊なイベントを登録する際EventTriggerコンポーネントを追加してインスペクター上からぽちぽちやっていくと思いますが、スクリプトから直接AddListenerできる拡張を書きました。こんな風にイベントリスナを登録できます。EventTriggerが無い場合…

【Unity C#】Undo / Redoの実装

今Unityで音ゲーの譜面を作るエディタを開発していて、Undo/Redo の実装をする機会があったのでメモです。 今回はCommandパターンで実装しました。 UndoRedoManager.cs NoteEditor/CommandManager.cs at master · setchi/NotesEditor · GitHub ユーザが何か…

【Unity】テクスチャを分割して個別に保存する

↑のような画像を等間隔に分割したくて、なんかUnityで動くスクリプト書きました。まず対象の画像ファイルをAssetsフォルダに放り込みます。 スクリプトから画素値を扱うための設定として、ImportSettingsでTextureTypeを「Advanced」にして、Read/Write Enab…

【n Back Tracer】リリースしました。

Unity習作2本目のカジュアルゲームをリリースしました。次々と現れるパターンを記憶しながら、N個前のパターンを素早くなぞる脳トレゲームです。難しい選択肢を選ぶほど高得点を狙えます。n Back Tracer - Google Play の Android アプリ コードはGitHubに公…

【Kagaribi】リリースしました

Unity習作のカジュアルゲームをリリースしました。 火の玉を操作して白い枠をできるだけ多くくぐっていくシンプルなゲームです。 真ん中を通るのが高得点のコツです。Kagaribi - Google Play の Android アプリ コードはGitHubに公開しています。 setchi/kag…

【Unity】手軽にHTTP通信する

Unityで手軽にHTTP通信するクラスを作りました。 Actionを使うので使用する側でSystemを読み込みます。 using System; POSTではパラメータをDictionaryで渡すので下記も必要です。 using System.Collections.Generic; UnityでHTTP通信するクラス

静的サイトジェネレータHEXOを試したメモ

http://hexo.io/ ブログといえば動的生成が当たり前だと思ってたんですが、静的ファイルに生成してデプロイする手法もあるらしいです。静的サイトジェネレータにも色々あるんですが、普段良く使っているNode.js上で動くものにします。その中でGitHubスター数…

mixi Scrap Challenge 2014に参加した

11/16に行われたmixi主催のScrap Challenge 2014に参加してきました。 Scrap Challenge 2014 | 株式会社ミクシィ 学生向けエンジニアイベント 午前[セキュリティ概論] 午前中はWebセキュリティについて解説がありました。過去にmixiが実際に受けた攻撃につい…

ko-chaリニューアルしました。

手軽にコーディングチャットができるwebアプリ「ko-cha」をリニューアルしました。 前作は暇つぶしに数日で開発して色々と機能不足だったので、友達同士で使っている時に気になっていたところを今回のリニューアルで実装しました。 http://setchi.jp/ko-cha2…

【FileAPI, readAsText】JavaScriptで文字コードを判別して文字化けを倒す

HTML5で追加されたFileAPIで、ローカルファイルをJavaScriptで扱えるようになりました。ファイルの中身をテキストと見なして読み込むreadAsTextメソッドでは、第二引数で文字コードを指定できますが、そもそも文字コードが分からなかったり自動判別したいと…

HTML5で動くアスキーアートな動画プレーヤーを作った

http://setchi.jp/moziplayer/ドラッグ&ドロップされた動画ファイルや、インカメラの映像をテキストアートで再生するwebアプリを作って遊んでました。 UIとか色々手抜きですが一応動きます。一番右のつまみで解像度を調節できます。 Chrome/Firefoxで動作確…

【JavaScript】他の画面を見ていることを検知する

チャットアプリで、ユーザーが他の画面を見ている(と思われる)ときにチャットが来た場合に通知をしたかった時のメモです。それらしい資料が見当たらなかったので、ページが描画されていないときのrequestAnimationFrameとsetTimeoutの挙動の違いを利用して強…

プログラミング言語の拡張子一覧

拡張子からプログラミング言語を判定する場面があったのでメモ。 表記ミスや漏れがあったら指摘していただけると幸いです。 言語 拡張子 ABAP .abp ActionScript .as C .c C++ .cpp COBOL .cobol CoffeeScript .coffee C# .cs CSS .css Clojure .clj D .d Da…

MoziMovieアップデート

大したアプリじゃないですが、とりあえずβ版卒業させました('_')以下β版からの変更点です 大幅に軽量化して、以前よりヌルヌル動きます。 ブラウザのサイズに合わせてプレーヤーのサイズが最適化されます。 リピート再生機能を追加しました。 Firefoxに対応…

JavaScriptで文字列を圧縮する

jsで文字列を圧縮する方法を探していたらこんなページを見つけました。 javascript - でデータを圧縮/伸張する これを使えば良いやと思っていたら、あるデータパターンで上手く復元できないことがありました。 とりあえず JavaScript文字列(UTF-16)をUTF8化 …

AA動画をブラウザで再生できる【MoziMovie】作りました。

暇つぶしに、ブラウザ上でアスキーアート動画を再生できる【MoziMovie】というサイトを作りました。 ブラウザはGoogleChromeのみ対応、スマホ未対応です。MoziMovie | http://setchi.jp/mozimovie/

【コーデュート!】OCamlに対応しました。

伝えたいことがタイトルで完結してますが、OCamlに対応しました。 Hello, World!とクイックソートを追加してあります。文法的に省略可能な空白文字云々は全く調整してないので、もし「省いたらダメな空白が飛ばして打てる」や、その逆があったら報告していた…