喫茶XRAYトップページ

[スレッド全体
]

[2358] TVML言語に返信 削除
2009/5/3 (日) 21:48:39 TS
▼ KSCさん

TVML言語にトライ中ですが完全に把握するのは
かなり先になりそうです。

青空文庫
http://www.aozora.gr.jp/
の文を取り込んで読ませてみましたが
一行が長いので改行がどうかなと思いましたが
丁度良い具合に画面全体に文字が表示されて
良い感じです。

これならデータ入力の確認に文字を表示
しながらの読み上げとか色々できそうです。


[2360] Re:TVML言語に返信 削除
2009/5/4 (月) 06:20:28 Mr.XRAY
> TVML言語にトライ中ですが完全に把握するのは
> かなり先になりそうです。


けっこう使いこなすのは大変そうですね.
KSCさんも苦労されたのでは.

> 青空文庫
> http://www.aozora.gr.jp/
> の文を取り込んで読ませてみましたが


へぇー.これは.
ところで.青空文庫,サイトのデザイン変わりましたね.
いつだろう.久しぶりに見ました.
たまには,小説でも読みますか.


[2361] Re2:TVML言語に返信 削除
2009/5/4 (月) 12:06:48 TS
▼ Mr.XRAYさん
> けっこう使いこなすのは大変そうですね.
キャラクター等完全に使いこなすのは大変
そうですね。

下記が青空文庫のデータを読み込んだ
ものです、これで全文読んでくれます。
プログラムで実行時に作成してそのまま
読み上げてくれます。

実行時にテキストも作りますので、これを
ファイルに保存すれば別途保存できる動画
の作成も出来ると思います。

下記はモメにコピペした物を読み込む為の
ものです。

BOB君にしゃべって貰う為の1行分は

character: talk( name=BOB, text="1行分")
と言うテキストを加える感じです

画像を表示したければ
title: select(type=imagefile, filename="F:\test01.jpg")
video: switcher( source=title )
とするだけです。

動画は
movie: open( name=movie1, filename="F:\test02.mpg")
video: switcher( source=movie1 )
movie: play( name=movie1, from=30, to=120,repeat=5, wait=yes )

これで30フレームから120フレームまでを
5回繰り返します。

こんな調子のテキストを書いて行くだけです。
基本の設定は大変そうですので、出来たものを
テキストにして置いて、それを読み込ませた
後上記のテキストを書き加えるのが簡単だと
思います。

function st_Add(st:AnsiString):AnsiString;
var i:integer;
    SL:TStringList;
begin
  SL:=TStringList.Create;
  try
    SL.LoadFromFile('aibiki.txt');
    for i:=0 to SL.Count-1 do
      begin
        st:=st +
          'character: talk( name=BOB, text="'
          +SL[i]
          + '")' + #13#10 ;
      end;
    Result:=st;
  finally
    SL.Free;
  end;
end;

function st_Add2(st:AnsiString):AnsiString;
var i:integer;
begin
  for i:=0 to Form1.Memo1.Lines.Count-1 do
    begin
      st:=st +
        'character: talk( name=BOB, text="'
        +Form1.Memo1.Lines[i]
        + '")' + #13#10 ;
    end;
  Result:=st;
end;


ちなみに下記のコードはいまだ動作不明です。
右マウスダウン後ドラッグするとxの値が
移動量変化します。yは0です。
//tvif.pas
type
     PTVP=^TVP ;
     TVP=array [0..1] of Smallint;

procedure tvifGetMousePos(var pos:PTVP); cdecl; external TvifExport;

//unit Unit1;

    tvifGetMousePos(PTVPos);
    x:=TVPos[TVP_X];
    y:=TVPos[TVP_Y];
    Form1.Label1.Caption:=IntToStr(x);
    Form1.Label2.Caption:=IntToStr(y);


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82