iPad専用アクションゲーム「スライムは投げる」

最近のエントリー

Domino久々に更新しました~。
結構大幅に手を入れましたので、不具合等見つけられましたらお手数ですがwikiまでご報告をお願いいたします。

ダウンロードはこちらからどうぞ↓
https://takabosoft.com/domino

いくつかの機能をピックアップしてご紹介したいと思います。

範囲の追加選択

範囲の追加選択が出来るようになりました。
(同じ種類に限ります。)

これにより、離れたノートを選択することが出来るようになります。
Edge8

ドラムパートの場合は、楽器毎(音階毎)に細かく選択/非選択を行うことができるようになりました。
Edge9

上部ヘッダーやトラックリストでも同様に追加選択が可能です。

範囲の追加選択は、選択ツールにて「Ctrl+左ドラッグ」操作で行います。
ただし、すでにマウス操作のカスタマイズを行っている場合は、各Ctrl+操作に「選択(追加)」を割り当てる必要があります。
Edge10

  • ピアノロール-選択ツール-左クリック+Ctrl
  • ピアノロール-ヘッダー-左クリック+Ctrl
  • ピアノロール-鍵盤-左クリック+Ctrl
  • ピアノロール-鍵盤-選択範囲上で左クリック+Ctrl
  • トラックリスト-選択ツール-左クリック+Ctrl

イベントグラフの矩形選択に対応

イベントグラフでの選択は時間範囲で指定するだけで、値による範囲は指定出来ませんでしたが、ツールのモードを切り替えることで、矩形選択が可能になります。

Edge12
(よく切り替える場合はツールバーのカスタマイズ機能でどこかに配置してください。)

こちらも追加選択が可能です。
Edge14

範囲はShift+左ドラッグで垂直移動、Alt+左ドラッグで水平移動ができます。

選択枠とノートの当たり判定方法を設定可能に

今までは例えばノートのおしり部分を選択枠で囲っても、選択状態にはなりませんでした。
Edge15

環境設定で当たり判定の項目を「ノート全体」に設定することで、選択されるようになります。
Edge16

こちらの設定を使うと、長いノートの先頭部分までわざわざスクロールせずともノートを選択できたり、ノートが多数有る中で希望のノートだけを選択しやすくなると言ったメリットがあります。

Edge19

「選択範囲の絞り込み」画面でTickの種類が選択可能に

環境設定の「時間の表し方」が「Measure : Tick」設定のままでも、「Measure : Beat : Tick」の時のTickの値を使って絞り込むことが出来るようになりました(ややこしい)。

「Measure : Tick」設定の人でも裏泊だけ選択することが出来るようになった、と言った方が判りやすいでしょうかね。
Edge20

ノートの結合

選択したノートを結合する機能を付けてみました。
Edge21

イベントメニューから実行できます。

更新内容

  • 範囲を追加選択できるようにしました。
    ピアノロールの編集エリア・上部ヘッダー・鍵盤部分、イベントグラフの編集エリア、トラックリストの編集エリア・上部ヘッダーで対応しています。
    [環境設定]画面の[マウス操作]で、+Ctrlキーに対して「選択(追加)」を割り当てる必要があります。
  • イベントグラフの選択時に、矩形で選択出来るようにしました。
    [ツール]メニューの[イベントグラフ1]→[矩形選択]をオンにしてお使い下さい。
    よく切り替える方はツールバーに配置しておくと良いかと思います。
    範囲の移動は、+Altで水平移動、+Shiftで垂直移動固定になります。
  • イベントグラフの範囲ドラッグ時にアンカーが付いてくるようにしました。
    移動後の位置がより判りやすくなると思います。
  • 選択枠とノートとの当たり判定方法を「ノートオン位置(今までの物)」と、「ノート全体」と選べるようにしました。
    ノート全体にしておくと、例えばノートのお尻だけを選択枠で囲う事で選択できるようになります。
    [環境設定]画面の[全般 (3)]から設定できます。
    ピアノロール部分の選択、ピアノロール上部ヘッダーの選択、トラックリストの選択、トラックリストの上部ヘッダーの選択において、当たり判定設定が反映されます。
  • 起動時に、前回使っていたdmsファイルを自動で開くオプションを追加しました。
    [環境設定]画面の[全般 (3)]から設定できます。
  • イベントグラフで曲線などを描画する際、右から左へドラッグした時には、左から右へドラッグした時のグラフが左右反転した形になるようにしました。
    もし今までのままを希望される方がいらっしゃいましたらご連絡ください(設定で切り替えられるようにします)。
  • パニックコマンドを追加しました。
    [演奏]メニューの[パニック]から実行できます。
    MIDIキーボードなどの接触不良などで音が鳴りっぱなしになってしまった時などに実行すれば音が止まります。
  • ノートの結合機能を実装しました。
    範囲選択後、[イベント]メニューの[結合]から実行できます。
  • エクスクルーシブ受信バッファ数・サイズを設定で変えられるようにしました。
    [環境設定]画面の[MIDI-IN]から設定できます。
    もし機器から大量のダンプを受信しようとして、受信しきれないような事態になりましたら、バッファ数やサイズを増やしてみてください。
  • F7で終わっていないエクスクルーシブデータを許容するオプションを追加しました。
    [環境設定]画面の[全般 (2)]から設定できます。
  • 音源定義ファイルの可変値に#VPGLと#VPGHを追加しました。
    #VPGLは(Value + Gate)の下位7bit値です。
    #VPGHは(Value + Gate)の上位7bit値です。
  • SMFを読み込んだ場合は、そのパスを書き出し先パスとして覚えておくようにしました。
  • Ctrl+左ドラッグで範囲の複製を移動したりするときに、もう一度Ctrlキーを押すまではTickクォンタイズ切り替え機能が発動しないようにしました。
  • データに変更があったときのみバックアップを行うオプションを追加しました。
  • 演奏中にピアノロールの自動改ページ切り替えを行うかどうかを切り替えられるようにしました。
    [表示]メニューの[ピアノロールペイン]内から切り替えられます。
  • [選択範囲の絞り込み]画面にて、Tickの絞り込みが出来ますが、元となるTickの値をどのように生成するかを以下の3つから選べるようにしました。
    • デフォルト(環境設定の「時間の表し方」で設定されている方)
    • M : T(Meas : Tick)
    • M : B : T(Meas : Beat : Tick)
  • MSGS音量調節機能を実装しました。
    デフォルトではMSGSの音量が小さかったりミュートになっていたりすると警告が出るようになっています。
    [環境設定]画面の[全般 (3)]から設定できます。
  • アウトプットペインの右クリックメニューに「クリア」を追加しました。
  • イベントグラフの高さが小さくなっている時などに、直線・曲線ツールで線などを描画すると、終了する値がステータスバーに表示された値と1ずれる事がある不具合を修正しました。
  • [リアルタイム録音]画面で停止した後で、キーボードのESCキーなどが効かない不具合を修正しました。
  • トラックリストのトラック名部分でアンダースコアが表示されない不具合を修正しました。
  • 演奏モニターで横スクロールを行うと、VOL値などをクリックした時に、クリックした場所とは違う値が反応してしまう不具合を修正しました。
  • トラックリストでALT+ドラッグでSMFをエクスポートしたときに、Bポート以降のトラックがAポートの音源定義ファイルを使って書き出されていた不具合を修正しました。
  • トラックセレクトペインの幅が狭い時は、ポート&チャンネルの表記を短くするようにしました。
  • [範囲の選択]画面でコンダクタートラックのイベントグラフを選択できない不具合を修正しました。
  • 低負荷演奏中にはバックアップ処理が走らないように修正しました。
  • 一括変更時の値の上下限値を常にカレントトラックの音源定義ファイルを使用していた不具合を修正しました。
  • [選択範囲の絞込み]画面を開いたときに、「範囲外」チェックがオンなのにスライダー部分が範囲外になっていない事がある不具合を修正しました。
  • 「カーソル位置のイベントをピアノロール側で判別できるようにする」がオンになった状態で、イベントを全て消すと落ちる事がある不具合を修正しました。

Dominoユーザーさんからメールを頂きましたので、ご紹介させていただきます。

(コメント抜粋)

 長年Dominoを愛用していたのですが、つい先日ショートカットキーの設定が出来ることに気がつきました。(気づくのが遅かったです。)操作性が向上し、テンションが上がったので一曲耳コピしました。
 使用音源は、Microsoft GS Wavetable SW Synth です。評判が良くない音源ですが、シンプルで多彩な音色とコントロールチェンジの反応の速さが優秀なので音作りが好きな人には最高の音源だと思ってます。
 相当気合を入れて作ったので、Microsoft GS Wavetable SW Synth の可能性を皆に伝えることができたら幸いです。

またもしこの場で宣伝したい方がいらっしゃいましたら、メール等でご連絡ください。

音量(パンポット)はmidiOutSetVolumeを使えばあっという間に設定できるのですが、
これだとミュートチェックは外してくれません。

というわけでこちら(http://www.terra.dti.ne.jp/~vivas/delphi/mixerapi.html)のサイト様の説明を参考にさせて頂きながらミキサーAPIを使ってミュートを解除するコードを書いてみました。

MIXERLINE MixerLine = {sizeof(MIXERLINE)};
MixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
if (mixerGetLineInfo((HMIXEROBJ)nDevID, &MixerLine, MIXER_GETLINEINFOF_COMPONENTTYPE | MIXER_OBJECTF_MIDIOUT) == MMSYSERR_NOERROR) {
	MIXERCONTROL Ctrl;
	MIXERLINECONTROLS Ctrls = {sizeof(MIXERLINECONTROLS), MixerLine.dwLineID};
	Ctrls.cControls = 1;
	Ctrls.dwControlType = MIXERCONTROL_CONTROLTYPE_MUTE; 
	Ctrls.cbmxctrl = sizeof(MIXERCONTROL);
	Ctrls.pamxctrl = &Ctrl;
	if (mixerGetLineControls((HMIXEROBJ)nDevID, &Ctrls, MIXER_GETLINECONTROLSF_ONEBYTYPE | MIXER_OBJECTF_MIDIOUT) == MMSYSERR_NOERROR) {
		MIXERCONTROLDETAILS Details = {sizeof(MIXERCONTROLDETAILS)};
		Details.dwControlID = Ctrl.dwControlID;
		Details.cChannels = 1;	// 決めうちで良いらしい
		MIXERCONTROLDETAILS_BOOLEAN Boolean = {0};
		Details.paDetails = &Boolean;
		Details.cbDetails = sizeof(MIXERCONTROLDETAILS_BOOLEAN);
		if (mixerSetControlDetails((HMIXEROBJ)nDevID, &Details, MIXER_SETCONTROLDETAILSF_VALUE | MIXER_OBJECTF_MIDIOUT) == MMSYSERR_NOERROR) {
			// 成功
		}
	}
}

この制御をDominoに組み込めば「音が鳴らない!」と助けを求める方が激減する予感。

レイヤの概念をざっくりとご説明。
(DominoのSC-8850音源定義ファイルだとレイヤ設定できませんが、エクスクルーシブでやればOK!!)

例えば「ピアノとオルガンの混ぜた音を使いたい」と思ったら、
トラック1をピアノ、トラック2をオルガンにしておいて、(プログラムチェンジ以外は)全て同じ演奏データ(=ノート、ピッチベンドカーブ等)にしておくのが一番単純な実現方法かと思います。

layer000

ただ、これだとトラック1のメロディを変えたら、それをトラック2にコピーする手間が発生します。
また、演奏データ量が多いと、同じ内容を二重で送信するため、その分MIDI通信時や音源側に負荷が掛かります(MSGSの場合は関係ないかもしれませんが)。

レイヤを使うとこのあたりが少しすっきりします。
まず、音源のパート2に対して、プログラムチェンジ命令(オルガンになれ!)と受信チャンネル変更命令(チャンネル1を受信しろ!)を投げます。
layer001

あとは、チャンネル1に対して演奏データを送信すれば、パート1とパート2がそれを受信してピアノとオルガンの音が鳴るというわけです。
layer002

これでしたら、Domino側の演奏データやMIDIケーブル上を流れるデータは1トラック分で済みますし、音源側の負荷も減らせます。
(SC-8850なんかでは、結構もたりが軽減されます)

今回の例は音色を変えただけですが、やりようによっては、オクターブの違う音を重ねたり(キーシフトに対応した音源で可能)、パンポットの左右で重ねたり、といった事ができます。

デメリットも当然ありまして、一度受信チャンネルをずらしてしまうと、例えばパート2(オルガン)だけ音量を調節したいと思ってもすぐには変えられなかったりします。
このあたりはケースバイケースといった所かと思います。

こんな感じで、受信チャンネルをずらして1トラック分の演奏データで複数のパートを重ねて鳴らす手法の事を「レイヤ」と言います(たぶん)。
(すみません、結構憶測が含まれるので間違っていたら突っ込み入れてください。)

ちなみに音源によっては受信チャンネルをずらさなくても、(音を作り込む機能として)レイヤを組める物があります。
ハードウェア音源を持っている方は一度マニュアルを読んでみると新たな発見があるかもしれませんよ??

EDGE touch Ver.1.05が公開となりました。
アップデート通知が来ていると思いますので、当ててみてください。


icon
 EDGE touch Ver.1.05
 日本:230円 米国:1.99ドル

iTunes内のEdge touch販売サイトへ

Ver.1.05リリースにあたって

そもそも、EDGE touchはiPhoneプログラミングの勉強用として作り始めたこともあって、
まずはアプリがちゃんと動くことが目標でした。
その結果、「機能は一通り揃っているけど・・・なんか使いづらい」アプリになってしまったかと思います。

途中でミニカラーパレットが付いたことで、多少使い勝手が良くなったと思うのですが、
その頃あたりから、もう一度インターフェースの再検討をしようと思うようになり、
今回勢い余ってアプリの作り直しを行いました。

作り直しにあたって、このホームページのデザインを作っていただいたブロックワークスさん(http://blockworks.jp/)にこの件をチラっとご相談したところ、
お忙しい中快くご協力してくださいまして、2人であーだこーだ言いながらインターフェースを決めていき(だいぶ私が無茶を言っていた気がしますが)、
最終的にブロックワークスさんに格好良いデザインに仕上げて頂きました。

メイン画面

メイン画面はこんな感じになりました。
IMG_0166

片手でも操作出来るように、編集エリアを左上側に広く確保しています。

ツール切り替え機能

旧バージョンでは、ツール切り替えが手間だったのですが、新バージョンでは
ツール一覧も右上に出ていますので、切り替えも効率よく行えると思います。

なお、ツールは3つだけではなく、スクロールすると他の物が出てきます。
比較的よく使うツールだけ表に出しておき、あまり使わないツールは
奥にしまっておく感じです。

当然よく使うツールの数や種類は人によって違ってくると思いますので、
環境設定でカスタマイズ出来るようにしてあります。

Screenshot 2010.02.05 21.14.22

Screenshot 2010.02.05 21.14.33

オプション機能、ペンサイズなど

オプションボタンを押すと、現在選ばれているツールのオプションが表示されます。
例えば、ペンツールではここでペンの太さを変えることができるようになりました。

Screenshot 2010.02.05 21.19.24

なお、選択系ツールに切り替えた場合は、自動的にオプションが表示されますので、
選択→コピー→貼り付け と言った一覧の操作がスムーズに出来るようになりました。

Screenshot 2010.02.05 21.20.38

スポイト機能

旧バージョンで有ったスポイトボタンは無くなりまして、長押しでスポイトを行うように仕様を変更しました。

PocketPC版のEDGEの影響で「長押し」に偏見があったのですが、EDGE touchには長押しの方が適していると判断し、仕様変更に至りました。
(ボタンも減らせますしね(^^;)

Screenshot 2010.02.05 21.24.03

長押しと判定するまでの時間は、環境設定で変更する事もできます。

カラーパレット

カラーパレットボタンは一度タップすると右側がミニカラーパレットに切り替わります。
旧バージョンと同じで、フリックでスクロール(256色表示)、タップで描画色の変更ができます。
また、ダブルタップでの色の調節も特に変わっていません。

ミニカラーパレットが出ている状態で、もう一度カラーパレットボタンを押すと、今度はカラーパレット画面に切り替わります。
この画面内では背景色の変更などの他に、新たに「色の入れ替え」「グラデーションの作成」が出来るようになりました。
Screenshot 2010.02.05 21.26.54

また、パレットだけを保存することが出来るようになりました。
保存しておいたものを後から読み込むことは当然できますが、
画像新規作成時に、保存してあるパレットを指定して書き始めることが出来るようになりました。

Screenshot 2010.02.05 21.27.47

レイヤ

レイヤボタンを押すと右側にミニレイヤ(?)が表示されます。
ここでカレントレイヤの切り替えや追加がすぐに行えます。
Screenshot 2010.02.05 21.30.02

ミニレイヤが表示されている状態でもう一度レイヤボタンを押すと、今度はレイヤ画面が表示されます。
こちらは旧バージョンと機能的な変更はありません。
Screenshot 2010.02.05 21.32.06

トレース機能

初期のバージョンから要望の多かったトレース機能が付きました。
トレース機能を使うと、他のペイントソフトで描いた絵やカメラで撮った写真などを下絵にして
ドット絵を描くことができるようになります。
(背景色部分が透過して下絵が見えるようになります)

Screenshot 2010.02.05 21.35.08

閲覧モード

閲覧ボタンを押すと、邪魔なバーとグリッドが消えた状態でドット絵を見ることが出来ます。
仕上がり具合などを眺めるときに使えると思います。

ちなみに、拡大表示している時のスクロール単位が細かくなりました。
(拡大時に、見た目上での1ピクセル単位でスクロールが可能になりました。)

アニメーション機能

アニメーション機能(レイヤアニメーション機能)もいろいろと変更しました。
旧バージョンでは全体でしかスピードを変えられませんでしたが、
新バージョンではフレーム毎にディレイ値を変更できるようにしました。

Screenshot 2010.02.05 21.37.46

一括での変更や、ディレイ単位、アニメ順序の設定も行うことができます。

Screenshot 2010.02.05 21.39.57

アニメーション用のフレームを描きやすくするために、オニオンスキン機能も用意いたしました。
オニオンスキン機能を使うと一つ下のレイヤを薄く表示させておくことが出来ますので、
連続した絵を描きやすくなると思います。

Screenshot 2010.02.05 21.41.55

また、旧バージョンではレイヤの上限が10枚だったため、アニメーションも10フレームしか描くことができませんでしたが、これだと短いアニメしか作れませんので、レイヤの上限を128枚まで引き上げました。

ただし、画像サイズによっては128枚までレイヤを増やすことができません。
64×64でしたら128枚まで作成が可能ですが、320×480では今まで通り10枚までとなります。

メール添付機能

メール添付機能を実装しました。
アニメーション機能で作った画像はアニメーションGIFとして添付する事もできます。

Screenshot 2010.02.05 21.45.30

メール作成画面でアニメGIFがアニメーションしたのはちょっと驚きでしたが、
オリジナルの動く絵文字なんかも作って送ることも出来てしまいますので、新たな遊び方ができそうです。

edgetouch

是非、新しくなったEDGE touchで遊んでみてください。

記事検索

コミュニティ

Banner designed by とく様
ドット絵掲示板
ドット絵掲示板
自作の「ドット絵」を投稿することができます。ドッターさん同士の交流の場としてご利用ください。
TakaboSoft Wiki
TakaboSoft Wiki
ソフトウェアに関する質問・不具合報告・要望などを書き込むことができます。