読者です 読者をやめる 読者になる 読者になる

Programming Serendipity

プログラミングを中心に種々雑多に書き留めます

memo

memo

シェーダーでスムーズなトランジションを行う

こういうのをシェーダーを使って実装します。続きからどうぞ。

お久しぶりです

最近忙しくて更新してませんでしたが、一区切りついたので、また何か書きたくなったら書いてこうと思います。 仕事でUnityを使っていましたが、山場に差し掛かるとUnityの事情を追うのも最低限になってしまい、自分の知識が5.3で止まっています。まずは最新…

1年を振り返って

この記事はさいたまげーむす Advent Calendar 2016 22日目の記事です。 個人的にこの1年を振り返ります。

ゲーム開発中のgit pushを高速化する

Git

この記事はさいたまげーむす Advent Calendar 2016 21日目の記事です。 ゲーム開発ではテクスチャ・サウンドをはじめとしていろいろと重いデータを扱います。これらをgitで扱うと長いpush時間に悩まされることがあります。これを解決しましょう。

フォルダを再帰的に生成する

この記事はさいたまげーむす Advent Calendar 2016 16日目の記事です。 AssetDatabse.CreateAsset()でScriptableObjectを作ろうと思い、パスの途中のフォルダは存在しなければ自動的に作られるかと思ったら、フォルダは明示的に作る必要があることに気づく!…

ScriptableObjectの中にScriptableObjectを入れる方法

この記事はさいたまげーむす Advent Calendar 2016 11日目の記事です。 通常、ScriptableObjectにはSerializableなものを格納することができますが、ほかのクラスオブジェクトは一度は入れることはできるものの、一度再生してしまうと情報を失ってしまいます…

Unity開発に便利なVisualStudio拡張

この記事はさいたまげーむす Advent Calendar 2016 && Visual Studio Advent Calendar 2016 11日目の記事です。 ここでは、Unityでゲーム開発(C# + ShaderLab)をするうえで便利なVisual Studioの拡張機能を紹介していきます。

Unity開発向けGit LFS 追跡対象リスト

Git

この記事はさいたまげーむす Advent Calendar 2016 10日目の記事です。 開発に必須のGit。ゲーム開発ではリソースが大きいことからリポジトリのサイズが肥大化しがちです。リポジトリのサイズに制限をかけているサービスも多く、例えばBitBucketでは2Gを超え…

object型には気を付けよう!

C#

この記事はさいたまげーむす Advent Calendar 2016 4日目の記事です。 UnityというよりはC#ですが… string配列の0番目を除いた1番目以降を可変長引数のメソッドに渡し、それぞれの型を復元したいケースがありました。 このとき、一度 List<object>に入れてから渡して</object>…

uGUIのScrollViewを使いこなす7つのTips

この記事は Unity Advent Calendar 2016 3日目の記事です Unityは2つとも満員で、さすがに盛り上がってますねー。自分は普段縁がないようなWeb系やサーバーサイドのアドカレをぼんやり眺めるのが好きです。同じプログラミングでもかなり世界が違うものだなと…

シェーダーで円を描く

画像は使っていません。線のアンチエイリアスを頑張りました。 github.com

新興3Dゲームエンジン「Banshee3D」が面白そう

なんとなく調べものしてたら、このようなゲームエンジンを見つけました。 www.banshee3d.com ゲームエンジン一覧にもまだ載っていない新しいゲームエンジンのようですが、見た目からしてUnityとUE4を組み合わせたようなイメージで、割とガチでUnityの首を取…

「さようなら大手キャリア」 MVNOに乗り換えました

そういえば、某S社からIIJMioに乗り換えました。 いい加減大手キャリアの競争しているように見えて価格を合わせたぼったくりにうんざりしていたので。 決めたのは少し前だったけど、違約金がとられない月が近かったので少し待ちました。 F*** YOU 2年縛り。 …

ShaderLabのBlendの考え方

Blend SrcAlpha OneMinusSrcAlphaみたいなやつ。続きからどうぞ。

複数のButtonのOnClickイベントのパラメータに一括で`0, 1, 2,...`のように連番を設定する

ButtonのonClickのイベントの引数に0から順番にいっぺんに数字を入れたいことってありますよね。 これを自動化するスクリプトを紹介します。続きからどうぞ。

ヒエラルキーにある全てのプレハブをApplyするエディター拡張

実行してみたらEditorと動き違う…と思ったらプレハブがApplyされてなかった!(泣) ということ、ありませんか?(私はあります) ということで、安全のために、全てのプレハブの更新を適用するスクリプトを作ってみました。続きからどうぞ。

Dead by Daylight

最近、Dead by Daylightというsteamのゲームをよくやっています。面白いですねこれ。 ある日ふと、そういえばsteamのゲームを一度もプレイしたことがないなと思い、周りの評判もよく、売上100万本を超えたらしいこの作品をプレイしてみました。値段も2000円…

コミケ(C90)に参加しました。

今回の夏コミで、前回出したものと同じ「モンスターをストライクするゲームの作り方」を出展しました。 コミケ初参加ということで、不安もありましたが、いろいろな人に来ていただきました。来ていただいた方、ありがとうございました。 若い男性が多かった…

MinMaxSliderの実装

今度は、これを作ってみます。

NGUIのようにTransformを便利に拡張する

Transformをこのようにする方法を紹介します。

コミケに出ます@3日目 西f21b

サークル情報:https://webcatalog-free.circle.ms/Circle/12703206 技術書典で出したのと同じものを持って、コミケに出ます! 3日目の西ホール4階、旧企業ブースの位置です。 技術書典では委託だったので、手に取っていただいた方と話せなくて残念でしたが…

編集後記:「モンスターをストライクするゲームの作り方」

技術書典というイベントで、「モンスターをストライクするゲームの作り方」を発表した。 techbookfest.org 作った感想としては、とにかく大変だった。 私は今までずっと、「スタートから完成まで基礎知識がすべて含まれたゲーム開発解説コンテンツがないのは…

インスペクタにboolの配列を出すとき、チェックボックスを横に並べて表示させる方法

boolの配列って普通こうなりますよね。 それを… こうすると見やすくありませんか。これを紹介します。

6/25 技術書典イ-02で「モンスターをストライクするゲームの作り方」を発表します

techbookfest.org こちらのイベントに参加します!Unityの使い方のフル解説動画です。 何もない状態からゲームが完成するまでの一部始終を収めたDVDを500円で配布します。詳しくはイベントページへ。 抽選には落ちたのでB1Fの委託スペースでの参加になり、私…

1行プロパティドロアーの実装を改良してみた

前回のコードを改良して、スクリプトに分けてみました。

クラスをインスペクタに表示するとき、見栄えをかっこよくする方法([CustomPropertyDrawer])

何かのクラスを[Serializable]してインスペクタに表示させるとき、そのままだとこうなりますよね…。 これを… こう表示できたらカッコよくありませんか?(省スペースにもなりますし。)これのやり方を紹介します。

特定のプレハブを全てのシーンにコピーするエディタ拡張(ならびにHideFlagsの使い方)

続きからどうぞ。

指でなぞった場所に線を描画する

簡単にですが作ってみました。一式githubに上げてあります。 github.com ここから、囲った範囲のオブジェクトを取得とかは、LineRendererの頂点でPolygonCollider2Dを生成して、それとの当たり判定を取るとかが簡単そうです。

特定のインターフェースを実装するクラスのインスタンスのリストを取得する

github.com を実装するときに調べたものです。 関数オブジェクトを使うときに、使える候補を自動で列挙する役割があります。

なぜtransform.position.xやcolor.aが直接変更できないのか

Unityでの開発では、transform.positionやcolorの要素の一部だけを変更したいことがよくありますが、C#ではtransform.position.x += 10;やcolor.a = 1;などとするとエラーになってしまいます。 JavascriptではできるのになんでC#ではできないのか、とずっと…

教養としての日本史 from 受験サプリ

jyukensapuri.jp ↑の受験サプリの日本史の講義の中で、自分が面白いと思った箇所を抜粋してみます。相変わらず受験ほとんど関係ないです。が、興味深いと思ったので。続きからどうぞ。

一階層下のファイルを全て現在のフォルダに移動させるバッチファイル【ついでにコマンドプロンプト入門】

Windowsでは、下の階層にあるファイルを上に持っていくのって地味に面倒くさい作業になります。 これを手でやろうとすると、フォルダを開いて全選択して切り取ってフォルダを抜けて貼り付けて…というのが1回だけならまだしも、全てのフォルダの中身を上に持…

社会人が見ても面白い受験サプリ・教養としての歴史エピソード

最近、受験サプリというWebサービスをよく利用しています。 受験をする予定はないですが、講師のレベルが高いとの評判を聞いて試してみたところ、これが存外教養としても面白かったので使い続けています。 数十分の動画ごとに分かれていて、高速再生もできる…

オブジェクトにポインタを乗せると拡大し、外すと元に戻るスクリプト

ボタンなどのUIの選択で、マウスカーソルを乗せるとおっきくなるのありますよね?あれを実現します。

Unity上のボタンなどクリックで色が変えられるオブジェクトのパラメータを一括変更するスクリプト

おとといのスクリプトをもとに、ColorBlockについても同様のことができるようにしてみました。パラメータを指定してApplyボタンを押すとColorBlockを持ってる(=Selectableクラスを継承している:Button, Toggle, Slider, Scrollbar, DropDown, InputField)の…

Unity上のTextのフォントを一括で変更するエディタ拡張

全てのTextコンポーネントのフォントを一斉に指定したフォントに置き換えるスクリプトです。

書評:三国志

吉川英治の三国志を読み終わった。

"プログラミングの勉強を始めたときに、文系が挫折しやすい7つのポイント"への返答例

こちらの記事を拝読しました。 paiza.hatenablog.com まさに私がC言語を勉強し始めたときに感じたことばかりで、強く共感します。なので、このへんをそれなりにまとめてみようと思い記事を書きました。 説明する必要に駆られたときは参考にしてみてください…

C言語基本文法解説

C言語の基本文法をまとめるプロジェクトです。

Unity5 メモ31

TextのBest Fitが利かない Horizontal/Vertical OverflowがそれぞれWrap/Truncateになっている必要がある uGUIのTextのタッチ/クリック判定 直接はできないので同じサイズ(または子要素にしてanchorがstretch/stretch)のButtonなどで対応する RectTransfor…

Unity5 メモ30

テキストや画像に色のグラデーション効果を付加する uGUIでグラデーション、色合成を行うUIエフェクト オプションなど、複数のシーンから呼ばれる可能性のあるシーンの取り扱い Application.LoadLevelAdditive()でシーンを読み込むことで、 そのシーンのGame…

Unity5 メモ29

ショートカット Ctrl+Shift+A = Add Component Ctrl + 数字キー = 対応するウィンドウにフォーカスする。 特にCtrl + 3(インスペクター)とCtrl + 4(ヒエラルキー)が利用頻度が高い。 スライスしたスプライトを動的に変更 testという画像をスライスして生成さ…

Unity5 メモ28

Panelのクラス PanelはText, Button, Sliderなどと違ってそれ自身のクラスを持っていないため、 スクリプトからアクセスするときはRectTransformで受け取る。 スプライト画像の比率を保持 例えばPanelの子要素にImageを入れてRectTransformのアンカーをスト…

Unity5 メモ27

スマートフォン向けゲームのUIのまとめ http://gameui.matme.info/blog/ 車がハングしたときのレスキュー処理 ①タイヤがひとつも接地していないことと②車がほとんど動いていないことの2つの条件を満たしたときに車をスタート地点にリスポーンさせる。 [Seria…

9/13に大宮でC言語の勉強会を開催します!

初心者向けC言語勉強会 : ATNDatnd.org 私の主催でC言語勉強会を開催します!相談役みたいな形でいますので、なんでも聞きに来てください! その他、ゲーム開発の話なんかも聞かれれば答えたり…。 興味があればどうぞ!

Unity5 メモ26

Start()などの戻り値 MonoBehaviourの関数は戻り値をvoidではなくIEnumeratorにしても動作する。 List<>の内容を文字列化する(C#) List<Object> list; list.ToString(); とすると、"System.Collections.Generic.List 1[System.Single]"なる文字列が取得され、意図と</object>…

Unity5 メモ25

サーバーを立てずにオンラインランキング機能の実装 niftyのクラウドを利用する場合 http://mb.cloud.nifty.com/doc/current/tutorial/tutorial.htmlの左側のカテゴリのプルダウンメニューから「Unity」を選択したのち「SDKダウンロード」からダウンロードし…

Unity5 メモ24

衝突した場所にParticleSystemを生成 public void OnCollisionEnter(Collision coll) { var p = Instantiate(collParticle, coll.contacts[0].point, Quaternion.identity) as ParticleSystem; Destroy(p.gameObject, p.duration); } 下からも水面が見えるよ…

Unity5 メモ23

「オブジェクトを生成して1秒後に削除」を簡潔に記述する Destroy(Instantiate(yourObj).gameObject, 1); ステータスバーを表示 Edit > Project Settings > Player > Resolution and Presentation > StatusBarの Status Bar Hiddenをオフにすることで、画面…