精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Python在游戲中實現延時攝影

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-30 09:52 ? 次閱讀

這個時代,隨著游戲引擎技術的快速發展,游戲畫面越來越精美,許多人迷上了游戲內的角色、場景。

尤其是端游,顯卡技術能夠支撐精美的游戲畫面,最有名的莫過于《地平線》系列游戲。

很多玩家希望拍攝這些精美游戲中的畫面,尤其是希望能拍攝到游戲內不同時刻的畫面,為了滿足這個需求,我們就需要用上延時攝影。游戲內的時間過得比現實世界更快,一個小時內可能你就能經歷白天的夜晚的變化,這也為延時攝影提供了很好的環境。

那么究竟怎么在拍攝中實現延時的效果呢?方法大致有兩種,最簡單的可以先錄制視頻,然后用后期剪輯軟件或者特效軟件通過丟幀的方法實現,但這樣一來便造成了巨大的浪費。拍幾個小時的視頻,如果通過丟幀實現延時效果,最后轉換為幾十分鐘的片段,那么被丟掉的幀就要比最后留下的多得多。如果要實現更高速的畫面運動,這種浪費無疑將會被更加擴大。

本篇教程介紹第二種方法,定時截圖的形式,我們將結合前面Python實用寶典使用過的三個模塊——moviepy、win32gui 及 PIL 為大家講解如何使用Python在游戲中實現延時攝影,我還將教你如何將圖片拼接成視頻、添加背景音樂一條龍操作。

1.準備

開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

**(可選1) **如果你用Python的目的是數據分析,可以直接安裝Anaconda:Python數據分析與挖掘好幫手—Anaconda,它內置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優點:Python 編程的最好搭檔—VSCode 詳細指南

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install moviepy
pip install pypiwin32
pip install pillow

本文所有代碼均開源在:https://github.com/Ckend/python-time-lapse-photo 倉庫,如果你無法訪問GitHub,也可以在Python實用寶典后臺回復 延時攝影 下載

2.定時"拍攝"

為了實現定時拍攝的邏輯,我們需要用到pypiwin32模塊和pillow模塊,在之前的這篇文章中有介紹過:

超方便的 Python 自動喚醒窗口截圖腳本

分為三個步驟:

  1. 獲得游戲窗口界面
  2. 獲得游戲界面大小
  3. 截圖

每隔N秒定時循環執行以上三個步驟,代碼如下:

# main.py
# Python實用寶典
# 2022-03-25
import time
import win32gui
from PIL import ImageGrab


def get_window_pos(name):
    name = name
    handle = win32gui.FindWindow(0, name)
    if handle == 0:
        return None
    else:
        return win32gui.GetWindowRect(handle), handle

while True:
    try:
        (x1, y1, x2, y2), handle = get_window_pos('極限競速:地平線 4')
        win32gui.SetForegroundWindow(handle)
        img_ready = ImageGrab.grab((x1, y1, x2, y2))
        img_ready.save(f"./result/{time.time()}.jpg")
        time.sleep(5)
    except Exception as e:
        print(e)

請注意,"極限競速:地平線 4" 要改成你對應拍攝的游戲名稱,這樣,運行程序后就會自動在result文件夾下定時生成截圖:

成功截取你想要的時間段的場景圖片后,就可以進行下面的拼接和補充背景音樂部分。

3.拼接延時攝影視頻

為了達到延時攝影的效果,我們在這一部分中將使用moviepy模塊,拼接所有圖片到一個視頻中。

當然還要補充背景音樂,代碼其實非常簡單,調用了部分moviepy模塊的功能:

# jointer.py
# Python實用寶典
# 2022-03-25
import os
import moviepy
import moviepy.video.io.ImageSequenceClip
from moviepy.editor import *

def pics2video(frames_dir, video_dst, music, fps=10):
    """
    圖片合成MP4

    Args:
        frames_dir (str): 圖片目錄
        video_dst (str): 目標目錄
        fps (int, optional): 幀數. Defaults to 25.
    """
    frames_name = sorted(os.listdir(frames_dir))
    frames_path = [frames_dir+frame_name for frame_name in frames_name]
    clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(frames_path, fps=fps)
    
    audio_clip = AudioFileClip(music).volumex(0.5)
    audio = afx.audio_loop( audio_clip, duration=clip.duration)
    final_video = clip.set_audio(audio)

    final_video.write_videofile(video_dst, codec='libx264')

music = '打上花火.mp3'
frames_dir = './result/'
video_dst = 'screenshots.mp4'
pics2video(frames_dir, video_dst, music)

1.將你的音樂放在當前目錄下,修改music變量為對應的文件名。

2.調整你想要的fps參數——幀數,這個值越低,畫面越順暢。

運行此文件后就會在當前文件夾下生成 'screenshots.mp4'. 這個就是我們的處理結果了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2674

    瀏覽量

    47350
  • python
    +關注

    關注

    56

    文章

    4783

    瀏覽量

    84474
  • PIL
    PIL
    +關注

    關注

    0

    文章

    19

    瀏覽量

    8603
收藏 人收藏

    評論

    相關推薦

    電容式感應在電玩游戲中的應用

    電容式感應在電玩游戲中的應用  電玩游戲應用擁有多項技術層級,尤其是軟件方面,然而游戲本身的才是主角。   繪圖與處理速度能限制或展現游戲中
    發表于 09-12 16:43

    延時攝影怎么玩?但如果你有一臺compass……

    記錄片的部分片段。我們先來看延時攝影的原理是什么?它以一種將時間壓縮的拍攝技術。一段延時攝影視頻中,物體或者景物緩慢變化的過程被壓縮到一個
    發表于 12-19 09:48

    玩轉延時攝影,compass黑盒子的秘密

    拍照錄視頻,重要的是還有延時攝影的功能。以前一提到延時攝影,以前聽起來就很高大上,不是什么攝影大V都玩不好的樣子。但是現在越來越簡便設備和處
    發表于 01-12 21:35

    Python

    的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調用的擴展類庫。需要注意的是您使用擴展類庫時可
    發表于 04-14 10:15

    電容式感應在電玩游戲中的應用

      電玩游戲應用擁有多項技術層級,尤其是軟件方面,然而游戲本身的才是主角。  繪圖與處理速度能限制或展現游戲中軟件的開發狀況,因此最容易受到消費者和評論家關注。而主機控制器(cons
    發表于 10-25 11:17

    采用單片機來實現的智能俄羅斯方塊游戲

    俄羅斯方塊游戲算法請參考俄羅斯方塊游戲的算法1.概述俄羅斯方塊是一款風靡全球的益智游戲。它規則簡單,容易上手,且游戲過程變化無窮,使用戶
    發表于 11-19 08:26

    水滴攝影是如何實現的?

    水滴攝影攝影是一門通過探索和學習來灌輸的藝術。數百次點擊就能捕捉到一張完美的照片,攝影師臉上的滿足感眨眼之間就被掩蓋了。各種類型的
    發表于 05-01 16:25

    單片機游戲中的實際應用

    本軟件介紹單片機游戲中的實際應用,你必須使用正常方式驅動!
    發表于 03-23 17:24 ?1次下載

    vr游戲中的應用案例分析

    傳統的網絡游戲技術,目的是僅僅是為了滿足玩家的精神追求,更加注重游戲世界的設定,而忽視了玩家體驗,將玩家拒之于顯示器之外,玩家只能通過操作角色來體驗游戲中的各種設定,游戲體驗僅僅停留于
    發表于 03-08 08:42 ?2.5w次閱讀

    游戲中視覺風格的歷史和現狀

    Double Fine(殘酷傳奇,破碎時代)的Lee Petty介紹了游戲中視覺風格的歷史和現狀,并提供了如何使用視覺風格您自己的游戲中產生最大影響的見解。
    的頭像 發表于 11-08 06:19 ?2775次閱讀

    游戲中怎么實現AI?

    游戲開發人員的挑戰在于如何不斷突破極限,開發出越來越引人注目的游戲。 計算機控制的人工智能 (AI) 已經發生了多種形式的演變,以滿足測試要求。 然而,為游戲玩家設計符合其動作并促進玩家數量增長的自適應對手并非易事。
    的頭像 發表于 01-03 12:38 ?2766次閱讀

    使用Python實現游戲APP充值API調用的代碼實例

    本文檔的主要內容詳細介紹的是使用Python實現游戲APP充值API調用的代碼實例。
    發表于 01-15 11:34 ?38次下載

    Imagination和完美世界游戲攜手推進光線追蹤游戲中的應用

    Imagination Technologies和完美世界游戲(Perfect World Games)宣布,雙方正在合作將光線追蹤技術(ray tracing)整合至完美世界游戲的移動游戲中
    發表于 05-06 10:09 ?667次閱讀

    簡單的延時攝影PiCamera

    電子發燒友網站提供《簡單的延時攝影PiCamera.zip》資料免費下載
    發表于 10-28 14:50 ?0次下載
    簡單的<b class='flag-5'>延時</b><b class='flag-5'>攝影</b>PiCamera

    Xbox應用新增“游戲中心”功能

    微軟 Xbox 體驗高級產品經理 Dylan Meade表示,“游戲中心”便于玩家追蹤游戲進展,發現游戲最新內容和擴展包,與友人聯機競技,接收開發商的最新新聞等。
    的頭像 發表于 02-27 14:02 ?646次閱讀