# .can3 モーションファイルを修正するとき、モーションのすべてのキーフレームをつかんでストレッチできますか？

**URL:** <https://creatorsforum.live2d.com/t/topic/1363>\
**Category:** 制作の質問やTips紹介\
**Created:** [2023 年 2 月 6 日午前 12:30 UTC](https://creatorsforum.live2d.com/t/topic/1363 "2023-02-06T00:30:34Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eclair](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/eclair/32/591_2.png) [@Eclair](https://creatorsforum.live2d.com/u/Eclair)\
**Post date:** [2023 年 2 月 6 日午前 12:30 UTC](https://creatorsforum.live2d.com/t/topic/1363/1 "2023-02-06T00:30:34Z")

</div>

.can3 モーションファイルを修正するとき、モーションのすべてのキーフレームをつかんでストレッチできますか？

こんにちは。 いつもお世話になっております。

私のグラフィックワーカーと最近 unityゲームでの live2d キャラクター移植作業をしています。  
しかし、unityでアニメーターコンポーネントを介してキャラクターモーションを再生すると、live2dエディタで見たときよりもモーションが少し早く再生されます。

（unityのFPSとlive2dモデルのFPSの両方を60に等しく設定しました。）

弓道策でモーションのすべてのフレームキーをつかみ、少し長くストレッチしたいです。  
全体の動きの時間を少し増やすことです。

しかし、live2d エディタでフレームキーをストレッチできませんでした。

ctrl + Aキーを押してすべてのフレームキーを「選択」状態にした後、altを押してもctrlを押してもshiftを押してもストレッチは達成できませんでした。

いつもお世話になっておりますので、お知らせいただきありがとうございます。

暖かい2月になりますように。

---

<div class="post-metadata">

**Author:** ![enoko\_staff](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/enoko_staff/32/4_2.png) [@enoko\_staff](https://creatorsforum.live2d.com/u/enoko_staff)\
**Post date:** [2023 年 2 月 10 日午前 4:51 UTC](https://creatorsforum.live2d.com/t/topic/1363/2 "2023-02-10T04:51:40Z")

</div>

いつも弊社製品をご愛顧くださり誠にありがとうございます。

＞unityでアニメーターコンポーネントを介してキャラクターモーションを再生すると、live2dエディタで見たときよりもモーションが少し早く再生されます。  
この点について詳しくお調べしたいため、以下のことを教えてください。

・お使いの環境を教えてください  
【Cubism Editorのバージョン】（例：Cubism Editor 4.1.01 )  
【OS名・バージョン】（例：Windows11、macOS BigSur 11.5 ）  
【機種名】（例：MacBookPro 2017 ）  
【CPU】（例：Core i7-9750H ）  
【グラフィックボード】（例：GeForce RTX 3070 ）  
【メモリ】（例：8GB ）  
【原画制作ソフトウェア】（例：Photoshop ver22.3 ）

・モーションが少し早く再生される現象は、  
公式サンプルモデルでも発生しますか？オリジナルのモデルでのみ発生しますか？  
オリジナルのモデルでのみ発生する場合はデータを送ってください

・Viewer for OWとUnityそれぞれで再生した速度は同じになりますか？  
それらを比較し、同時にキャプチャした動画を送ってください

データはこちらのページにアップロードしてください。

> **[データ便 ｜無料無制限の大容量ファイル送信サービス - ファイルのアップロード](https://biz.datadeliver.net/posts/7YEqhSV2qjKZ)**
>
> 大容量ファイル転送サービス「データ便」。会員登録不要でも500MB、無料のフリープランで2GB、高速ビジネスプランはファイル容量無制限で100GBを超えるデータでも簡単に送信できます。本人確認機能を備えたセキュリティ充実の「セキュリティ便」もお使いいただけます。

お手数をおかけし申し訳ありませんが、  
何卒宜しくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Eclair](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/eclair/32/591_2.png) [@Eclair](https://creatorsforum.live2d.com/u/Eclair)\
**Post date:** [2023 年 2 月 10 日午後 12:41 UTC](https://creatorsforum.live2d.com/t/topic/1363/3 "2023-02-10T12:41:58Z")

</div>

こんにちは。 返信ありがとうございます。  
モーションが早く再生される部分については、私たちの作品ワークのフェード部分に関する問題がありました。  
この問題について私たちが不十分に解決した内容を送付いたします。

この問題は、Viewer for OWビューアでは発生せず、Unityでのみ発生する問題でした。  
（fademotionlistの接続など抜かずに処理しましたが、当方の問題があるのか）

パーツが変わる瞬間に連結動作が出ず、フレームが切れて突然パーツが変わるように出ました。  
当該問題の作業映像キャプチャ本には、当社の著作作品に関する内容が含まれており、アップロードできないことをご了承ください。

 ![1234](https://us1.discourse-cdn.com/flex015/uploads/live2dtest/original/2X/4/41bb0a0bab292a2615f77ff9bce7e67897b989fa.png)

スクリーンショットのアニメーターステートから出入りするトランジションポイントはすべて

Has Exit Timeチェックがtrueでなければならない点が問題でした。

入って来る切替点のうち、Has Exit Timeチェックがfalseでなければならない切替点もあり（トリガー切替使用などで）

起動時にHas Exit Timeチェック処理をオン/オフすることでfade部分の接続処理を解決できました。

```auto
public class Edit_AnimatorTranslatorBase : MonoBehaviour
{

    public AnimatorController controller;

  private void Start()
    {
        AnimatorController k = controller as AnimatorController;
        AnimatorControllerLayer[] layers = k.layers;
        foreach (AnimatorControllerLayer i in layers)
        {
            AnimatorStateMachine q = i.stateMachine;
            ChildAnimatorState[] statesRecursive = q.states;

            for (int w = 0; w < statesRecursive.Length; w++)
            {
                for (int j = 0; j < statesRecursive[w].state.transitions.Length; j++)
                {
                    if (statesRecursive[w].state.transitions[j].hasExitTime == false)
                    {
                        statesRecursive[w].state.transitions[j].hasExitTime = true;
                        statesRecursive[w].state.transitions[j].hasExitTime = false;
                    }
                }
            }
        }
    }

```

不十分な処理ですが、もし新たな必要と推測できる地点があるか返信いたします。

もしあなたが大丈夫なら、live2dプログラムでモーションのすべてのキーフレームをキャッチしてストレッチする方法を教えてください。  
どうぞお世話になっておりますのでお知らせいただきありがとうございます。

---

<div class="post-metadata">

**Author:** ![ono-at-live2d-com](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/ono-at-live2d-com/32/167_2.png) [@ono-at-live2d-com](https://creatorsforum.live2d.com/u/ono-at-live2d-com)\
**Post date:** [2023 年 2 月 13 日午前 4:50 UTC](https://creatorsforum.live2d.com/t/topic/1363/4 "2023-02-13T04:50:27Z")

</div>

@Eclair 様

Unityのアニメーションコントローラーでは、Transition Durationの値が0の場合、現在のアニメーションから次のアニメーションへ切り替わる際にブレンドされません。  
詳細につきましてはUnity公式のドキュメントをご覧ください。

> **[アニメーション遷移 - Unity マニュアル](https://docs.unity3d.com/ja/current/Manual/class-Transition.html)**
>
> アニメーション遷移 (Animation Transition) は、ステートマシン が、あるアニメーションステートから別のアニメーションステートへ切り替わったりブレンドしたりすることを可能にします。遷移は、複数のステート間のブレンドにかかる時間の長さを指定するだけでなく、どのような条件下でブレンドが始まるかを指定します。特定の条件が満たされたときにのみ遷移が起こるように設定することもできます。これらの条件を設定するには、アニメーターコントローラー (Animator Controller)...

また、Cubismにはアニメーション間のブレンドを独自にカスタマイズしております。  
もしCubismのブレンド機能を利用す場合は以下をご覧ください。

> **[Mecanimでモーションフェードを有効にする | SDKチュートリアル | Live2D Manuals & Tutorials](https://docs.live2d.com/cubism-sdk-tutorials/motionfade/)**

よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![enoko\_staff](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/enoko_staff/32/4_2.png) [@enoko\_staff](https://creatorsforum.live2d.com/u/enoko_staff)\
**Post date:** [2023 年 2 月 14 日午前 2:15 UTC](https://creatorsforum.live2d.com/t/topic/1363/5 "2023-02-14T02:15:36Z")

</div>

重ねて返信失礼いたします。

エディタ上でモーションのすべてのキーをまとめて伸ばす方法は、  
アニメーションを編集時にタイムラインパレットをグラフエディタにした状態で  
Ctrl＋Aですべてのキーを選択すると赤いバウンディングボックスが出ます。  
バウンディングボックスをつかんで変形すると調整が可能です。

お手数をおかけしますが、何卒宜しくお願いいたします。
