渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

Xcode An error was encountered while attempting to communicate with this device.というエラー

ご無沙汰になってしまうと、機嫌を損ねるXcodeさん。
久々に実機ビルドしようとしたら以下のエラー。

An error was encountered while attempting to communicate with this device. (The service is invalid.) Please try rebooting and reconnecting the device. (0xE8000022).

続きを読む

Unityでコンピュートシェーダを始めてみた


マニュアルを見ながら、Mac環境でコンピュートシェーダを始めてみたいと思います。 前提としてコンピュートシェーダとは、頂点シェーダやフラグメントシェーダと違い、GPUを描画に使うのではなく、演算処理をさせるためのシェーダです。
※GPGPUとも呼ばれています
今までやってきた描画周りのシェーダと大きく作法として違うのはMaterialオブジェクトが不要だということです。コンポーネントにSerializeFieldでアタッチしたり、Resource.Loadして呼んだりなどして、コンピュートシェーダオブジェクトに対し、C#で直接処理を書きます。

またコンピュートシェーダは実行環境に制限があります。今回はMacで作業しますが、Mac環境であればMetalは必須です。
参考 : Metal - Unity マニュアル

続きを読む

Unity 頂点シェーダ内でライト方向を取得する方法

Unityでシェーダを書く場合、とりあえず開発者が必要そうな変数やら関数はUnity側で用意されていることが多いので
"UnityCG.cginc""AutoLight.cginc""Lighting.cginc"この辺りのファイルたちを眺めると良い感じです。

f:id:esakun:20181212144015g:plain
このようなライト方向とカラーを適用したいわゆるランバートシェーダを書いてみます。
※前提としてディレクショナルライト1個の世界

続きを読む

Macでフォルダ内の全jpgファイルを同名でpngに自動で書き出す

嫁さんの年賀状作りの要望で、大量のjpgファイルをpngに書き出してほしいという依頼が来ました。
何でも、instagramからDLしたjpgがPhotoshopで開けないとのこと。

試してみたら、たしかに開きません。 一旦、開けるアプリから別名保存してPhotoshopに持っていく戦略を取るとのことで、僕はその仕様に則ったシェルを書きました。

コチラを叩くだけ。
※事前にbrewでImageMagickをインストールしています

嫁さんが設定した納期には間に合いそうです。


以上

Unity動的にメッシュを生成するシリーズ

1.Unityで三角形を1つ描画、テクスチャまで貼る

この辺りでやっているような三角形1つ描画するということをUnityでもやってみたというプリミティブな記事。

2.頂点カラーを反映する
頂点カラーを反映する上でシェーダもちょろっと書きます。

3.頂点カラーとテクスチャを反映する
頂点カラーとテクスチャ両方を反映するためにシェーダをちょろっと書きます。

4.uGUIで三角形を描画する
uGUIの描画処理は独特なので、忘れないようにメモしておきます。

5.球を動的に生成してみる
三角形から脱却して球を描画してみます。

6.カプセルを動的に生成してみる
球描画の続きで、カプセルの描画をしてみます。

7.マウスに追随するおえかき風メッシュの生成
Unityでお絵かきしてみます。

Unity 動的に球のメッシュを描画をしてみる

3年前に執筆した↑記事の続きです。

f:id:esakun:20181204194132p:plain:w450
先の記事シリーズでは、三角形を1個描画するところで終わっていますが、今回は↑のような球を動的に描画してみます。
パット見ハードルが一気に上がってそうですが、地道に1つずつ頂点の配置と順序を考えていけば大丈夫でした。

続きを読む

C#でDirectX11 四角形の描画

今まで三角形を描画して、頂点カラーやテクスチャを適用していましたが、そろそろそれらは卒業して四角形を描画します。四角形は2つの三角形を組み合わせるので、四角形を描画するというより、2枚の三角形を描画するということになります。

続きを読む

DirectX11をC#を書きながら覚えていく

f:id:esakun:20181118205657p:plain

SlimDXを使用し、DirectX11をUnityで馴染みのあるC#を通して学んだ記事のまとめリンクです。

1. ウィンドウ表示
DirectX11の表示先のウィンドウを表示させます

2. GPUを使用して描画する
デバイス(GPU)を使用するまでの準備を行います。

3. 三角形描画
三角形描画が3DプログラミングのHelloWorld的なもの。シェーダも書いてみます。

4. FPS管理
FPSを管理できるようにします。

5. 頂点カラーを使って三角形を描画
頂点カラーを使って三角形を表示します。

6. アニメーション
三角形をくるくる回転させてみます。

7. プロジェクション座標変換して三角形を表示
MVP行列を使用して座標変換してみます。

8. 両面メッシュ描画
カリングをOFFにしてみます。

9. ライブラリ化
そろそろ生でDirectXを書くのが辛くなってきたので汎用処理をライブラリ化してみます。

10. 親子関係を作ってみる
UnityのTransformクラスに実装されている親子関係を生で書いてみます。

11.四角形メッシュの描画
そろそろ三角形を卒業します。

Mayaで三面図を下書きにしてモデリングするための準備

f:id:esakun:20181129190045p:plain

三面図(今回は二面図)イラストを下敷きにして、ローポリキャラをモデリングするため下敷きを配置するところまでの手順をメモしておきます。
※いろんな方法があるっぽいですが、あくまで自分が知ってる唯一の方法のメモです

続きを読む