メンテしてます

メンテ大事。
昨日書いたふりかえりにも通じるけど。
この年になると新規追加よりメンテなのだ。

DAW関連
Cubase SL7で環境構築しなおしてます


電子工作関連
Theramidi動かし方思い出して、ケーシングの計画中。


ブログのメンテ
http://d.hatena.ne.jp/dentaq/20131028/1404662837
Theramidiの動画入れましたー
画像がリンク切れになってたの、直しましたー


Github Pageのメンテ
たいしたコンテンツはないですが・・・メンテしました〜
http://dentaq.github.io/

ふりかえりの大切さ。

最後の投稿がすでに二年以上も前。
時が経つのは本当に早い。

このブログを含むWeb上のさまざまなアウトプットを見直していた。
アジャイル開発ではふりかえり(Retrospective)が重視されるが、
自分はこれを過去から未来をあぶりだす作業と捉えている。

ふりかえりをしっかりと行い、そこから導かれる未来を見定め、
残り少ないエンジニアライフを実のあるものにしていきたいと切に思う。

AfterEffectImporterの使用方法

Adobe After Effectsで作られたムービーをUnityに取り込んでGameObjectとして使用する事ができるUnityAssetであるAfter Effect Importerの使い方を簡単に説明する

1.Adobe AfterEffects側の作業

1-1.Unity3D Export.jsxをAfterEffectsのアプリケーションディレクトリ(MacでVer. CC2014を使っている場合/Applications/Adobe After Effects CC 2014/Scripts)内のScriptsディレクトリ直下に置く

1-2. システム環境設定で、使用言語を英語にする
ここが日本語のままだと、で書き出されるxmlファイルが文字化けするので注意(Mac環境。Winは未検証)

1-3.AfterEffectsアプリケーションを起動し、Unityにインポートしたいプロジェクトを開く

1-4.[ファイル]→[スクリプト]→[Unity3D Export.jsx]を選択すると、DataFile(xml形式)のファイル生成が始まる

2.Unity側の作業

2-1.1-4で生成されたDataFileをAssets配下の任意のディレクトリ(例:AnimData)に格納し、そのディレクトリと同一階層にResourcesというディレクトリを作りその配下の任意のディレクトリにアニメーションで使用する画像を格納

2-2.[GameObject]→[Create Other]→[After Effect]→[Animation]でAnimationを新規作成

2-3.Inspector内DataFileの箇所に1-4で生成されたDataFileをドラッグ&ドロップする

2-4.Inspector内ImagesFolderに2-1で画像を格納したディレクトリへのパスをResourcesからの相対パスで指定

Unityである地点(fromPosition)からある地点(toPosition)に向かってオブジェクトを回転させたい

久々の逆引き辞典風な見出しで。
※もともとのこのブログのタイトルは「dentaqのWebデザイン逆引き辞典」だったと思う。

というかブログ自体非常にご無沙汰してしまった。

さて、
2つのベクトル(Vector3)からQuaternionにより回転させる方法は以下のとおり。

//開始位置
Vector3 fromPosition = new Vector3(1, 1, 0);
//終了位置
Vector3 toPosition = new Vector3(2, 2, 0);
//回転の計算
Vector3 newRotation = Quaternion.LookRotation(fromPosition - toPosition).eulerAngles;
//transform.rotationに新しい回転を代入
transform.rotation = Quaternion.Euler(newRotation);

fromPositionとtoPositionの値(x, y, z)をいろいろ変えてみよう。fromPositionからtoPositionの方向に向かって回転するよ。

InstantiateとgetComponentについて調べてみる

オブジェクト指向プログラミングでは様々な抽象的な概念があり一朝一夕ではなかなか理解が難しいところがある。
Unityのコーディングにおいて超頻出となるInstantiateとgetComponentについて調べてみた。

instantiate?
instantiate【動詞】
インスタンス化する; インスタンス生成する

オブジェクト指向プログラミングにおいて,クラスのインスタンスを生成すること.

出典

インスタンス

"例えば「名前、身長、体重」というクラスがあるとすれば、そのインスタンスは「田中、175、65」というように作られる。一つのクラスから複数のインスタンスを作ることができ、それぞれのインスタンスは違った値を持ちうる。プログラムの中で実際に扱われるのはクラスではなく、こうして作られたインスタンスの方である。"

出典

ジェネリクス

クラス名・メソッド名の後に続く <> の中の部分を型引数(type parameter)といい、 関数の引数と同じようにして、型をパラメータにすることが出来ます。 テンプレートクラスを参照する側ではクラス名の後に続く <> の中に利用したい型名を書くことで、その型に特化したクラスを生成することが出来ます。

ジェネリックなクラス・メソッドに対して、 具体的な型を与えることを「インスタンス化する」といいます。

出典


インタフェース?

インターフェース型とは、オブジェクト指向言語における参照型のひとつで、クラスのオブジェクトをインターフェースとして扱えるようにする参照型のことである。

出典

公開されたメソッドが、当該クラスをインスタンス化したオブジェクトに対して、別のオブジェクトがアクセス可能な全て、つまりインタフェースになる訳である。

インタフェースは、継承 (extends) されるのではなく実装 (implements) され、 複数のインタフェースをカンマ区切りリストで指定することができる。

出典

[ez gui] 定型パーツ(1) リスト形式アイテム

  • ListView.cs
using UnityEngine;
using System;
using System.Collections;

public class ListView : MonoBehabiour
{
 [SerializeField]
 GameObject listItemPrefab = null;
 [SerializeField]
 UIScrollList scrollList = null;
 public void Start()
 {
  for(int i = 0; i < list.Length; i++)
  {
    var item = Utility.InstantiateGetComponent<ListItem>(null, listItemPrefab);
    UIListItemContainer container = item.GetComponent<UILisItemContainer>();
    scrollList.AddItem(container);
    item.SetData("ListItem" + i);
  }
 }
}
  • ListItem.cs
using UnityEngine;
using System.Collections;

public class ListItem : MonoBehaviour
{
 [SerilizeField]
 SpriteText label = null;

 public void SetData(string labelText)
 {
 label.Text = labelText;
 }
}

仕切り直して、もうすこしブログがんばります

思い起こせば、最初にブログを書いたのは、2001年くらい、媒体はgooブログだっただろうか。

本当に普通の日記だったと思うが、何を書いたのか本当にほとんど一行も思い出せない。

その後、livedoorアメブロを少し利用して、ロリポップwordpress)→jugemロリポップwordpress)→はてなダイアリー(技術メモ)→はてなブログ、というブログ歴。

なんだかんだで、一番続いたのがはてなのブログ。はてなのブログサービスはgooなどからブログをはじめた人にしてみると、若干クセがあるが、なれればすごく書きやすい。

日ごろから、思考をうまく言語化する訓練を行う必要にかられているという理由もあり、気合をいれなおしてブログというものをやってみたい。

逆引き辞典から始まったこのブログだが、取り上げる題材は、あえて決めず、日々の雑記帳的な内容にしたいと思っている。

とはいえ、要素としては大体決まってくるので列挙してみよう。

パズドラ

キリンジ

技術のこと

音楽のこと

家庭・育児のこと

このくらいかな。

筆頭に「パズドラ」と出てくるのが今の僕の人生を物語っているなと思う。

もうアラフォーのおっさんですが、何か?

パズドラは、熱がちょっとさめかけた頃にドラゴンボールコラボが来たからねー

完全に前より熱が上昇した感じ。

原作も読み返しました。懐かしさと新鮮さが相俟って、あっという間にコラボダンジョンの舞台、ナメック星編の終わりまで読み進めてしまいました。

目下、聖闘士星矢コラボ頑張ってます。

こちらも少し、原作にも目を通しました。こうして原作を知るとダンジョン攻略が二倍も三倍も楽しくなります。

キリンジ、これも飽きないねー。

うまくキリンジへの思いを言語化できるかどうか、これはチャレンジになるのではないかな。

技術のこと

これは、Tipsというよりは、日々のニュースやトピックの中から自分の思うところを書き留める、というタイプの投稿になるのではないかな。

この業界、人々をあっといわせるニュースにあふれている。そこが、刺激的で、毎日ついていくのはしんどいけど、入って良かったと思えるところ。

今日もmelvieというサービスが始まったことを知り、正直かなり衝撃を受けました。

http://melvie.jp/

JavaScriptcanvas、あるいはより簡単な表現手段として入門したUnityで何を創りたいかというと"Objectに触れると音が出る"という類のメディアアートだったりするので、自分の創りたいものにかなり近く、今日は久しぶりに大いに刺激を受けました。

この種の興奮は、ヤマハのボカロチップのプレスリリース以来かな。

もちろんさかのぼれば、ネットそのものに触れたときの衝撃は一番大きかったけど、次の衝撃が自分でWebサイトを制作したとき、次がmixiが出てきたとき(mixiは大きい。本当に心の底から楽しいと思ったから。数年後疲れてやめてしまうのだけど)、myspacetwitterfacebookinstagram、そしてボーカロイドパズドラ

しかし自分は、アナログな家庭に育ったので、正直この業界に6年ほどいるにも関わらず、ようやく最近はレイトマジョリティーを卒業できたかなという、自覚があります。なので、自分は新しいものに対する感受性は悪くないとは思うのですが、えらそうなことは何も言えません。

ボカロは出てきた当初、スルーしていたんだけど、もったいないな。2008年ほどボーカロイドが面白い時期は無かったのに。何でもっとしっかりとアンテナに引っかかってこなかったのだろうか。

自分にとってのTech系分野でのメガトン級での衝撃波は、このくらいだろうか。

ブログで取り上げるジャンルとしては、Web技術全般、Web+Web audio/MIDIArduino(特にaudio/MIDI周り)、Unityといったあたりが当面の守備範囲になるかと思います。

音楽のこと

本当に全ジャンル聴いているのです。

今日聴いた音楽をあげると、クラシック〜アイマス(ミリオンライブCD)〜ボカロ〜ダフト・パンク〜少女時代〜とあるメドレー、といった具合。

こうして書いていて気づいたが、今日はキリンジを聴いていないな。

ブラジル音楽もちょっと体系的に聴いてみたいと思っているのです。イヴァン・リンスとジャバン、ジデリ・ジ・サンチくらいしか聴けてない。

家庭・育児のこと

そうなんです、僕、絶賛育メンなんです。

上が3歳、下がもうすぐ7ヶ月。

子供の存在。これほど人に大きな変化をもたらすものはないですね。

元気の源であり、正しく導き、気付きをくれる存在。

社会をよくしていきたい、と心から思えるようになるには子供の存在というのは不可欠なのではないかな。

少なくとも僕はこどもを持つまでは、社会でクリエイターとして認められたいという、野心こそありましたが、今ほど社会を良くしたいという願望を抱いたことがほとんど無かったように思えます。

そういえば、NHK連続テレビ小説あまちゃん」で、アイドルを目指すアキについて夏子が語る場面で、

「この子(アキ)には私が見れなかった景色をみせてあげたいのよ」

というセリフがありました。このセリフは良く思い出すので、僕の中にもそういう気持ちが大きく存在しているのでしょう。そう、自分が見れなかった景色を見せてあげたい。そしてさらに、既存の「景色」だけでなく、「あそこからの景色を眺めてみたいな」という希望にあふれる景色を、自分たちの手で創っていかなくてはならない、という使命感も強く感じています。

自分の過去の体験を体系化して、「こうしたほうがいいこと」「ぜひともやったほうがいこと」「ぜったいにやってはいけないこと」などに因数分解し、子供たちにきちんと伝えていきたい。

それをすごくシンプルに一言で表すと

「社会のルールを守り、周りのひとを大切にした上で、自分も輝こう」

という感じになりそうです。

今ちょうどサッカーW杯の真っ最中ですがチームスポーツというのはこのキャッチフレーズがぴったりあてはまりますね。そういう意味では150分間に込められた社会の縮図といえそうなので、ルールを理解し守ることの大切さを知るという目的だけでも、子供たちには積極的にチームスポーツに打ち込んでもらえたら嬉しいなと思っています。社会にも、ルールは厳然と存在しますから、そこは少しずつでも教えていく必要があると感じています。

家庭の問題というのは、家庭の数だけある、それぞれに固有のものであり、普遍的なものではないので、ブログという不特定多数の人の目に触れる媒体でどこまで扱えばいいのか、難しいところでは有りますが、書けることは積極的に書いていこうと思います。

そう、結局のところ僕はブログを通じて自分の過去の体験を体系化したいんだと思います。

その試みが奏功し、読んでいただいた方にとって、少しでも有用なものになれば、このブログは成功した、といえると考えております。