おもちゃラボ

Unityで遊びを作ってます

【本】ここらで広告コピーの本当の話をします

ここらで広告コピーの本当の話をします。 宣伝会議

広告コピーというと、「そうだ、京都行こう」くらいしか思い浮かばない程度には詳しくありません。あ、あと「綺麗は作れる」も知ってる。笑

そんな初心者にも「広告のコピーがどのようにして作られているか」を、分かりやすく説明してくれる本です。軽い感じでよめますが、めちゃくちゃ面白いです。

そもそも広告コピーの定義が面白い!さすがコピーライター(笑)

商品をいじらずに、言葉を使って商品の価値を上げる

サラッと書いてますけど、よく考えるとすごいですねー。何もないところから価値を作る、というのはプログラマとも通じるところがありますが、言葉だけで価値を作り出すという、この錬金術感がすごい


広告の話とは少しだけずれるけれども、もう一つ面白かったのがハイコンテクストという言葉のお話。

「ハイコンテクスト」という言葉。コミュニケーション・意思疎通をはかるときに前提となる言語、体験、価値観、考え方などが非常に近いという意味です。そして、日本は海外に比べてハイコンテクスト文化である。
これは、微妙な差異が価値を持ちやすいことを意味します。日本語の二人称では〝お前〟〝君〟〝あなた〟などで意味は変わりますよね。その微妙な意味の差を使い分けている。英語は〝You〟だけ。

日本人って島国でみんな似通ってるから、横にいる人と見比べたときの少しの差異がものすごい価値を持つんですよね。いい意味にも悪い意味にも・・・・

日本人にしか気がつけない小さな差異をどんどん広げていくことで独創的なものを作り出す。これこそ日本人が得意とするものづくりなんじゃないでしょうか。千利休しかり、若冲しかり。

[asin:B00UR3OQP0:detail]

千利休

千利休

Amazon


この本は広告コピーのお話が中心ですが、ブログのタイトルや、本の見出しを作るときにも簡単に応用できるお話もたくさん載っています。2017年4月現在、kindle unlimitedで読めるのでぜひ〜

中華製Arduino nanoのMac用ドライバを探す

Amazonで販売されている中国製のArduino nanoを買ってみました(コレ↓)

[asin:B01CZQANN0:detail]

ピンヘッダは自分ではんだ付けする必要があるものの300円程度でArduino nanoが使えるのはやっぱりうれしいですね〜

f:id:nn_hokuson:20170401210905j:plain

ただ、Macで使う場合には、USBのシリアル変換ドライバを入れなければArduinoを認識してくれません

AmazonのページにはCH340/341のドライバをインストールすれば良い、と書かれていましたが MacOS Sierra(10.12)では正しく認識してくれませんでした。。。

色々探してみた所・・・こちらのサイトから、MacOS Sierra用のパッチを当てたCH340G/341Gのドライバを入れることで無事認識してくれませいた。

http://kig.re/2014/12/31/how-to-use-arduino-nano-mini-pro-with-CH340G-on-mac-osx-yosemite.htmlkig.re

Amazonで買った格安Arduinoが認識されない!というかたは是非上のドライバを試してみてください。

【Unityシェーダ入門】頂点カラーを表示するシェーダを作る

3Dモデルの表現には通常テクスチャを使いますが、3Dモデルの頂点ごとに色を設定したモデルを使用することもできます。

こちらの動画で使われているモデルは、テクスチャを使わずすべて頂点カラーで表現されています。たぶん、世界観に統一感をもたせるためのDavid Oreillyの工夫だと思います。

ちなみに、この動画は面白いです(笑)

vimeo.com

Unityでも頂点カラーを使用できるのですが、標準のシェーダは頂点カラーをサポートしていないので、自分でシェーダを書く必要があります。

頂点カラーの表現

頂点カラーとは、頂点ごとに設定された色情報のことです。3Dモデルの頂点には、座標や法線ベクトル以外に色情報も設定することができます。
設定にはBlenderやMaya、3DS Maxなどの3Dモデリングソフトを使用します。

f:id:nn_hokuson:20170329191941p:plain:w350

頂点情報を扱うためには頂点シェーダ(vertex shader)をフックし、頂点カラーを取り出す必要があります。取り出した頂点カラーは頂点シェーダからsurfシェーダに渡して表示します。

f:id:nn_hokuson:20170401080509p:plain:w500

頂点カラー用のシェーダを作る

Unityに頂点カラーを設定した3Dモデルをインポートした状態では、モデルはグレー色のままです。

f:id:nn_hokuson:20170328160857j:plain:w400

頂点カラーを表示するシェーダを作りましょう。シェーダファイル(VertexColor.shader)を作成し、作成したシェーダをアタッチしたマテリアルを作ってください。

f:id:nn_hokuson:20170329192004p:plain:w400

次にVertexColorに次のシェーダプログラムを入力してください。

Shader "Custom/VertexColor" {
	SubShader {
		Tags { "RenderType"="Opaque" }
		LOD 200
		
		CGPROGRAM
		#pragma surface surf Lambert vertex:vert
		#pragma target 3.0

		struct Input {
			float4 vertColor;
		};

		void vert(inout appdata_full v, out Input o){
			UNITY_INITIALIZE_OUTPUT(Input, o);
			o.vertColor = v.color;
		}

		void surf (Input IN, inout SurfaceOutput o) {
			o.Albedo = IN.vertColor.rgb;
		}
		ENDCG
	}
	FallBack "Diffuse"
}

トゥーンシェーダなどと比べると非常に単純なシェーダになります。

nn-hokuson.hatenablog.com

このプログラムでは上図にも書いたとおり、頂点シェーダ(vertex shader)をフックしています。頂点シェーダをフックするための手順は次の2つです。

  1. 頂点シェーダをフックすることをUnityに伝える
  2. 頂点シェーダのメソッドを作成する


#pragmaの行に「vertex:頂点シェーダのメソッド名」と書くことで、Unityに頂点シェーダをカスタムで作成することを伝えることができます。ここではvertという名前の頂点シェーダを作成しています。

続いて、頂点シェーダのメソッドを作成します。引数には頂点シェーダへの入力としてappdata_full型、頂点シェーダからの出力にInput型をとります。appdata_full型の詳細はこちらで説明されています。

docs.unity3d.com


頂点シェーダの中ではUNITY_INITIALIZE_OUTPUTを使って出力の値を初期化したあと、appdata_full型のcolor変数から頂点カラーの情報を取り出し、Input型のvertColor変数に値を詰めています。
surfシェーダではこのInput型の値を受け取り、Albedoとして表示しています。

f:id:nn_hokuson:20170401081230p:plain:w450

表示結果

頂点カラーを表示するシェーダをモデルにアタッチした結果がこちらになります。
ちゃんと緑色のカエルが表示できましたね!

f:id:nn_hokuson:20170329192709j:plain:w450

頂点カラーのモデルを使用することはまれかもしれませんが、頂点シェーダをフックする方法はよく使うので、ここで紹介しました。

今回のかえるのデータはこちらのものを使用させていただきましたm(_ _)m
f:id:nn_hokuson:20170329194931j:plain:w300
http://www.davidoreilly.com/downloads/www.davidoreilly.com