【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 のコピペです 仕組み FancyScrollView はセルの位置を更新する際に、画面に見える範囲を正規化した値を各セルに…

【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!とクイックソートを追加してあります。文法的に省略可能な空白文字云々は全く調整してないので、もし「省いたらダメな空白が飛ばして打てる」や、その逆があったら報告していた…

CSS3のcubic-bezierの書き方でjQueryのeasingを生成する

CSS3のアニメーションでtiming-functionを指定する際のcubic-bezier関数がありますが、 同じ書き方でjQueryのanimatinoのeasingを生成してくれるプラグインがありました!https://github.com/rdallasgray/bez translation-timing-function: cubic-bezier(0.0…

【コーデュート!】コード一覧でランキングの順位を表示

ユーザーからの要望により、コード一覧の中でランキング登録済みのものに、本人の順位を表示する機能を追加しました。 確かにこれは便利や! 一人で作っていると隅々まで気配りが行き届かないことが多いので、実際に使った人からの声はかなり参考になります…

【コーデュート!】レーティングの計算式

現在レーティングは下記の式で求めています。本人の平均スコア × SQRT(ポイントの合計)ポイントとは、各ランキングの順位を反転させたものです。 10人参加しているランキングで、2位の人のポイントは「9」になります。式はあんまり深い所まで考えられなかっ…

【コーデュート!】2013/10/10の変更点

【変更点】 ゲームスタートのトリガを「スペースキー」から「コードの最初の文字」に変更しました。スピードやミス率の計測はコードの2文字目からになります。 【新機能】 結果画面でツイートボタンを押すと、結果をツイートできるようにしました。 ※いいね…

【コーデュート!】2013/10/09の変更点

前回の記事からの変更点です。 【修正】 結果画面でランキング登録ボタンが押せなくなるバグを修正しました。 非公開コードの記録が総合ランキングに反映されていた不具合を修正しました。 【新機能】 C言語に対応しました。HelloWorldも追加 https://codeut…

【コーデュート!】総合ランキングを実装しました

全ランキングと言語別ランキングを集計した総合ランキングを実装しました!今のところ、コード毎の 本人の順位 本人のスコア ランキング参加人数 の3つの値をもとに総合スコアを集計しています。総合スコアは、多くのランキングに登録してコツコツと増やすこ…

【コーデュート!】ESCキーでのリトライ機能を実装しました

以前から要望にあがっていたESCキーでのリプレイ機能をちゃんと実装しました。 ESCを押すと、リロードせずにプレイ前の状態に戻ります!実装に時間がかかってたのは、自分が2ヶ月前に書いたコードを読み解けなかったからです(汗 暇つぶしに遊んでみて下さい…