BBRK 10-03-26
ヴィジョン・ファクトリー と提携している九州のスクール「スターライトスクール」から久しぶりにお便り(メール)を頂きました。ありがとうございます。
3/22に頂いていたのですが、紹介が遅くなりましてすいませんです(苦笑)
差し障りのない文章なので、そのまま全文引用しちゃいます。
| ご無沙汰いたしております。 お変わりなく、ご活躍のことと存じます スターライトスクールです。 今年1月の佐世保市島瀬公園での農水商工祭 「食のフェスティバル」イベントに遠路お越しいただき ありがとうございました。 早いもので桜の季節になりましたね、先週子供達が イベントに出演いたしましたので、ご連絡申し上げます。 小さなスクールですが、少しでも子供たちの実力がアップ しますよう頑張ってまいりますのでよろしくお願い致します。 http://www.stl-n.com/stagereport.HTM |
う〜ん、このへんのひと と勘違いしてませんか?(大苦笑)
残念ながら、ここ何年もスタライのイベントを見ていませんので…。
それはさておき、たまにはスタライのイベントも見に行かないといけないな〜ということを再認識させられるイベントレポのページ、いいですなぁ。
ヲタだけでなく、このスクールへの入会を考えている生徒さんやその親御さんにとっても、入会後の姿がイメージできて、ぐっとモチベーションが上がりますものね。
スクール公式サイトにとって、この手のコンテンツはとても重要だと思います。
+ + + + +
おまけ(笑)
特に断りもなく「スタライ」と言うと、ひとによって解釈がいろいろあるようです。
「スターライトスクール」を想起するひとは正統派(笑)
「スターライトスタジオ」を想起するひとはマイノリティー(笑)
「スタジオライブ」を想起するのは大阪のひと(爆)。この場合、単なるスタジオで行うライブという一般的な言葉ではなく、創叡 の自社ビル内でマンスリー開催されているライブのことを差す(笑)
[分類] ビデコ(笑)
# ほっとんどの人には興味ないネタだと思いますので、スルーしちゃってください(苦笑)
BBRK 08-10-31「TD3D & PgcEdit で DVDオーサリング」の続編です。
BBRK には書いていませんでしたが、BDオーサリングのために「TMPGEnc Authoring Works 4」(略称 TAW4)を買ったんですな。
TD3D がなかなか使いやすかったので、その後継として出たソフトなので、まぁハズレはないだろうということで(笑)
で、BDオーサリング以外にも進化している部分があって、この記事に関連することだと、「DVD再生中にメニューボタンを押したときに対応するチャプターの位置にハイライトを表示してメニューが立ち上がる機能」が追加になっていました。
DVDレコーダ等では普通に実現できている機能なのですが、なぜか TD3D にはこのようにオーサリングする機能がありませんでした。メニューボタンを押すと、常に 1枚目のメニュー画面のデフォルトの位置(例えば全トラック再生など)にハイライト(カーソル)が表示されてメニューが立ち上がります。
さっそく、この機能を使って(メニュー作成時に機能の ON/OFF が選択できます)DVD-VIDEO を制作してみたのですが、これがいまいちなんですよねぇ…(苦笑)
例えば、ディスクにタイトルは 1つだけ存在し、その中をいくつかのチャプターで切ってあって、トラックメニューがあって、ディスク挿入時と全再生後に自動的にメニューが立ち上がるように作った場合。
(1) ディスクを入れると チャプター1 にハイライトが表示されてメニューが出る
(2) 最後まで再生が終わると最終チャプターにハイライトが表示されてメニューが出る
(1)、(2)どちらのケースも、こちらの希望はチャプター上ではなくて、全再生の PLAYボタン上にハイライトが表示されて欲しいんですよねぇ。
そんなわけで、またしても PgcEdit を使って細工しちゃいました。
TAW4 の吐き出すコードですが、TD3D に比べると複雑になってます。
まともに解析していませんが、字幕処理関係が強化されているようです。
私が作る DVD には字幕ストリームも入っていなけりゃ音声ストリームの切り替えもないので、ほとんどは不要なコードだと思いますが(苦笑)
でもって修正ですが、ソフトウェアが機械的に出力しているコードなので、明らかに不要な部分もあり、それを残しつつ、所望のことをしようとすると効率が悪いので、明らかに不要な部分をカットしてから修正しました。
■RootM の修正
変更前
VTSM 1 , LU 1 (--) , 1 (dummy) RootM - チャプター: なし, プログラム: 0, セル: 0
********** pre commands:
1 Set gprm(9) =(mov) 0
2 Set gprm(9) |=(or) 32768
3 Set gprm(1) =(mov) sprm(1:音声ストリーム ナンバー)
4 Set gprm(4) =(mov) gprm(9)
5 Set gprm(4) /=(div) 256
6 Set gprm(4) &=(and) 127
7 if ( gprm(9) & 32768 ) then { Goto line 9 }
8 Goto line 11
9 if ( gprm(15) == 0 ) then { Goto line 11 }
10 if ( gprm(15) != 32768 ) then { Set gprm(1) =(mov) gprm(4) }
11 Set gprm(0) =(mov) gprm(12)
12 Set gprm(0) /=(div) 256
13 Set gprm(0) &=(and) 127
14 if ( gprm(12) & 32768 ) then { Set gprm(1) =(mov) gprm(0) }
15 Set gprm(1) &=(and) 15
16 if ( gprm(9) & 32768 ) then { Goto line 18 }
17 Goto line 21
18 Set gprm(0) =(mov) gprm(1)
19 if ( gprm(0) < 0 ) then { Set gprm(1) =(mov) gprm(4) }
20 if ( gprm(0) > 0 ) then { Set gprm(1) =(mov) gprm(4) }
21 Set gprm(2) =(mov) sprm(2:字幕ストリーム ナンバー)
22 Set gprm(4) =(mov) gprm(9)
23 Set gprm(4) &=(and) 127
24 if ( gprm(9) & 128 ) then { Goto line 26 }
25 Goto line 28
26 if ( gprm(15) == 0 ) then { Goto line 28 }
27 if ( gprm(15) != 32768 ) then { Set gprm(2) =(mov) gprm(4) }
28 Set gprm(0) =(mov) gprm(12)
29 Set gprm(0) &=(and) 127
30 if ( gprm(12) & 128 ) then { Set gprm(2) =(mov) gprm(0) }
31 Set gprm(2) &=(and) 127
32 if ( gprm(9) & 128 ) then { Goto line 34 }
33 Goto line 38
34 Set gprm(0) =(mov) gprm(2)
35 Set gprm(0) &=(and) 63
36 if ( gprm(0) < 0 ) then { Set gprm(2) =(mov) gprm(4) }
37 if ( gprm(0) > 65535 ) then { Set gprm(2) =(mov) gprm(4) }
38 (SetSTN) Set Audio stream = gprm(1) ; Set Sub-picture stream = gprm(2)
39 Set gprm(12) =(mov) 0
40 Set gprm(15) =(mov) 32768
41 Set gprm(10) =(mov) sprm(7:チャプターまたはプログラム ナンバー)
42 Set gprm(10) &=(and) 1023
43 Set gprm(0) =(mov) sprm(4:ボリューム内のタイトル ナンバー)
44 Set gprm(0) &=(and) 127
45 if ( gprm(0) < 1 ) then { Set gprm(10) =(mov) 0 }
46 Set gprm(2) =(mov) sprm(1:音声ストリーム ナンバー)
47 Set gprm(2) &=(and) 15
48 Set gprm(2) +=(add) 1
49 if ( gprm(2) != 1 ) then { Goto line 51 }
50 Set gprm(11) =(mov) 20480 ; LinkPGCN PGC 4
51 Set gprm(11) =(mov) 20480 ; LinkPGCN PGC 4
********** post commands:
********** cell commands: |
41〜50行は不要なのでカット。
39〜40行は gprm変数の値をジャンプ先で読んでいるので、ちょっと残しておきました。
gprm変数の 0〜4 はワークとして使用しているようです。ジャンプ先まで値を保持しておく必要はなさそうなのでカット。
gprm変数の内容は次の通り。
gprm(5) : 表示させるべきチャプターメニューページ番号-1
gprm(6) : 再生後のメニュー呼び出しかどうか。0:No、1:Yes
gprm(7) : RootMに来たときのチャプター値を保持
gprm(11) : ハイライトボタン情報
gprm変数 5〜8 は、初期化しただけで使用していなかったので、今回の修正では上記のように使いました。
gprm11 には「ボタン番号x1024」の値が入ります。
変更後
VTSM 1 , LU 1 (--) , 1 (dummy) RootM - チャプター: なし, プログラム: 0, セル: 0
********** pre commands:
1 Set gprm(9) =(mov) 0
2 Set gprm(9) |=(or) 32768
3 Set gprm(1) =(mov) sprm(1:音声ストリーム ナンバー)
4 Set gprm(4) =(mov) gprm(9)
5 Set gprm(4) /=(div) 256
6 Set gprm(4) &=(and) 127
7 if ( gprm(9) & 32768 ) then { Goto line 9 }
8 Goto line 11
9 if ( gprm(15) == 0 ) then { Goto line 11 }
10 if ( gprm(15) != 32768 ) then { Set gprm(1) =(mov) gprm(4) }
11 Set gprm(0) =(mov) gprm(12)
12 Set gprm(0) /=(div) 256
13 Set gprm(0) &=(and) 127
14 if ( gprm(12) & 32768 ) then { Set gprm(1) =(mov) gprm(0) }
15 Set gprm(1) &=(and) 15
16 if ( gprm(9) & 32768 ) then { Goto line 18 }
17 Goto line 21
18 Set gprm(0) =(mov) gprm(1)
19 if ( gprm(0) < 0 ) then { Set gprm(1) =(mov) gprm(4) }
20 if ( gprm(0) > 0 ) then { Set gprm(1) =(mov) gprm(4) }
21 Set gprm(2) =(mov) sprm(2:字幕ストリーム ナンバー)
22 Set gprm(4) =(mov) gprm(9)
23 Set gprm(4) &=(and) 127
24 if ( gprm(9) & 128 ) then { Goto line 26 }
25 Goto line 28
26 if ( gprm(15) == 0 ) then { Goto line 28 }
27 if ( gprm(15) != 32768 ) then { Set gprm(2) =(mov) gprm(4) }
28 Set gprm(0) =(mov) gprm(12)
29 Set gprm(0) &=(and) 127
30 if ( gprm(12) & 128 ) then { Set gprm(2) =(mov) gprm(0) }
31 Set gprm(2) &=(and) 127
32 if ( gprm(9) & 128 ) then { Goto line 34 }
33 Goto line 38
34 Set gprm(0) =(mov) gprm(2)
35 Set gprm(0) &=(and) 63
36 if ( gprm(0) < 0 ) then { Set gprm(2) =(mov) gprm(4) }
37 if ( gprm(0) > 65535 ) then { Set gprm(2) =(mov) gprm(4) }
38 (SetSTN) Set Audio stream = gprm(1) ; Set Sub-picture stream = gprm(2)
39 Set gprm(12) =(mov) 0
40 Set gprm(15) =(mov) 32768
41 if ( gprm(6) != 0 ) then { Goto line 43 }
42 Set gprm(11) =(mov) 20480 ; LinkPGCN PGC 4
43 Set gprm(7) =(mov) sprm(7:チャプターまたはプログラム ナンバー)
44 Set gprm(5) =(mov) gprm(7)
45 Set gprm(5) -=(sub) 1
46 Set gprm(5) /=(div) 18
47 Set gprm(11) =(mov) gprm(7)
48 Set gprm(11) -=(sub) 1
49 Set gprm(11) %=(mod) 18
50 Set gprm(11) +=(add) 1
51 Set gprm(11) *=(mul) 1024
52 if ( gprm(5) == 1 ) then { LinkPGCN PGC 26 }
53 if ( gprm(5) == 2 ) then { LinkPGCN PGC 47 }
54 LinkPGCN PGC 4
********** post commands:
********** cell commands: |
■TTN の修正
変更前
VTST 1 , 1 TTN 1 (1:30:40) Title 1 - チャプター: 50, プログラム: 50, セル: 51
********** pre commands:
1 Set gprm(9) =(mov) 0
2 Set gprm(9) |=(or) 32768
3 Set gprm(1) =(mov) sprm(1:音声ストリーム ナンバー)
4 Set gprm(4) =(mov) gprm(9)
5 Set gprm(4) /=(div) 256
6 Set gprm(4) &=(and) 127
7 if ( gprm(9) & 32768 ) then { Goto line 9 }
8 Goto line 11
9 if ( gprm(15) == 0 ) then { Goto line 11 }
10 if ( gprm(15) != 32768 ) then { Set gprm(1) =(mov) gprm(4) }
11 Set gprm(0) =(mov) gprm(12)
12 Set gprm(0) /=(div) 256
13 Set gprm(0) &=(and) 127
14 if ( gprm(12) & 32768 ) then { Set gprm(1) =(mov) gprm(0) }
15 Set gprm(1) &=(and) 15
16 if ( gprm(9) & 32768 ) then { Goto line 18 }
17 Goto line 21
18 Set gprm(0) =(mov) gprm(1)
19 if ( gprm(0) < 0 ) then { Set gprm(1) =(mov) gprm(4) }
20 if ( gprm(0) > 0 ) then { Set gprm(1) =(mov) gprm(4) }
21 Set gprm(2) =(mov) sprm(2:字幕ストリーム ナンバー)
22 Set gprm(4) =(mov) gprm(9)
23 Set gprm(4) &=(and) 127
24 if ( gprm(9) & 128 ) then { Goto line 26 }
25 Goto line 28
26 if ( gprm(15) == 0 ) then { Goto line 28 }
27 if ( gprm(15) != 32768 ) then { Set gprm(2) =(mov) gprm(4) }
28 Set gprm(0) =(mov) gprm(12)
29 Set gprm(0) &=(and) 127
30 if ( gprm(12) & 128 ) then { Set gprm(2) =(mov) gprm(0) }
31 Set gprm(2) &=(and) 127
32 if ( gprm(9) & 128 ) then { Goto line 34 }
33 Goto line 38
34 Set gprm(0) =(mov) gprm(2)
35 Set gprm(0) &=(and) 63
36 if ( gprm(0) < 0 ) then { Set gprm(2) =(mov) gprm(4) }
37 if ( gprm(0) > 65535 ) then { Set gprm(2) =(mov) gprm(4) }
38 (SetSTN) Set Audio stream = gprm(1) ; Set Sub-picture stream = gprm(2)
39 Set gprm(12) =(mov) 0
40 Set gprm(15) =(mov) 32768
41 Set gprm(10) =(mov) sprm(7:チャプターまたはプログラム ナンバー)
42 Set gprm(10) &=(and) 1023
43 Set gprm(0) =(mov) sprm(4:ボリューム内のタイトル ナンバー)
44 Set gprm(0) &=(and) 127
45 if ( gprm(0) < 1 ) then { Set gprm(10) =(mov) 0 }
********** post commands:
1 if ( gprm(14) & gprm(14) ) then { (CallSS) Call the VMGM PGC 4, resume cell 1 }
2 Set gprm(14) =(mov) 0
3 Set gprm(13) =(mov) 0
4 Set gprm(12) =(mov) 0
5 Set gprm(11) =(mov) 0
6 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands: |
変更後
VTST 1 , 1 TTN 1 (1:30:40) Title 1 - チャプター: 50, プログラム: 50, セル: 51
********** pre commands:
1 Set gprm(6) =(mov) 1
2 Set gprm(9) =(mov) 0
3 Set gprm(9) |=(or) 32768
4 Set gprm(1) =(mov) sprm(1:音声ストリーム ナンバー)
5 Set gprm(4) =(mov) gprm(9)
6 Set gprm(4) /=(div) 256
7 Set gprm(4) &=(and) 127
8 if ( gprm(9) & 32768 ) then { Goto line 10 }
9 Goto line 12
10 if ( gprm(15) == 0 ) then { Goto line 12 }
11 if ( gprm(15) != 32768 ) then { Set gprm(1) =(mov) gprm(4) }
12 Set gprm(0) =(mov) gprm(12)
13 Set gprm(0) /=(div) 256
14 Set gprm(0) &=(and) 127
15 if ( gprm(12) & 32768 ) then { Set gprm(1) =(mov) gprm(0) }
16 Set gprm(1) &=(and) 15
17 if ( gprm(9) & 32768 ) then { Goto line 19 }
18 Goto line 22
19 Set gprm(0) =(mov) gprm(1)
20 if ( gprm(0) < 0 ) then { Set gprm(1) =(mov) gprm(4) }
21 if ( gprm(0) > 0 ) then { Set gprm(1) =(mov) gprm(4) }
22 Set gprm(2) =(mov) sprm(2:字幕ストリーム ナンバー)
23 Set gprm(4) =(mov) gprm(9)
24 Set gprm(4) &=(and) 127
25 if ( gprm(9) & 128 ) then { Goto line 27 }
26 Goto line 29
27 if ( gprm(15) == 0 ) then { Goto line 29 }
28 if ( gprm(15) != 32768 ) then { Set gprm(2) =(mov) gprm(4) }
29 Set gprm(0) =(mov) gprm(12)
30 Set gprm(0) &=(and) 127
31 if ( gprm(12) & 128 ) then { Set gprm(2) =(mov) gprm(0) }
32 Set gprm(2) &=(and) 127
33 if ( gprm(9) & 128 ) then { Goto line 35 }
34 Goto line 39
35 Set gprm(0) =(mov) gprm(2)
36 Set gprm(0) &=(and) 63
37 if ( gprm(0) < 0 ) then { Set gprm(2) =(mov) gprm(4) }
38 if ( gprm(0) > 65535 ) then { Set gprm(2) =(mov) gprm(4) }
39 (SetSTN) Set Audio stream = gprm(1) ; Set Sub-picture stream = gprm(2)
40 Set gprm(12) =(mov) 0
41 Set gprm(15) =(mov) 32768
42 Set gprm(10) =(mov) sprm(7:チャプターまたはプログラム ナンバー)
43 Set gprm(10) &=(and) 1023
44 Set gprm(0) =(mov) sprm(4:ボリューム内のタイトル ナンバー)
45 Set gprm(0) &=(and) 127
46 if ( gprm(0) < 1 ) then { Set gprm(10) =(mov) 0 }
********** post commands:
1 Set gprm(6) =(mov) 0
2 if ( gprm(14) & gprm(14) ) then { (CallSS) Call the VMGM PGC 4, resume cell 1 }
3 Set gprm(14) =(mov) 0
4 Set gprm(13) =(mov) 0
5 Set gprm(12) =(mov) 0
6 Set gprm(11) =(mov) 0
7 (CallSS) Call the VTSM Root menu of the current VTS, resume cell 1
********** cell commands: |
修正は二ヶ所、pre commands の 1行目と、post commands の 1行目を追加です。
post commands の追加は、映像を最後まで再生後メニューが自動表示されるときに、1ページ目の「ALL PLAY」のボタンにハイライトを表示させるためです。
# たいしたこと書いてないんだけど、こんなに長い記事になっちゃうんだよなぁ(苦笑)