Open3

YMM4 Plugin 制作メモ

いぬいぬいぬいぬ

VSCode + dotnet cliで開発する

公式には本家VSの開発情報だけだが、csprojの書き方工夫でVSCode+dotnet cliでもプラグイン作れる。

csprojの書き方

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net7.0-windows10.0.19041.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

  <ItemGroup>
    <!-- YMM4 plugins -->
    <Reference Include="path\to\YukkuriMovieMaker4\YukkuriMovieMaker.Plugin.dll" />
    <Reference Include="path\to\YukkuriMovieMaker4\YukkuriMovieMaker.Controls.dll" />
  </ItemGroup>
</Project>

cliコマンドdotnet add referenceでいけるかどうかは不明なので手書き。

パス

YMM4のメニューの「ヘルプ」>「その他」>「アプリケーションフォルダを開く」でYukkuriMovieMaker.Plugin.dllへのパスを取得。
絶対パスでいけるかどうかは不明。

SampleSAPI5VoicePluginはdotnet cliでビルドできない

manju-summoner/YukkuriMovieMaker4PluginSamples: YMM4用プラグインのサンプル集です

以下にあるように、利用しているmsbuildが.NET Framework版である必要がある。そのままのdotnet buildでは.NET Core系のmsbuildが呼ばれるため。

https://qiita.com/up-hash/items/c3b813a24cd8d0247855

https://learn.microsoft.com/ja-jp/visualstudio/msbuild/resolvecomreference-task?view=vs-2022

いぬいぬいぬいぬ

.NET SDK 8.0 移行

YMM v4.23.0.0で.NET7から.NET8に移行したため、プロジェクトの<TargetFramework>をnet7.0-windows10.0.19041.0からnet8.0-windows10.0.19041.0に変更する必要があります。

ゆっくりMovieMaker v4.22.x.x以前に作成されたプロジェクトファイルの移行手順

未検証だけど <TargetFrameworks>で.NET7/8両対応ビルドできるかも?

<TargetFrameworks>net7.0-windows10.0.19041.0;net8.0-windows10.0.19041.0;</TargetFrameworks>

dllの依存関係でダメかな?
参照先を変えれば?