OggPlayのスキンの作成方法
ここでは702nk/nkII用(Symbian S60用)のOggPlay用のスキンの作成方法です。
OggPlay本体はこちらになります。[OggPlay]
2006/01/16 OggPlayがVer1.6.7にバージョンアップしました。
2006/04/29 OggPlayがVer1.6.9にバージョンアップしました。
Oggファイルについてはこちらに。![]()
まだ、動作確認作業をしながら作成してますので、意味不明な点や、間違いがある可能性があります。
あくまでも自己責任で作成してください。
サンプルとして3rdED_ogg_V1.1のbmpファイルを公開しますので、参考にしてください。[3rdED_ogg_V1.1_src.zip]
・ポイント
自分で、好きなデザインが作れます。
Oggplayの登録できるスキンは10個それ以上はリストに表示しない
702nk/nkII本体のsystemフォントにより表示が変わります。
systemフォントを変えるわけには行きませんので、フォント関連のサイズや位置を修正する必要がある場合があります。
(systemフォントを変えると表示が変わります)
oggファイルの再生のときにアナライザーが動きます。
音楽のTitleとArtistは別々に表示させないと、同時表示になります。
OggPlayには2個のキャンパス(背景)があり、fkip-openとflip-clodes modeがあります。
flip-clodes modeはオプションです。(シングルスクリーンモードしかないため、特に必要ではないので)
キャンパスはコントロール機能をふくんでおり、スキンは複数のビットマップ・ファイルとスキン定義ファイルによって定義されます。
Ver1.6.6からN90に対応し.352x376の解像度にも対応していますが、702nk/nkIIでは起動して使えますが176x188の部分しか表示できないので使えません。
スキンの作成には今までどおりの指定の方が無難です。
また、Ver1.66からVolume Boost機能が追加されました。
Ver1.6.9からalarm機能が使えるようになりました。
作成手順
1.背景のためのビットマップイメージの作成
176x188 bmp file(image19.bmp) (サイズは本当は自由です)
mbmwhizadで結合するときに自動変換されるのでjpgファイルでもかまいません。
サイズも表示がオーバーするだけで問題なく使えます。
例 image19.jpg 180x200
(symbian80の場合 flip-open: 208x254 pixels; flip-closed: 208x144 pixels)

2.各コントロールのためのビットマップ・イメージの作成
アイコンは14x14が標準的です。(サイズは本当は自由です)
![]()
3.それぞれのビットマップ・イメージの結合ファイルの作成。(*.mbmファイルの作成)
mbmwhizadを使って結合させます。
最低0~35の36個のイメージファイルを用意してください。
各イメージファイルと必要なマスクビットマップも用意し、登録順とカラーモード(写真がある場合は/24)を確認し一度に登録してください。
発色数が多いと当然データサイズが大きくなります。(使用には問題ないみたいです)

登録後、マスクビットマップを /c1でmonoに登録変更しなおす。
変更しなくとも問題ないですが、ファイルサイズが小さくなります。

ファイルを保存して完了です。
4.スキン定義ファイル(*.skn)の作成
asciiのテキストファイルです。
5.作成した*.mbmと*.sknファイルを702nkにコピーしてインストールします。(\system\apps\OggPlay)
(インストールファイル *.sisに圧縮しておく方法もあります)
6.OggPlayのメニューからskinsの項目から使用したい新しいスキン名を選択して出来上がりです。
必要なソフト
1.BMCONV.EXE
2.mbmwhizard.exe
(ここからダウンロードできます 現在はダウンロードできなくなってます)
mbm(The multiple bitmap file)ファイルの作成
スキンのためにはbitmapをまとめたmbmファイルが必要です。
ファイルの最初の20個のビットマップファイル(0~19)に、格納の意味があります。
ファイル名で認識するのではなく、登録順の順番で認識しています。
よって、mbmファイルの作成時には登録の順番に注意してください。
(20~33に未使用でもダミーファイルを入れて作成しないと順番がずれて34,45を認識できすエラーになります。)
プレイリストのlistboxは以下の固定サイズ20×16のイメージ(それぞれ1つのビットマップ+のマスクビットマップ)を使用します
0~19 予約されたファイル
20~33 ユーザー定義のファイル(使わない場合は1x1のダミーデータを入れる)
34,35 予約されたファイル
34~60 ユーザー定義ファイル
| index | 意味 | ファイル名 | 使用例 | 使用例 |
|---|---|---|---|---|
| 0 | icon for a track title | image00.bmp | ||
| 1 | マスクビットマップ | image01.bmp | マスクビットマップ | |
| 2 | icon for an album | image02.bmp | ||
| 3 | マスクビットマップ | image03.bmp | マスクビットマップ | |
| 4 | icon for an artist | image04.bmp | ||
| 5 | マスクビットマップ | image05.bmp | マスクビットマップ | |
| 6 | icon for a genre | image06.bmp | ||
| 7 | マスクビットマップ | image07.bmp | マスクビットマップ | |
| 8 | icon for a folder | image08.bmp | ||
| 9 | マスクビットマップ | image09.bmp | マスクビットマップ | |
| 10 | icon for a file | image10.bmp | ||
| 11 | マスクビットマップ | image11.bmp | マスクビットマップ | |
| 12 | icon representing the action "go back" | image12.bmp | ||
| 13 | マスクビットマップ | image13.bmp | マスクビットマップ | |
| 14 | icon representing the state "playing" | image14.bmp | ||
| 15 | マスクビットマップ | image15.bmp | マスクビットマップ | |
| 16 | icon representing the state "paused" | image16.bmp | ||
| 17 | マスクビットマップ | image17.bmp | マスクビットマップ | |
| 18 | flip-close modeの背景画像 | image18.bmp | ![]() |
208x144 特にいじらない |
| 19 | flip-open modeの背景画像 | image19.bmp | ![]() |
176x188 サイズ自由 |
| 20 | ユーザー定義 | image20.bmp | PlayedDigitsで使用 | |
| 21 | ユーザー定義 | image21.bmp | PlayedDigitsで使用 | |
| 22 | ユーザー定義 | image22.bmp | PlayedDigitsで使用 | |
| 23 | ユーザー定義 | image23.bmp | PlayedDigitsで使用 | |
| 24 | ユーザー定義 | image24.bmp | PlayedDigitsで使用 | |
| 25 | ユーザー定義 | image25.bmp | PlayedDigitsで使用 | |
| 26 | ユーザー定義 | image26.bmp | PlayedDigitsで使用 | |
| 27 | ユーザー定義 | image27.bmp | PlayedDigitsで使用 | |
| 28 | ユーザー定義 | image28.bmp | PlayedDigitsで使用 | |
| 29 | ユーザー定義 | image29.bmp | PlayedDigitsで使用 | |
| 30 | ユーザー定義 | image30.bmp | PlayedDigitsで使用 | |
| 31 | ユーザー定義 | image31.bmp | PlayedDigitsで使用 | |
| 32 | ユーザー定義 | image32.bmp | PlayedDigitsで使用 | |
| 33 | ユーザー定義 | image33.bmp | PlayedDigitsで使用 | |
| 34 | OggPlay予約 | image34.bmp | ||
| 35 | OggPlay予約のマスクビットマップ | Image35.bmp | マスクビットマップ | |
| 36 | ユーザー定義 | Image36.bmp | PlayingIconで使用 | |
| 37 | ユーザー定義 | Image37.bmp | マスクビットマップ | |
| 38 | ユーザー定義 | Image38.bmp | PausedIconで使用 | |
| 39 | ユーザー定義 | Image39.bmp | マスクビットマップ | |
| 40 | ユーザー定義 | Image40.bmp | RepeatIconで使用 | |
| 41 | ユーザー定義 | Image41.bmp | マスクビットマップ | |
| 42 | ユーザー定義 | Image42.bmp | Volumeで使用 | |
| 43 | ユーザー定義 | Image43.bmp | マスクビットマップ | |
| 44 | ユーザー定義 | Image44.bmp | Positionで使用 | |
| 45 | ユーザー定義 | Image45.bmp | マスクビットマップ | |
| 46 | ユーザー定義 | Image46.bmp | ScrollBar | |
| 47 | ユーザー定義 | Image47.bmp | マスクビットマップ | |
| 48 | ユーザー定義 | Image48.bmp | Analyzerで使用 | |
| 49 | ユーザー定義 | Image49.bmp | マスクビットマップ | |
| 50 | ユーザー定義 | Image50.bmp | alarmで使用 | |
| 51 | ユーザー定義 | Image51.bmp | マスクビットマップ |
一覧表のテーブルインデックスはビットマップの予約された番号でスキン定義ファイルで使われます。
残りの番号は自由に割り当てでき、スキン定義ファイルで定義します。
そして、すべてのビットマップファイルを1つのファイル(*.mbm)に結合します。
スキン定義ファイル(*.sknファイル)
OggPlayのデフォルトのスキンはOggPlay.sknで定義されています。
新しいスキンを作るということは、このファイルを変更することになります。
内容は機能とそのコントロール定義です。
"//"でコメント行としてシステムには認識できない行になり、メモやコメントが入れられます。
ビットマップイメージは60番までしか扱えません。(mbmは60以上登録可能です)
OggPlay 1 {
FlipOpen {
PlayingIcon {
Position 15 9 105 12
Icon 26 27
}
ListBox {
Position 6 38 162 144
Font JapanPlain16 1 0
FontColor 46 51 109
FontColorSelected 181 203 227
BarColorSelected 102 114 150
}
//Clock {
//Position 128 9 40 15
//Font LatinBold19 1 1
//FontColor 255 51 109
//}
Played {
Position 10 25 80 10
Font JapanPlain12 1 1
FontColor 46 51 109
}
Volume {
Position 114 24 39 10
Style 0
KnobIcon 22 23
}
}
}
機能一覧
| Object | Control type | 内容 | 備考 |
|---|---|---|---|
| Alarm | Text | アラーム時間 (アラームが設定される場合) |
アラームの時間 Ver1.6.9から対応 |
| AlarmIcon | Icon | アラームが設定されるのを示すアイコン (unsetであるなら、隠される) |
アラームのアイコン ver1.6.9から対応 |
| Analyzer | Analyzer | スペクトラムアナライザ | Ver1.6.5で動作,Oggファイル再生時に動きます |
| Animation | Animation | 動画gifと同じの動画ビットマップ | 動作不可? |
| Artist | Text | 現在再生されているアーティスト名 | 日本語フォントは16ドットの高さ |
| Title | Text | 音楽が現在演奏されるタイトル | 日本語フォントは16ドットの高さ |
| Album | Text | 現在演奏されるアルバム名 | 日本語フォントは16ドットの高さ |
| TrackNumber | Text | 音楽が現在演奏されるトラック番号 | トラック番号表示 |
| Clock | Text | 現在の時間 | 40ドットぐらいの幅 |
| Genre | Text | 現在演奏されるジャンル | 日本語フォントは16ドットの高さ |
| Played | Text | 「00:00 / 00:00」の再生時間と総時間 | - |
| Listbox | Listbox | プレイリストなどがあるlistbox | 1文字20(幅)x16(高)で表示 |
| Logo | Animation | 動画gifと同じの動画ビットマップ 音楽が再生されていないときに表示されます。 |
動作不可? |
| NextSongButton | Button | プレイリストで次の歌を演奏するボタン | - |
| PauseButton | Button | plackbackをポーズするボタン。 音楽がcurrenltyプレーである場合にだけ目に見えます。 また、PlayButtonに関してコメントを見てください! |
- |
| PauseButton2 | Button | まさしくPauseButtonのように、常時表示。 PlayButtonに関してコメントを見てください |
- |
| PlayButton | Button | 選択された音楽を演奏するか、またはポーズされた音楽を再開するボタン。 プレーヤーがポーズされたモードでいると、隠される。 どんなプレーできる音楽もlistboxで選択されないと、薄暗くされる。 PauseButtonに関連してこのボタンを使用することができます、 同じ場所の2個のボタンをかぶせて--1つだけが一度に、目に見える。 |
- |
| PlayButton2 | Button | まさしくPlayButtonのように、常時表示。 PlayButtonに関してコメントを見てください |
- |
| StopButton | Button | 再生を止めるボタン。 音楽が全く演奏されていないと、薄暗くなる |
- |
| PrevSongButton | Button | プレイリストで前の音楽を演奏するボタン | - |
| RepeatButton | Button | 繰返し方式を可能にするか、または無効にするのに使用される2パターンのボタン | - |
| PlayedDigits | Digits | 再生時間のビットマップ表示 (以下でのDigitsコントロールの記述を見てください)。 |
- |
| TotalDigits | Digits | 再生合計時間のビットマップ表示 (以下でのDigitsコントロールの記述を見てください)。 |
- |
| Position | Slider | 音楽の位置のスライダー。 音楽が全く演奏されていないと、不活発であるか薄暗くされる |
- |
| Volume | Slider | ボリュームスライダー | - |
| Scrollbar | ScrollBar | listboxに関連しているスクロールバー | - |
| PlayingIcon | Icon | 歌が演奏されているのを示すアイコン | - |
| RepeatIcon | Icon | 繰返し方式がオンであることを(反復が取り止めになると、隠される)示すアイコン | - |
| PausedIcon | Icon | 再生がポーズされるのを示すアイコン。 | - |
| HotKry | Text | テンキーへのホットキーの機能設定の割り当て | OggplayのOptionsのHotKeysの設定に反映されます。 |
各コントロールが持つことができる属性はコントロールタイプによって定義されます:
・すべての物に共通であるのは、Positionで位置とサイズを指定します。x、y画素位置、幅、および高さを表しいます。
位置(x=0、y=0)はスクリーンの左上に対応しています。
Position 51 84 93 74
左から51,上から84,幅93,高さ74

・Icon
同じサイズの2つのビットマップを使用します。
サイズは任意です。(14x14が標準的なサイズ)
最初の1つは実際のアイコンビットマップです、そして、2番目の1つはアイコンの見え透いた画素を定義するmonochromマスクです:
すべての白い部分が透明です(バックグラウンドビットマップははっきりわかります)。
1つはイメージとそのマスクに全く同じビットマップを使用することができます。
属性名はイメージとマスクビットマップのインデックスがいうことになったIconです。
アイコンは与えられた頻度で瞬くことができます。
数があとに続いた属性BlinkFrequencyを使用してください(私は、それが1/第10およそ2番目のユニットにあると思います)。
![]()
![]()
PlayingIcon {
Position 11 94 50 30
Icon 36 37
}
・Slider
スライダーのノブは1つのビットマップとマスクビットマップの組み合わせで使います。:
スライダー「バックグラウンド」がキャンバスに関する背景画像で目に見えるます。
ノブアイコンのサイズは任意にchoosenな場合があります。
属性名はイメージビットマップとマスクビットマップのインデックスがいうことになったKnobIconです。
severlスライダースタイルがあります(属性様式を使用してください):
Style 0 = ビットマップを左から右まで順番表示していきます;
Style 1 =下から上へ減っていきます
Style 2 = ノブビットマップは左から右まで動きます;
Style 3 = 2と同じですが、動きが下から上へ動きます。
Style0と2は機能しますが、他のものは本当にテストされません。
Volume {
Position 20 61 50 10
Style 2
KnobIcon 42 43
}
・Button
これはいくつかのビットマップとマスクを取ります。
もっとも、それらは皆、任意です(人は、バックグラウンドキャンバスイメージの一部としてボタンを描くことができて、したがって、どんな追加イメージも提供する必要はありません)。
ボタンにはいくつかのパターンイメージがあります:
Normal/Pressed/Dimmed.
また、後者の3つのビットマップがそれぞれマスクビットマップを必要とします。
さらに、1つはボタンの活動領域を定義するマスクビットマップを割り当てることができます、
すなわち、針のチップがボタンの引き金となる(属性名はマスクビットマップのインデックスがいうことになったActiveMaskです)領域。
黒い領域がアクティブである、白い領域は不活発です。
属性名は、NormalIconと、PressedIconと、DimmedIconと、イメージのインデックスがあとに続いたそれぞれとマスクビットマップです。
・Analyzer
Analyzerは1個の棒タイプのビットマップをもとにした、1つのビットマップです。
使用可能になるように3幅画素でビットマップを作成してください、
高さは自由に設定できます。
atrribute名はイメージのインデックスリストとマスクビットマップがいうことになったBarIconです。
OggPlayのバージョンにより機能しません。
OggPlay Ver1.6.5でoggファイルの再生で動きます。
Analyzer {
Position 60 78 60 20
BarIcon 48 49
}
・ScrollBar
これは現在、1つのビットマップ(+マスク)の組み合わせです:
KnobIconはインデックスリストのビットマップとマスクビットマップの番号です。
Styleは、スクロールバーが垂直な(0)かそれともhorizintal(1)であるかを定義します。
Stepはスクロールバー矢が押されるならスクロールされる線の数を定義します。
ページ属性はスクロールバーシャフトがklickedされるときスクロールされる線の数を定義します。
ScrollerSizeはスクロールバー(すなわち、垂直なスクロールバーの場合の高さと水平なスクロールバーの場合の幅)の画素数です。
ScrollBar {
Position 165 85 10 120
KnobIcon 46 47
Style 1
ScrollerSize 10
Step 1
}
・ListBox:
listboxは、すでに説明されるように複数のビットマップ・ファイルからイメージを取ります。
フォントカラーはRGBの0~255までの数値とFontColor属性によって設定されます
同様に、選択された音楽のフォントカラーはFontColorSelectedによって設定されます。
フォント名、twipsの字体サイズ、および字体スタイル(0=標準; 1=のボールド)は属性Fontのあとに続いています。
1行の文字高さは16ドット使用しますので、5行表示したい場合は5x16=80ドットでぴったり収まります。
(60-1=59で1ドット少なく高さ設定すると、最下位の行が選択されたと時、自動的に繰り越表示されます)
利用可能なフォント名とサイズに関して以下のテーブルを見てください。
ListBox {
Position 4 108 168 80
Font JapanPlain12 20 1
FontColor 0 0 102
FontColorSelected 240 240 240
BarColorSelected 51 102 255
}
・Text:
フォントの色はFontColorでGRBの赤・緑色・青色の0~255までの数値で設定します。
フォントの種類はFontのあとに続いて フォント名、twipsの字体サイズ、および字体スタイル(0=標準; 1=のボールド)で設定します
twipsのサイズは0~15で16ポイントサイズ,16以上だと強制的に12ポイントフォントを使います。
twipsの設定機能がいまだに不明。とりあえず、16ポイントを使いたいときは設定を「1」ぐらいにしておく。
実際の表示でオーバーするとスクロール表示する。
Artist {
Position 10 92 158 18
Font JapanPlain12 1 0
FontColor 0 0 102
Style 2
ScrollDelay 10
ScrollStep 4
}
以下の字体は利用可能です:
| Font LatinPlain12 7 0 | フォントの種類,高さ,ノーマル |
| FontColor 255 255 255 | RGBでのフォントの色 |
| FontColorSelected 0 0 0 | 選択時のフォントの色 |
| BarColorSelected 74 0 131 | 選択時のフォントのバックグランド色 |
| Style 3 | スクロール方法の設定 0.右から左へ1度スクロール 1.右から左の繰返 2.右から左の繰返 3.右左->左右の繰返 4.右から左の繰返 |
| ScrollDelay 10 | スクロール開始までの時間 |
| ScrollStep 4 | スクロールのスピード |
| SwissA | 範囲10-19の4つのサイズ |
| Courier | only size 8 |
| Symbol | 範囲11-16の2つのサイズ |
| Eikon | only size 15 |
| フォント名 | フォントスタイル | 備考 | |||
|---|---|---|---|---|---|
| Nomal(0) | Bold(1) | ||||
| JapanPlain12 | 日本語フォント | ||||
| JapanPlain16 | 日本語フォント (system フォントによる) |
||||
| LatinBold12 | 7 | 英文font | |||
| LatinBold13 | 8 | 英文font | |||
| LatinBold17 | 10 | 使用不可? | |||
| LatinBold19 | 11 | 使用不可? | |||
| LatinPlain12 | 7 | 英文font | |||
| Alpi12 | 7 | 英文font | |||
| Albi12 | 7 | 英文font | |||
| Alp13 | 8 | 英文font | |||
| Alpi13 | 8 | 英文font | |||
| Albi13 | 8 | 英文font | |||
| alp17 | 10 | 英文font | |||
| Alb17b | 10 | 英文font | |||
| albi17b | 10 | 英文font | |||
| alpi17 | 10 | 英文font | |||
| Acalc21 | 21 | 数字fontのみ,時刻表示用 | 60 21 | ||
| Acb14 | 14 | 数字fontのみ,時刻表示用 | 40 14 | ||
| Acp5 | 数字fontのみ | ||||
・Animation:
属性のFirstBitmapとNumBitmapsはアニメーションに使用されるビットマップインデックスリストを定義します。
属性Frequencyはアニメーション速度を定義します、そして、(デフォルトは2です)Pauseは2アニメーションサイクルの間の時間inbetweenを定義します。
Styleはアニメーションがどう演じられているかを(終始するときの当時の0=くぎり; 始めと始めから終りまでであって逆の=1つのくぎり)定義します。
・Digits:
このコントロールは.0~9のキャラクターのためのビットマップとマスクbitampsです
「0インチのビットマップ」のインデックスは属性Bitmapsのあとに続いています。
「0インチのマスクビットマップ」のインデックスは属性Masksのあとに続いています。
マスクはオプションです。
時間やタイムの表示のときに使いますが、システムフォントにはない表示を可能にします。
通常はシステムフォントでの表示のほうがいいかもしれません。
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
PlayedDigits {
Position 73 0 90 45
Bitmaps 20 14
}
TotalDigits {
Position 100 5 120 20
Bitmaps 20 14
}
}
・HotKeys
OggPlay本体のHotKeyの設定をできます。
スキンで設定していると、Oggplayのオプション設定に登録され、他のスキンを呼んでも再度設定しない限り有効です。
keyLock,Pauseには未対応で設定できません。
Ver1.66からVolume Boostに対応になり設定可能になっています。
HotKeys {
FastForward 5
Rewind 8
PageUp 6
PageDown 4
NextSong 9
PreviousSong 7
PauseResume 2
VolumeBoostUp 1
VolumeBoostDoun 3
}
Hotkeys設定内容例
0 Stop 停止
1 VolumeBoostUp
2 PauseResume 休止/再生
3 VolumeBoostDoun
4 PageDown 曲一覧次表示
5 FastForward 曲の早送り
6 PageUp 曲一覧前表示
7 PreviousSong 前の曲
8 Rewind 曲の頭だし
9 NextSong 次の曲
# Repeat 繰返し再生
・Botton
ノーマル・押された状態・非活性状態の3パターンを登録でき、テンキーなどと連動させます。
登録アイコン数が多くなります。
PlayButton {
Position 142 81 34 33
NormalIcon 42 43
PressedIcon 44 45
DimmedIcon 46 47
KeyBind 8
}
Alarm
アラーム設定したときのアイコン表示とアラーム時間の表示
OggPlay Ver1.6.9から対応しました。
Alarm {
Position 135 73 48 12
Font JapanPlain12 0 1
FontColor 0 0 102
}
AlarmIcon {
Position 120 70 13 15
Icon 50 51
}
}
追加
起動時の画面も変えられる。

Oggplayソフト本体の中に「s60splash.mbm」というファイルがそれです。
その中の「image0.bmp (176x208)」が、それです。
これも、mbmwhizadを使ってかえれば、起動時に表示が変わります。
ほかのmbmファイルと同じホルダー(system\apps\OggPlay)に入れても大丈夫です。