Monthly Archives: 5月 2007

ActionScript3.0で、フォントサイズをテキストの高さに応じて調整する

テキストの文字数が増えても、フォントを小さくすることで一定の範囲に抑えたい。

その上で、できる限り大きく文字を表示したい。

という処理が作りたくなり、作ってみました。

まぁ、わりと普通にできました。

setFontHeightが、フォントサイズを調整している関数。

高さが常に120以下で、最大のフォントサイズになるように処理されています。


TextAdjust.as

ActionScript3.0で、中心点を指定して回転させる

普通に、AdobeのFlashオーサリングツールだと出来るけど、

スクリプトだけで、どうやったら回転の中心点を指定して回転させられるんだろ?

というのが疑問で調べてみました。

DisplayObjectには、rotationって回転のプロパティはあるけど、回転の中心点指定はない。

なんで、ベースとなるオブジェクトを作製して、それに対して回転させたい物体をaddChild。

ベースの原点に、回転させたい物体の回転の中心点をあわせます。

そのため、回転させたい矩形を、X=-50、Y=-50に配置。

そのベースのrotationで回転させることで、回転の中心を決めてやる。

という方法でやれば、良いみたい。

サンプルは、もっと単純でも良いんだけど、Filterかけてたほうがカッコイイから、コード長めで(笑


ShapeRot.as

ベクターグラフィックって綺麗だな

ベクターグラフィックを普通に使ったFlashを作ってみました。

Flash使っても、昔ながらのGIFファイルとかを埋め込んだりする使い方が多くて、ベクターグラフィックをあまり使ってなかったんですよね。

いまさらなんだけど、ベクターグラフィックを使ってみたら、

「これは綺麗だな!」

と関心した次第。

ベクターグラフィックはなんかきれい。

というのは知識としてあったんだけど、

あー!これは良いじゃん!

と、今日ようやく、感情をともなって思ったという話なんですよね。

ソースは以下。

※2007/09/04 ソースコードを更新。SWFの大きさ設定、大きさ取得をコードに追加。


VectorMove.as


MoveObject.as

Papervision3Dで角丸矩形の平面を描く

Flashの3DライブラリのPapervision3Dで、角丸矩形の四角を描いてみた。

特に難しい点は無いんだけど、BitmapMaterialで透明のBitmapDataを元に、マテリアルを作成。

そのBitmapDataに対して、ShapeのdrawRoundRectで、角丸矩形を描画。

ってだけですね。

note.xさんのところの記事を参考にさせてもらいました。

どもです。

以下ソースコード。

*2007/06/10

rootNodeというオブジェクトをsceneの下に作り、その上でplaneを追加していたのを、sceneの直下にplaneを作るように変更。rootNodeは削除。


pv3dRoundRect.as

作曲というプログラミング

1_9

前から僕は思っているのだけど、作曲とプログラミングは、かなり似た性質を持っていると思う。

それについて書いてみたくなったので、思うところを書いてみよう。

思いつくところを並べてみると、こんなところか。

1. パーツの組み合わせによって作る。
2. パーツの作成のために知識を必要とする。
3. 全体のフロー(流れ)があり、繰り返しがある。
4. 作品にコンセプト、目的がある。

それぞれについて考えて見ましょう。

1. パーツの組み合わせによって作る。

プログラムは、関数、モジュール、クラスなどのアプリケーションを実現するためのパーツを組み合わせて作成する。

音楽もしかりで、だいたい一定のリズムのそれぞれの楽器のフレーズのループによって作成する。

2. パーツの作成のために知識を必要とする。

これは、プログラムにしても音楽にしても当然ですね。

作り方を知らないことにはどうにもできません。

地道な知識の蓄積を必要とされる点です。

3. 全体のフロー(流れ)があり、繰り返しがある。

アプリケーションには、画面フローや処理フローが存在します。

処理は進んだかと思えばループし、一番最初の処理を繰り返したりします。

音楽もしかりで、一番最初のイントロからAメロ、Bメロと進んでいき、忘れたころに最初のフレーズにループしたりします。

それぞれの処理、フレーズが流れていき、流れたかと思えばループし、繰り返されるという点が共通していると言えるでしょう。

4. 作品にコンセプト、目的がある。

これは人が作るものすべてに共通するとも言えるので、取り立てて言うようなことではありませんが、共通していると言えましょう。

・作曲過程

僕が最近作曲した、電脳空間カウボーイズ用のエンディングテーマ「Dancing with digital lights」を使って、それぞれについて具体的に説明してみたいと思います。

まず、目的としては、KAOSS PAD KP3を買ったのでこれを使った曲を作成するという点でした。

YouTubeを見ると、RadiumSoftwareのdenkitribeさんがKP3で、良いインスト曲を多数発表しています。

すでに、denkitribeさんがやっていることと同じことをしても面白くないので、僕はボーカロイドを使ったボーカル曲にすることにしました。

この点をコンセプトとして、作曲を始めます。

季節が春になってきたので、さくらさくら的な和風なテイストと、電脳空間っぽいサイバー間をミックスした曲にしたいと思い、まず作詞しました。

この詞を元にボーカロイドで主旋律のメロディーを作りました。

「vocal1.mp3」をダウンロード

メロディー単品だと重厚間が足りないので、ハモリのパーツを作成します。

ハモリを作るためには、プログラミング同様、知識を必要としますね。

3度、5度で、主旋律よりも低い音のハモリを作成しました。

「vocal2.mp3」をダウンロード

「vocal3.mp3」をダウンロード

主旋律に、ハーモニーを加えるとこういう音になりました。

「vocal4.mp3」をダウンロード

次に、このメロディーにあうベースラインを作ります。

この後のパーツの作成には、FL STUDIOを使っています。

メロディーをC#マイナーキーで作成しているので、ベースラインをC#、D#、E、D#と変化するフレーズにしました。

「bass1.mp3」をダウンロード

で、これにあうドラムビートを作成します。ベースの音にキックのビートをあわせています。

「dr1.mp3」をダウンロード

さらに、メインのバッキングになるシンセのアルペジオ風のフレーズをベースラインにあわせて作成します。

「syn1.mp3」をダウンロード

これで、パーツがすべて出揃いました。これを全部鳴らすと、こうなります。

「full.mp3」をダウンロード

パーツが出揃ったところで、パーツをそれぞれKP3に転送。

KP3で流れを作って、曲として作りこむと下記の映像の音声になります。

色々な知識を利用して、パーツを作ってフローを作っていく点が似てると思いませんか?

技術書の読み方

アタシの友人の、通称「大先生」は、一風変わった技術書の読み方をしている。

彼の読み方は、こんな感じだ。

1. 技術書を1ページづつ開いて、すべての見出し部分に、蛍光ペンでアンダーラインを引く。

2. アンダーラインを引くと共に見出しを読み、本の全体の構成、内容を把握する。

3. その中から、今必要な部分、興味がある部分だけ、本文も読む。逆に必要ない部分は読まない。

という感じで読んでいるようだ。

ちょっと、自分もマネしてみたんだが、確かに良いかもしれない。

アンダーラインを引くという作業も、すべてに引くのでは意味がないような気がするが、そんなこともなく、全体にとりあえず目を通す動機付けになる。

プログラム関連、ソフト関連の本は、とりあえずその機能があることだけ知っていれば良いということも多い。

今すぐつっこんで取り組むわけで無ければ、「そんなのがあるな」ということさえ知っていれば、細々したことをする知る必要は無い。

どうせ読んだところで、使わない知識はどんどん忘れてしまうのだ。

だから、必要な部分だけ細かく読むというのも、理にかなっている。

情報に優先度をつけることで、情報を得るための時間効率も良い。

なるほど、なかなかこの方法は、良いかもね。