watermelonheadman.com

筋トレとか。ゲームとか。猫とか。日記とか。

ChatGPTを使ってみた感想【日記】

2023-4-11 | ,

ちまたで噂のChatGPTを使ってみた話。

AIって学習データ次第だよねって思った。

既存の情報量次第?

インターネットの情報の多いUnityのサンプルコードを聞いてみると複数の情報を合わせて良い感じにしてくれたんだけども、Unityと比べて情報量が少ないGodot4のサンプルコードを聞いてみると動かない嘘コードを返してくる。

試しに

Godot4のAudioEffectCaptureのサンプルのコード

とChatGPTに聞いてみて欲しい。Godot4のAudioEffectCaptureがうまく動かずに困ってたんだけども,インターネットに情報が少なくてだめもとでChatGPTに聞いてみたんだが…。

下記のような嘘回答が出力される。(嘘コードなので注意!)

以下は、Godot4のAudioEffectCaptureを使用したサンプルコードです。このコードは、マイク入力からオーディオをキャプチャしてエコー効果を追加して再生するものです。

extends Node

var audio_input: AudioInput
var effect_capture: AudioEffectCapture
var audio_output: AudioOutput

var capture_data: PoolByteArray = PoolByteArray()
var capture_buffer_size: int = 1024
var capture_enabled: bool = false

var effect_buffer_size: int = 1024

func _ready():
    audio_input = AudioInput.new()
    effect_capture = AudioEffectCapture.new()
    audio_output = AudioOutput.new()

    # マイク入力を設定
    audio_input.set_recording_device(0) # デフォルトの録音デバイスを使用する

    # エフェクトキャプチャーを設定
    effect_capture.set_capture_size(capture_buffer_size)
    effect_capture.set_process_size(effect_buffer_size)

    # オーディオ出力を設定
    audio_output.set_bus(0)
    audio_output.set_channels(2)
    audio_output.set_mix_rate(44100)
    audio_output.set_blocking_mode(AudioOutput.BLOCKING)

    # ノードを追加して接続
    add_child(audio_input)
    add_child(effect_capture)
    add_child(audio_output)

    audio_input.connect("captured", self, "_on_audio_captured")
    effect_capture.connect("processed", self, "_on_audio_processed")
    audio_output.connect("playback_finished", self, "_on_audio_finished")

    # キャプチャを開始
    capture_enabled = true
    audio_input.capture_start()

func _on_audio_captured(data: PoolByteArray):
    if capture_enabled:
        capture_data += data

    # エフェクトキャプチャーにデータを送信
    effect_capture.capture(data)

func _on_audio_processed(data: PoolByteArray):
    # エコー効果を追加
    for i in range(0, effect_buffer_size - capture_buffer_size):
        data[i + capture_buffer_size] += data[i] * 0.5

    # 出力にデータを送信
    audio_output.play(data)

    # キャプチャデータをクリア
    capture_data.resize(0)

    # キャプチャを再開
    capture_enabled = true

func _on_audio_finished():
    # 出力が完了したらキャプチャを停止
    audio_input.capture_stop()
    capture_enabled = false

AudioEffectCaptureset_capture_sizeなんていうメゾットは無い!

あまりにもそれらしく出力されるもんだから、熟読したリファレンスを見直しに行ってしまったw

サポート的な使い方には良いかも?

個人的に面白いなあと思ったのが、「ハイパーカジュアルゲームのネタ」とか「ホラーゲームのネタ」とかって感じにChatGPTに聞くと5つくらい可もなく不可もなくなネタを5つずつ挙げてくれる。

下記は実際に出力された内容。

  1. ジャンプして障害物を避けるゲームで、プレイヤーがロケットを操縦しているという設定。障害物は、流れ星や宇宙船、隕石などがあり、プレイヤーはその中を進んでいく。

  2. スキー場で、プレイヤーがスキーをして山を滑り降りるゲーム。障害物は木や氷の壁、その他のスキーヤーやスノーボーダーなどがある。プレイヤーは、アイテムを集めたり、ジャンプやスピードアップでスコアを稼ぐ。

  3. サバイバルゲームで、プレイヤーがジャングルや森の中を走り抜けるゲーム。プレイヤーは、樹木や草の中を隠れたり、餌を集めたり、水を飲んだりしながら、野生動物を避けながら進んでいく。プレイヤーは、時間内にできるだけ遠くまで進むことが目的。

  4. ストリートダンスの大会で、プレイヤーがダンスを踊るゲーム。プレイヤーは、リズムに合わせてボタンを押して踊ることが目的で、踊り方によって得点が異なる。

  5. 飛行機の操縦士として、プレイヤーが空を飛んでいくゲーム。プレイヤーは、空中に現れる障害物を回避しながら、空中アクロバットを行うことが目的。また、アイテムを集めてスコアを稼ぐこともできる。

「もっと」と入力するともう5つオカワリできる。

「もっともっと」で10つ一度に回答してくれると思ったんだけど変わらず5つの回答だった。

やたらとランゲームを推してくる感じ。ハイパーカジュアル的である。

フワッと参考にする分にはChatGPTは面白いと思った今日この頃。