カテゴリー別アーカイブ: プログラミング

Unityでストップウォッチを作る その5 サークルを動かす

今回は、前々回から作ってきた「TimeCircle」をストップウォッチの計測時間に合わせて動く様にしたいと思います。 スクリプトの追加と修正 新たに「AngleAnimation.cs」と「TimeCircleController」の2つのC#スクリプトを追加して以下のコードをコピーしてください。また、「BSWUtility.cs」と「Stopwatch.cs」も修正してください。修正と言っても各スクリプト内のコードは全部載せているのでマルっと上書きしてしまって大丈夫です。 // // AngleAnimation.cs // ... read more

Unityでストップウォッチを作る その4 秒数の表示

今回は秒数のサークルに数字を追加します。これの事です。 数字のプレファブを作る TextMeshを使って数字の表示をしますが、前回のようにまとめてメッシュを作るということまではせず、数字ひとつごとにゲームオブジェクトを作って置いていきます。 まずひとつの数字のプレファブをつくります。メニューから「GameObject / Create Other / 3DText」を選択し、シーンにオブジェクトを作成してください。 出来たら「Number」と名前を変更して、TextMeshの設定を以下の様に変更してください ・Character Size > 4 ・Alignment >... read more

Unityでストップウォッチを作る その3 目盛りのメッシュを作る

今回は秒数目盛りのメッシュを表示するオブジェクトを作りたいと思います。こんな感じの1分で1周するアナログのストップウォッチ的な目盛りです。 このように画面よりもかなり大きい目盛りの円(以後サークルと呼びます)を作りたいので、一枚の大きな画像を表示するのではなく、目盛りひとつの画像をたくさん並べて表示するという作り方をします。 スクリプトの作成 Projectウィンドウの「Script」フォルダの中に「BSWUtililty.cs」と「TimeCircle.cs」の2つのC#スクリプトを追加して、以下のコードをコピーしてください。 // // ... read more

Unityでストップウォッチを作る その2 メッシュとテクスチャの作成

前回はタイム表示をしたので、次は目盛りのラインなどを描画したいと思う訳ですが、Unityで描画をするにはまずなによりメッシュが必要になります。しかし、Unityのプロジェクトを作った段階では、CubeやらSphereなどの3D用のものが数種類と、無駄に細かいメッシュのPlaneしか作れません。BigStopWatchのラインひとつひとつを標準のPlaneで置いていくのはちょっと無駄な感じです。 さらにBigStopWatchではきれいなラインを引くために、テクスチャにラインを描画して少しマージンを付けたものをメッシュに割り当てて描画しています。メッシュを単純に塗りつぶすとメッシュのエッジ... read more

Unityでストップウォッチを作る その1 基本機能

はじめに しばらく何も開発ネタを書いていなかったので、Unityを使って簡単なBigStopWatch風のストップウォッチをチュートリアル形式で作っていこうと思います。 Unityというと3Dが得意なのは間違いないですが、2Dものを作るときにもエディタ上で逐一確認しながら作れるので非常に便利です。このチュートリアルでは使いませんが、NGUIとかUni2Dとか他にもいろいろ2D用のアセットがAsset Storeにありますので工夫をすれば2Dゲームもちゃんと作れます。 本屋さんに行くとUnityの入門書がまた最近増えているのを見かけますが、だいたいどれも、無料のアセットを使ってゲー... read more

AudioQueueProcessingTap

iOS6からAudioQueueServiceにProcessingTapという機能が追加されました。 これを利用すると、Queueにバッファされた後のデータにエフェクトなど処理を挟み込む事ができるようになります。AudioQueueのピッチ処理はiOSでは機能していないと思いますが、AudioUnitを挟み込む事もできるので、VarispeedとかNewTimePitchとか使えば実現する事ができます。 AudioQueueProcessingTapNew ProcessingTapをAudioQueueで使えるようにするのが以下の関数です。 extern OSStatus... read more

iOS 5のオーディオ新機能

世の中iOS 5といったらiCloudだSiriだと騒いでいますが、オーディオの新機能も実は結構あります。とりあえずどんなものがあるかだけ書いておきます。 AudioUnitプラグイン AudioUnitのプラグインがかなり追加されてます。Macでは以前からあるもののサブセット的な感じです。 【Generator】 ・ScheduledSoundPlayer ・AudioFilePlayer 【MusicDevice】 ・Sampler 音を再生するものはGeneratorとMusicDeviceですね。特にSamplerはSoundFont&MIDI対応のプレ... read more

iOSのCore MIDI

iOSの勉強会用にCoreMIDIを調べてみたりしたのはいいものの、まだ発表する機会がなさそうなのと、気がつけば3ヶ月もブログを更新していなかったので、ちょっと書いておこうかなと思います。とりあえずこのエントリは、CoreMIDI対応アプリを開発する前の準備の話です。(※2011/7/26に内容を変更しています) CoreMIDIはiPadだけ? iOS 4.3.3より前のOSだと、外部とMIDIデータの送受信をできるのはiPadだけだったのですが、iOS 4.3.3以降だとiPhoneでもWi-fi経由でiPadと同じく使えるようになったようです。また、iPadではMIDIインター... read more

CMSampleBufferからオーディオデータを取り出す

前回の続きというほどのものでもない内容になってしまいますが、CMSampleBufferからオーディオのデータを取り出す方法です。CMSampleBufferGetAudioBufferListWithRetainedBlockBufferという関数を使います。前回の内容も含めてDeveloper Forumsに書いてあったコードを参考に調べていたのですが、削るに削ってこれだけになりました。 CMSampleBufferRef sampleBuffer = [audioMixOutput copyNextSampleBuffer]; CMBlockBufferRef ... read more

AVAssetReaderとAVAssetWriter

iOS4.0のAVAssetExportSessionでiPod Libraryからファイルの書き出しができるようになったことは以前のエントリーに書きましたが、さらにiOS4.1からは、AVAssetReaderによって事前にコピーすること無く、直接iPodLibraryのオーディオファイルのデータを生のデータで読み込むことが出来るようになっています。また、AVAssetWriterという、オーディオファイルを作ることの出来るクラスも追加されています。 AVAssetExportSessionがMP3などを読み込むのにかなり使い勝手の悪いものだったのですが、AVAssetReaderはE... read more