mieki256's diary



2023/10/31(火) [n年前の日記]

#1 [hsp] HGIMG3でフルスクリーン表示ができるのか試してみた

Windows10 x64 22H2 + HSP 3.7 beta7 で、HGIMG3 について勉強中。

HGIMG3 でフルスクリーンっぽい表示が出来そうかどうか試してみた。今までと同じやり方が ―― bgscr を使って、枠無し、かつ、デスクトップサイズのウインドウを作って、画面の左上に表示位置を設定すればフルスクリーン表示に見える、というやり方が通用するのかどうかを確認する。

DirectXに「フルスクリーン表示にせよ」と指定する処理は、今回はやらない。ソレをするとデスクトップ上のアイコン配置がグチャグチャになってしまった記憶があるので…。あくまで、「ウインドウ表示なんだけどフルスクリーン表示っぽく見えてる状態」にできるかどうかを試す。

もし、DircetXにフルスクリーン表示を指定したいなら、HSP同梱のサンプル、sample\hgimg3\fullscr.hsp が参考になるかと。

_OHDL - fullscr.hsp

ソース :

_04_fullscreen_hgimg3.hsp
    ; hgimg3 fullscreen sample.
    
    #include "hgimg3.as"
    #include "d3m.hsp"
    
    #packopt name   "04_fullscreen_hgimg3"  ; file name
    #packopt type   0   ; generate ".exe"
    
    #define TEXFILE     "tex.png"
    #define FONTFILE    "font.png"
    
    #pack   TEXFILE
    #pack   FONTFILE
    
    #define KB_ESC      $00080
    #define FRAMERATE   60
    
    ; get desktop size
    dispx = ginfo_dispx
    dispy = ginfo_dispy
    
    ; initialize window without frame
    bgscr 0, dispx, dispy, 0, 0, 0
    
    hgini                       ; initialize hgimg3
    
    ; init bimap font, load font texture
    setfont 20, 20, 18, 1   ; 20x20 font
    texload FONTFILE
    
    ; load texture
    texload2 TEXFILE
    texid = stat            ; get texture ID
    texw = 512
    texh = 512
    
    ; Set the buffer to draw from. Windows ID 0
    gsel 0, 1
    
    clscolor $4080c0        ; set clear color
    
    angle = 0.0
    
    time_start = d3timer()
    
*mainloop
    ; get FPS
    tm = d3timer() - time_start
    fps = d3getfps()
    
    ; ESC key to exit
    stick k, 0
    if k & KB_ESC : goto *job_end
    
    angle += 0.5
    
    ; ----------------------------------------
    ; draw start
    hgdraw
    
    objmax = 64
    repeat objmax
        r = double(dispy) * 0.5
        a = angle + (270.0 / double(objmax)) * double(cnt)
        x = int(r * cos(deg2rad(a))) + (dispx / 2)
        y = int(r * sin(deg2rad(a))) + (dispy / 2)
        d = double(cnt) / double(objmax)
        
        ; draw image by crlput
        gmode gmode_rgb0, texw, texh
        pos x, y
        
        src_x = (idx \ 2) * texw
        src_y = ((idx / 2) \2) * texh
        idx = (cnt \ 4)
        rot = deg2rad(angle * 2.0 + 360.0 * d)
        scale = 8.0 - (7.5 * d)
        dst_w = int(double(texw) * scale)
        dst_h = int(double(texh) * scale)
        
        ; draw texture
        hgrotate texid, src_x, src_y, rot, dst_w, dst_h
    loop

    ; draw text
    gmode gmode_rgb0
    fprt strf("[%dx%d] %d/%dFPS", dispx, dispy, fps, FRAMERATE), 10, 10
    
    hgsync (1000 / FRAMERATE) - 1   ; draw end and wait
    
    goto *mainloop

*job_end
    hgbye       ; release HGIMG3 plugin
    end

使用画像は以下。

_font.png
_tex.png

表示結果は、hsp3dish のソレと大体同じなので省略。

動作結果 :

以下の環境で動作確認。
  • メインPC : CPU AMD Ryzen 5 5600X + GPU NVIDIA GeForce GTX 1060 6GB + RAM 16GB, 画面解像度 1920x1080
  • サブPC : CPU AMD Athlon 5350 + オンボードGPU Radeon R3 + RAM 4GB, 画面解像度 1920x1080

メインPC上では60FPS前後のFPSが出た。これは予想通り。hgsync に与えているwait値が正確な1/60秒になってないので誤差が大きく出ていた気もするけれど、大体似たようなFPSになってれば、まあいいかと。

問題はサブPC。12 - 17FPS しか出ない。hsp3dish を使った時と似たようなFPSになった。

サブPCの Radeon R3 で OpenGL を使うと遅いのではないか、DircetX を使えばもう少し速く処理してくれるのではないかと、淡い期待を持ちつつ実験してみたのだけど、そんなことはなかった。おそらく、OpenGL も DirectX も、どちらも遅い。単にスペックがショボいGPUでした、というオチだなと…。

今後の方針 :

でもまあ、どうにかして DircetX を使わないと描画が速くならないという状態ではなさそうなので、今後は安心して(?) hsp3dish を選択できそう。OpenGL と DircetX のどちらが使われているかなんて一切気にしなくていい。どうせサブPC上で動かしたらどちらも遅いから…。トホホ。

しかし、困った。この状態で高速化するにはどうすればいいのだろう。

描画面積を減らしていけば目に見えてFPSが改善するのだろうか。だとしたら、やはり小さな仮想画面を作っておいて、そこに全部描画してから最後にデスクトップサイズに拡大描画、というやり方が有効だろうけど…。hsp3dish でそんなことはできるのだろうか。必ず、最初に生成したウインドウに描画しないといけない、仮想画面に描画なんて無理、みたいな制限があったりしないか…?

その前に、hsp3dish でスクリーンセーバが作れるのかどうか実験してみないと…。

スクリーンセーバにできるかどうかは、今回重要。最終的にスクリーンセーバにしてみたいから、あえてわざわざ HSP というアレなソレを選んでいるわけで…。

スクリーンセーバにしなくていいなら、言語仕様が至極真っ当な、Love2D (Lua)、DXRuby (Ruby)、PyGame (Python)、Processing 等を使ってデモプログラムを書いたほうが、はるかに楽だし分かりやすいよなと…。

Radeon R3の性能について調べた :

AMD Radeon R3 ってどの程度の性能のGPUなんだろう。ベンチマークの類を調べてみた。

何か比較対象があったほうが分かりやすいだろう…。今も売ってる増設ビデオカードの中で比較的低価格なものとなると…。NVIDIA GT 710、GT 1030 あたりと比べてみればいいのかな。

_UserBenchmark: AMD Radeon R3 Graphics vs Nvidia GeForce GT 710
_Radeon R3 Graphics IGP (APU A6-6200) vs GeForce GT 710

_UserBenchmark: AMD Radeon R3 Graphics vs Nvidia GT 1030
_GeForce GT 1030 vs Radeon R3 Graphics IGP (APU A6-6200)

絶句。Radeon R3 ってこんなに性能低いのか…。GT 710 の 1/2 - 1/3、GT 1030 の 1/6 の性能だろうか。増設ビデオカードって、このランクでも結構凄いんだな…。

でも、Intel の内蔵GPUと比べたらどうだろう。例えば Core i5-2500 に入ってる Intel HD 2000 あたりと比べたら…。

_UserBenchmark: AMD Radeon R3 Graphics vs Intel HD 2000 (Desktop 1.1 GHz)
_HD Graphics 2000 (Sandy Bridge GT1) vs Radeon R3 Graphics IGP (APU A6-6200)

さらに絶句。昔の Intel製オンボードビデオと比べたら、まだ Radeon R3 のほうがマシだったとは…。と言っても 1.5 - 2.0倍ぐらいだけど。

ちなみに、Intel Skylake世代(6xxx番台) に内蔵されてる Intel HD 510 あたりと比べたら、さすがに Intel HD 510 のほうが Radeon R3 より 1.5倍ぐらい性能が良かった。Intel製の内蔵GPUは、世代が変わるたびにグングン性能を上げていたんだなと。

_UserBenchmark: AMD Radeon R3 Graphics vs Intel HD 510 (Desktop Skylake)
_HD Graphics 510 (Skylake GT1) vs Radeon R3 Graphics IGP (APU A6-6200)

何にせよ、オンボードビデオのPC上でも動かすことを考えたら、描画に関して贅沢な作りは一切できない気がする。1920x1080なら10FPS前後で動くだけでも「スゴイね!」という話なのかも…。

Windows11になったら状況が変わるかどうか :

Radeon R3 の遅さにガックリきているけれど、Windows10のサポートが終了して、Windows11だけになったら、動かせるCPUの最低ランクが Intel の第8世代以上になるはずで、内蔵GPUもそのランクが最低ランクになるだろうから、状況がガラリと変わるのではないかと思えてきた。

Windows11が動かせる最低ランクのCPU、最低ランクのGPUって、どのあたりになるんだろうか…? そこが分かれば、どの程度の描画をしてもいいのか大体把握できるのでは。

ググっても分らなかったので、試しにAIさん(Bing Chat)に尋ねてみたら「Celeron J4005はどうでしょう」と言ってきた。調べたところ、たしかに Windows11 の対応CPUに入ってる。内蔵GPUは Intel UHD 600。ベンチマーク結果を確認したところ…。

_UserBenchmark: AMD Radeon R3 Graphics vs Intel UHD 600

どんぐりの背比べではあるけれど、Radeon R3 のほうが、まだマシだった…。Windows11 になったからと言ってGPUの最低スペックまで劇的に上がるわけではない、ということだな…。やっぱり贅沢な描画は無理っぽい。

#2 [digital] Google翻訳に感動

「今頃知ったのかよ」と馬鹿にされそうだけど、あまりにも感動してしまったのでメモ。思考メモ。

台所の棚の中に、数年間、手を付けてなかった謎の液体があって。頂き物らしいのだけど、ラベルが全部イタリア語で書かれているから、一体何の液体なのか家族全員分からなくて。コレ、調味料…だよな? まさか洗剤じゃないよね? みたいな。

夕食時に、その液体の話題が出て、「Google翻訳でどうにかならんか」という話に。妹が、「アレってスマホのカメラで撮影しただけで翻訳してくれるんじゃないの?」と言い出した。マジか。Google翻訳ってそんなことまでできるんか。

自分の手持ちのスマホに、Google Play(Playストア)経由でGoogle翻訳をインストールして試用してみたところ…。ホントだ…。「カメラ」のアイコンがある…。カメラを起動して謎液体のラベルを撮影してみたら…。えっ。コレって画像の上に翻訳結果を表示してくれるんか。すげえ。これもう魔法の域じゃん。異世界転生なろう系アニメでこういうシーンを見たような。異世界の文字がスーッと日本語に変わっていくヤツ。アレじゃん。もしかしてコレをアニメが取り込んでたのかな。

まあ、最初は「英語→日本語」設定のまま使ったので、単語が全部カタカナ言葉になって「こんなの分かるか!」と家族で爆笑したのだけど。「イタリア語→日本語」にしたら、「調味料」「どこそこで収穫」「砂糖なし」「スープ、肉に使える」「あなたの貧しい食事を〜」と出てきて…。「貧しい食事」でまた爆笑。言い方ァ! いや、言いたいことは分かるけど。要は「美味しくなるよ!」ってことですね。分かります。

マイクのアイコンを選んだら、音声入力した結果を英語に翻訳して、しかもそこからスピーカのアイコンを叩くと音声合成で英語を喋ってくれるし…。いやはや、スゴイ時代になってたんですねと(今頃になって)感動してしまったので、こうしてメモ。

ちなみに謎液体はプルーンみたいな味でした。結構美味しいな…。Google翻訳のおかげで安心して味見できました。ありがとう、Google。

カメラとマイクの功績 :

スマホを使っていると、しみじみ思ってしまうのだけど。スマホと呼ばれるパーソナルコンピュータに、「カメラ」と「マイク」という「目」と「耳」がついたことで、やれることが一気に増えたよなと…。

自分はスマホよりPCが好きな人種なのだけど。なんだかちょっと悔しさを感じる。もし、PCにも、最初からカメラとマイクがついていたら、スマホでやれるアレコレは、まず最初にPC上で実現できていたはずなのに、と…。本当ならできていたはずのことが、特定の入力デバイスが標準ではついてなかったことで、なかなかできないと思われていたのが、なんだか悔しい。スマホという別種のコンピュータに全部持っていかれてしまった。 *1

キーボードとマウスと言う入力デバイス“しか”ついてなかったことが、何十年もPCの足枷になっていたのだろうなと。パーソナルコンピュータって、本当はもっと色んな事ができる子だった。でも、自分達はそれが分からなかった。カメラとマイクがオプション扱いだったという、ただそれだけのことで…。その製品ジャンルに、標準状態で何の入力デバイスをつけておくのか。そのことが、ここまで重要だったとは。製品ジャンルの命運を分けてしまうとは。

そう考えると、今後、また違った何かしらの入力デバイスが、スマホに、あるいはPCにつくのが当たり前になった時、更にもう一段、やれることが増えるのかもしれない。その入力デバイスが一体何なのかは、自分は未来人じゃないからイメージが湧かないのだけど。

数十年後、「なんであの頃のコンピュータにコレをつけてなかったのかねえ。こんなに便利になるのに。誰も気づいてなかったの? コレってあの頃にはもうあったよね?」と、その時代の人達は首を捻っているのかもしれないよなと…。

*1: いやまあ、クラウドサービスとセットにすればできるよ、という状況なので、スマホだけで実現できてるわけではないのだけれど。スマホ“だけ”を異世界に持っていったら無双できるわけでは…ない…。

#3 [anime] 「薬屋のひとりごと」の1話を視聴

BSで放送が始まったので視聴。話題になっているTVアニメらしい。

どういう作品なのか情報を全く仕入れずに見てみたけれど。これ、「チャングム」だな…。ちゃんと面白くなりそうな感じにアニメ化されたチャングムというか…。

チャングムは、韓国のアニメスタジオで一度アニメ化されていた記憶があるのだけど、何故か幼女キャラにされてしまった上に、脚本と演出がかなり子供さん向きで、作画面はちゃんとしていたのに、それ以外はなんともビミョーなアニメになってしまった印象で…。当時の韓国では「アニメ=子供向け」という意識が強くてそうなってしまったのか、それとも大人向けの需要はドラマ版で満たせているから子供さん達にアピールするためにあえてそういう設定にしたのか…。そういうアレンジも妥当ではあるのかもしれんけど…。

何にせよ、真っ当なチャングムアニメ版が出てきた感じで、個人的には期待大。かもしれない。

というか、薬や毒を扱う作品って、大体は面白くなりそうな印象もあるなと…。いやまあ、ちゃんと調べて作ってあればという前提付きですけど。例えば「薬」を「ポーション」と呼んでるアニメなどは、そのほとんどは見る価値が…。いや、これは余計な一言ですな。口が滑りましたゴメンナサイ。

#4 [anime][neta] 「薬屋のひとりごと」を見ていて考えたこと

「薬屋のひとりごと」というTVアニメを見ているうちに、なんだかちょっと色々考え始めてしまったのでメモ。思考メモ。

少女じゃないと価値はないのか :

「薬屋〜」を見ていて、ヒロインが少女キャラな点がちょっと気になったりもした。と言うのも、チャングムアニメ版は幼女がヒロインだったので…。幼女ヒロインよりは少女ヒロインのほうがまだ見れる感じがするな、みたいなことを考え始めてしまって…。

コレ、お姉さんキャラではウケが悪いんだろうか…? いっそおばさんキャラ、お婆さんキャラではどうか…。お婆さんが名探偵として活躍する作品も世の中にはあった気もするし、ヒロインをそういう年齢設定にするだけでも、右も左も美少女キャラだらけの日本国内に限定すれば、他作品との差別化ができたりしないか。

などと書いたところで「ハウルの動く城」がソレじゃん、と今頃思い出したりもして。

そう考えると、御歳を召した宮崎駿監督のほうが、頭が柔らかいはずの若い作り手達よりも、アニメにおける新規性をはるかに多く提示してきた面がありそうだなと…。いや、ジブリというブランドが確立したからこそ冒険できる面もあるのかな。若い頃の宮崎駿監督が似たような企画を出しても十中八九通らなかっただろうし…。

「スカート」は妥当か否か :

「薬屋〜」を見ていたら「スカート」という単語が出てきて、そこがなんだか気になった。

中国/韓国っぽい世界観からして外来語(?)が使われるのは不自然な感じもしたのだけど、おそらく件の台詞は、読者視聴者の理解のしやすさを考慮して、あえてわざわざ使った可能性が高そうだよなと…。ツッコミを入れるヤツは絶対に居るだろうけど、どう考えてもこのほうが瞬時に話が分かるやろ、ココは分かりやすさを優先じゃい、みたいな。

このあたり、聞いた瞬間に視聴者が「?」になってしまう、考証面で正しい単語/用語を披露するのは、娯楽コンテンツとして本当に正しいことなのでしょうか、という問題があるよなと…。

そこで生活している登場人物達にとっては常識であっても、見ているこちら側には異界の文化や用語なわけで。何の説明もなくポンと出てきても見ている側は「?」としかならない。そんなところで引っ掛かりを作ってみたところで意味はあるのか。とは言え、こちらとは違う世界と感じさせる「香りづけ」は大なり小なり必要でもあろうし。結局はバランス感覚の話になるのかもしれないけれど。

「フォース」は「フォース」で本当にいいのか? 「理力」のほうがまだ通じませんか? いっそ「超能力」と言っちゃったらダメ? さすがにそこまでやっちゃったら色々と台無しですか? 「ジェダイ忍法」は…もちろんダメですよね。そりゃそうだ。みたいな。

昨今、中国で作られた、仙人っぽいキャラが出てくるアニメが放送されていたりするけれど。あちらの人達、あの手のジャンルでは常識であろう専門用語(?)がポンポン出てきて、自分などは設定すら把握できずに困ってるわけで…。「もう中国のアニメは見なくていい。どうせ基本設定すら分からんし、アイツラが一体何の話をしているのかさっぱり分らん」と切って捨ててもいいかもな、とすら思い始めているぐらいで…。アレはなんとかしたほうがいいのでは。あんなに豪勢な映像を作っておいて、実にもったいない…。

でも、このあたり、おそらくガンダムシリーズを初めて見た人も同じ感覚になるのかもしれんと不安になったりもする。そりゃおじさんしか見ないコンテンツになっていくわな、と…。

ガンダムに限った話でもない。日本の学園を舞台にしたアニメは、海外の人達は理解できるのだろうか。「生徒会長」って通じるのか? 「部活動」は分かるのか? どこまで通じるものなんだろう。

もっとも、ある程度はテクニックで解決できるのではないか、とも思うのだよな…。「スカート」と意訳して言わせてもいいし、何か分からない単語を口にした直後にヒロインがスカートを隠す動作を見せて「ああ、スカートのことか」と察してもらってもいい。件のアニメでは両方やってて至れり尽くせりだったけど…。伝わりさえすれば、なんでもOk。どれも正解。花丸二重丸。

ただ、「これ、お客さん分かるかな?」「これ、海外の人は理解できるんだろうか?」と疑問を持ちながら作らないと、テクニックが駆使されることもないわけで。

昔何かの番組で見たけれど。ピクサーに在籍していた頃のジョン・ラセター監督が、若いスタッフに「これ、お客さんは分かるかな?」と“笑顔”で質問していた光景を思い出したりもする。世界中で通用するヒット作を生み出す人達は、常に、その問いを、あらゆるカットにぶつけながら作ってるのだなー、大変だなー、でも、まるでなんでもないことのように笑って優しく後進達に尋ねる風を装って諭していくのだなー、テクニシャンだなー、と感心したわけで…。 *1

閑話休題。まあ、こういうのって、細かいところだけど結構難しい問題だよなと…。そんなことを、「スカート」という単語一つから思ってしまいました。とメモ。思考メモです。

*1: などと書いたけど本当に笑顔だったか自信が無くなってきた。自分、脳内で理想の映像を捏造してないか…? でも、あくまで自然体で尋ねていて、けして高圧的な感じでやり取りしていたわけではなかったはず。そこは間違いない。これがもし宮崎駿監督だったら、若いスタッフを怒鳴りつけてる光景が目に浮かぶ…。実際、「これのどこが鳥に見えるんだ!」と原画マンを怒鳴っていた映像も覚えてるし…。いや、普段はもうちょっと優しく言ってるのかもしれんけど。何にせよ、後世に残るのは、スタッフに優しく接して諭していくラセター監督の映像と、スタッフを怒鳴りつけてる宮崎駿監督の映像という…。ラセター監督の「MIYAZAKI-SANは天才だから僕達一人一人では敵わない。だけどその代わり、僕達は皆でアイデア出し合ってアニメを作っていく。10人20人の知恵を集めればMIYAZAKI-SAN並みになれるんじゃないか」という発言と照らし合わせると、なかなか興味深い違いがそこにあるような気もする。

以上、1 日分です。

過去ログ表示

Prev - 2023/10 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project